Python无法识别pocketsphinx中的解码器

时间:2015-01-08 18:24:15

标签: python cmusphinx attributeerror decoder pocketsphinx

我安装了最新版本的pocketsphinx和sphinxbase(0.8)。我尝试将pocketsphinx导入python代码(Python的3.4.2版本)并使用" Decoder"像这样:

try:
    import sphinxbase
    import pocketsphinx as ps

except:
    print ("Pocket sphinx and sphixbase is not installed in your system.
Please install it with package manager.")

speechRec = ps.Decoder(hmm = hmmd, lm = lmdir, dict = dictp, beam = '1e-80')
wavFile = file(wavfile,'rb')
wavFile.seek(44)
speechRec.decode_raw(wavFile) 

但是,我收到以下错误:

AttributeError: 'module' object has no attribute 'Decoder'

有人知道什么是错的吗?

2 个答案:

答案 0 :(得分:2)

正如Bhargav已经提到的,您已将文件命名为pocketsphinx.py或路径中有pocketsphinx.py,因此您需要重命名该文件并确保同时删除pocketsphinx.pyc文件。您正尝试从该文件导入而不是pocketsphinx模块。

答案 1 :(得分:0)

我又遇到了同样的问题,可以为我解决。对于将来也有此问题的任何人:

首先,我从http://downloads.sourceforge.net/cmusphinx/pocketsphinx-5prealpha.tar.gz安装了Pocketsphinx版本。安装到swig/python/__init__.py的相应/usr/lib/python<ver>/site-packages/pocketsphinx/__init__.py包含以下内容:

from pocketsphinx import *

当我从https://pypi.org/project/pocketsphinx/安装Pocketsphinx时,相应的__init__.py包含:

from .pocketsphinx import *

如果像from pocketsphinx import *这样的导入语句起作用,或者如果您必须使用from pocketsphinx.pocketsphinx import *

,似乎微小的点会有所不同。