使用 pocketsphinx 做中文语音识别时报错 ERROR: Input audio file has sample rate [44100], but decoder expects [160

问题说明

今天在使用 pocketsphinx_continuous 识别中文 wav 文件是,报如下错误:

> pocketsphinx_continuous -hmm zh_broadcastnews_ptm256_8000 -lm zh_broadcastnews_64000_utf8.DMP -dict zh_broadcastnews_utf8.dic -infile myfile.wav
ERROR: "continuous.c", line 136: Input audio file has sample rate [44100], but decoder expects [16000]

问题原因

这个 myfile.wav 是我从一个 mp3 文件转换过来的,其中是采样率是 44100HZ,而 pocketsphinx_continuous 需要使用 16000HZ 的音频文件。

具体文件是什么采样率,在 linux 上可以使用 soxi 命令查看,比如:

$ soxi myfile.wav
Input File     : 'myfile.wav'
Channels       : 1
Sample Rate    : 44100
Precision      : 16-bit
Duration       : 00:01:26.45 = 3812421 samples = 6483.71 CDDA sectors
File Size      : 7.62M
Bit Rate       : 706k
Sample Encoding: 16-bit Signed Integer PCM

解决办法

解决办法就是使用 sox 命令将音频文件采样率转换成 16000HZ,比如:

$ sox myfile.wav -r 16000 myfile-16000.wav
$ soxi myfile-16000.wav

Input File     : 'myfile-16000.wav'
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:01:26.45 = 1383191 samples ~ 6483.71 CDDA sectors
File Size      : 2.77M
Bit Rate       : 256k
Sample Encoding: 16-bit Signed Integer PCM

转换后,重新运行语音识别程序。

> pocketsphinx_continuous -hmm zh_broadcastnews_ptm256_8000 -lm zh_broadcastnews_64000_utf8.DMP -dict zh_broadcastnews_utf8.dic -infile myfile-16000.wav
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值