新的解码器返回-1当尝试在Raspberry pi上运行PocketSphinx时

时间:2017-06-03 01:09:30

标签: python raspberry-pi pocketsphinx

我正在尝试使用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上的示例代码的链接。我没有编辑任何我刚复制并粘贴的内容。

1 个答案:

答案 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

https://github.com/cmusphinx/sphinx4/blob/master/sphinx4-data/src/main/resources/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict

下载' 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)

希望这会有所帮助:)