大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
问题说明
今天在使用 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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183449.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...