【问题标题】:Python doesn't recognize the Decoder from pocketsphinxPython 无法识别来自 pocketsphinx 的解码器
【发布时间】:2015-03-06 23:21:33
【问题描述】:

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

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'

有人知道怎么回事吗?

【问题讨论】:

  • 您是否将文件命名为pocketsphinx.py 或密码中的任何其他文件为pocketsphinx.py

标签: python cmusphinx attributeerror decoder pocketsphinx


【解决方案1】:

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

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

from pocketsphinx import *

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

from .pocketsphinx import *

如果像from pocketsphinx import * 这样的导入语句有效,或者您必须使用from pocketsphinx.pocketsphinx import *,那么这个小点似乎会有所不同

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我没有在路径中命名任何类似的文件。但也许我遗漏了一些东西:pocketsphinx.pyx 和 pocketsphinx.pxd 等同于 pocketsphinx.py?
    • 你安装了 ipython 吗?
    • 还有什么import pocketsphinx; pocketsphinx.__file__ 输出?
    • /usr/local/lib/python2.7/dist-packages/pocketsphinx-0.0.4-py2.7-linux-x86_64.egg/pocketsphinx/__init__.pyc
    • 好的,但你在问题中说你正在使用 python3,但它表明你已经为 python2 安装了它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2020-12-09
    相关资源
    最近更新 更多