我想做什么:
我想导入一个python模块(pocketsphinx)并使用Decoder属性的输出。但是,当我尝试使用它时,我已通知模块属性' Decoder'不存在。
decoder = Decoder(configSwitches)
它确实存在,这就是它如此奇怪的原因。
到目前为止我做了什么:
当我拉出一个python控制台并输入import pocketsphinx
时,它会毫无问题地导入。运行pocketsphinx。文件返回:
'/usr/local/lib/python2.7/dist-packages/pocketsphinx-0.0.8-py2.7-linux-armv7l.egg/pocketsphinx/__init__.pyc'
查看'/usr/local/lib/python2.7/dist-packages/pocketsphinx-0.0.8-py2.7-linux-armv7l.egg/pocketsphinx/__init__.py'
,我看到:from pocketsphinx import *
就是这样。
当我回到/usr/local/lib/python2.7/dist-packages/pocketsphinx/pocketsphinx.py
并在文本编辑器中打开它时,我发现pocketsphinx.py确实有一个Decoder类,其中包含大量已定义的方法。
我问:
我可以采取哪些其他步骤来诊断使用pocketsphinx模块的错误?
这是我在真正深入研究项目之前尝试运行的示例代码:
import pocketsphinx
hmmd = r"/home/michael/Desktop/sphinxASR/pocketsphinx-5prealpha/model/en-us/en-us"
lmdir = r"/home/michael/Desktop/sphinxASR/pocketsphinx-5prealpha/model/en-us/en-us.lm.bin"
dictp = r"/home/michael/Desktop/sphinxASR/pocketsphinx-5prealpha/model/en-us/cmudict-en-us.dict"
fileName = r'/home/michael/Desktop/sphinxASR/voice_message.wav'
if __name__ == "__main__":
wavFile = open(fileName, "rb")
speechRec = pocketsphinx.Decoder(hmm=hmmd, lm=lmdir, dictionary=dictp)
wavFile.seek(44)
speechRec.decode_raw(wavFile)
result = speechRec.get_hyp()
print(result)
堆栈追踪:
Traceback (most recent call last):
File "/home/michael/PycharmProjects/27test/getHypTest.py", line 14, in <module>
speechRec = pocketsphinx.Decoder(lm=lmdir, dictionary=dictp)
AttributeError: 'module' object has no attribute 'Decoder'
答案 0 :(得分:0)
通过查看pocketsphinx example code,您的导入似乎应该是:
from pocketsphinx.pocketsphinx import *
我诊断此问题的第一步是键入以下内容,以便我可以看到正在导入的内容:
import pocketsphinx
dir(pocketsphinx)
答案 1 :(得分:0)
您应该从pocketsphinx导入解码器。 而不是
public override void copyAttributes(BasicCardModel bcm) {
base.copyAttributes(acm);
var acm = bcm as AttackCardModel;
if (acm != null) {
attackType = acm.attackType;
Debug.Log("Attack strength = " + acm.attackStrength);
attackStrength = acm.attackStrength;
}
}
尝试:
import pocketsphinx