Speech recognition 在pocketsphinx中指定声学模型的路径

Speech recognition 在pocketsphinx中指定声学模型的路径,speech-recognition,raspberry-pi2,pocketsphinx,phoneme,Speech Recognition,Raspberry Pi2,Pocketsphinx,Phoneme,我想建立一个基于音素的“对话系统”,听语音,将语音转换成一个音素串(不管有多错),处理/存储这些音素,并在音素级别播放它们。我的目标是使用festival/mbrola或espeak。所有这些都运行在一个raspberry pi上(该项目称为babble pi) 我遵循了这里非常好的说明: 我还通过命令获得了很好的识别: pocketsphinx_continuous -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 3199.l

我想建立一个基于音素的“对话系统”,听语音,将语音转换成一个音素串(不管有多错),处理/存储这些音素,并在音素级别播放它们。我的目标是使用festival/mbrola或espeak。所有这些都运行在一个raspberry pi上(该项目称为babble pi)

我遵循了这里非常好的说明:

我还通过命令获得了很好的识别:

pocketsphinx_continuous -hmm /usr/local/share/pocketsphinx/model/en-us/en-us -lm 3199.lm -dict 3199.dic -samprate 16000/8000/48000 -inmic yes
现在,我在sourceforge网站上阅读了这篇关于音素识别的文章:

而且还意识到prealpha5显然有一种新的二进制格式。 关于音素识别器的文章指出,基本上英语音素识别器是默认安装包的一部分,因此邀请您通过以下方式对其进行测试:

pocketsphinx_continuous -infile test/data/goforward.raw -hmm en-us -allphone model/en-us/en-us-phone.lm.dmp -backtrace yes -beam 1e-20 -pbeam 1e-20 -lw 2.0
我假设这篇音素文章引用的是(pocket-)sphinx的旧版本,因为它引用的是.dmp而不是.bin文件扩展名,所以我尝试:

pocketsphinx_continuous -infile test/data/goforward.raw -hmm en-us -allphone model/en-us/en-us-phone.lm.bin -backtrace yes -beam 1e-20 -pbeam 1e-20 -lw 2.0
但我得到了以下错误:

ERROR: "acmod.c", line 83: Folder 'en-us' does not contain acoustic model definition 'mdef'
看看en-us,实际上只有一个.dict、.lm.bin和电话文件。另一个en-us目录包含一个mdef文件以及其他几个文件。把它抄起来也没用


那么,该怎么办?是否卸载prealpha5并安装版本4?或者我可以在某处下载正确的文件吗?

设置为
en-us
-hmm
选项的参数是文件夹的路径。在您的情况下,这是一条相对路径。如果lm路径是
model/en-us/en-us phone.lm.bin
,那么
-hmm
路径必须是
model/en-us/en-us
,而不仅仅是
en-us

好吧,我想你的提示是正确的。实际上,en-us/en-us不起作用,但是model/en-us/en-us导致程序运行,直到“INFO:continuous.c(303):pocketsphinx_continuous COMPILED ON”,然后在raspberry pi 2上大约需要40秒,我得到了电话列表。所以,是的,它起作用了!但是:哇,真慢!我读到它加载了130k个单词,这会让它变慢吗?我是否可以将.dict文件的大小调整到10k(假设它们是按频率排序的)?语音识别速度很慢,因为它考虑了大量的变体。您可以在命令行参数中添加命令行选项
-allphone\u ci yes
,使其更快但更不准确。130k单词的词汇量是不相关的。