我正在尝试使用pocketsphinx来处理我的raspberrypi 3.我已成功将其安装在我的rpi上,但现在它无法正常运行。我正在使用github上的python模块的示例代码,但每当我尝试运行它时,我都会收到此错误
Traceback (most recent call last):
File "/home/pi/VoiceTesting/SphinxTest.py", line 14, in <module>
decoder = Decoder(config)
File "/usr/local/lib/python3.4/dist-packages/pocketsphinx/pocketsphinx.py", line 228, in __init__
this = _pocketsphinx.new_Decoder(*args)
RuntimeError: new_Decoder returned -1
我做了一些谷歌搜索,但我找不到解决方案。 here是指向pocketsphinx github上的示例代码的链接。我没有编辑任何我刚复制并粘贴的内容。
答案 0 :(得分:2)
这是参考您在问题描述中给出的link。
我有一个类似的问题,这是由于'pocketsphinx'库没有文件 en-us.lm.bin 和 cmudict-en-us.dict < / strong>。
通过下载文件并将其粘贴到正确的位置并提供正确的路径来解决:
P.S .:确保您的PocketSphinx是最新的。您可以通过在终端上执行pip install pocketsphinx
来安装/更新它。
详细步骤如下:
STEP-1:提供正确的路径
通过以下方式获取MODELDIR:
MODELDIR= get_model_path()
STEP-2:下载文件en-us.lm.bin和cmudict-en-us.dict
从以下位置下载“ en-us.lm.bin ”文件: https://github.com/cmusphinx/sphinx4/tree/master/sphinx4-data/src/main/resources/edu/cmu/sphinx/models/en-us
下载' cmudict-en-us.dict '文件步骤3::将文件粘贴到正确的位置。
将下载的文件粘贴到(MODELDIR + '/en-us/')
应该是这样的:C:\ Users \ Username \ Anaconda3 \ Lib \ site-packages \ pocketsphinx \ model \ en-us
STEP-4:修改代码
您提供的link具有以下代码:
config = Decoder.default_config()
config.set_string('-hmm', path.join(MODELDIR, 'en-us/en-us'))
config.set_string('-lm', path.join(MODELDIR, 'en-us/en-us.lm.bin'))
config.set_string('-dict', path.join(MODELDIR, 'en-us/cmudict-en-us.dict'))
decoder = Decoder(config)
确保目录MODELDIR + 'en-us/en-us'
实际上存在。
就我而言,目录一直到MODELDIR + '/en-us'
。
在这种情况下,请使用正确的目录修改以上代码:
config = Decoder.default_config()
config.set_string('-hmm', path.join(MODELDIR, 'en-us'))
config.set_string('-lm', path.join(MODELDIR, 'en-us/en-us.lm.bin'))
config.set_string('-dict', path.join(MODELDIR, 'en-us/cmudict-en-us.dict'))
decoder = Decoder(config)
希望这会有所帮助:)