2016-03-19 10 views
3

私はPythonのポケットスフィンクスチュートリアル、なぜpython pocketsphinxはTypeErrorを与えていますか?

https://metakermit.com/2011/python-speech-recognition-helloworld/

に応じて(ここでは完全なコード)を使用しています:

import sys,os 

def decodeSpeech(hmmd,lmdir,dictp,wavfile): 
""" 
Decodes a speech file 
""" 

try: 
    import pocketsphinx as ps 
    import sphinxbase 

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) 
wavFile = file(wavfile,'rb') 
wavFile.seek(44) 
speechRec.decode_raw(wavFile) 
result = speechRec.get_hyp() 

return result[0] 

if __name__ == "__main__": 
hmdir = "/usr/share/pocketsphinx/model/hmm/en_US/" 
lmd = "/usr/share/pocketsphinx/model/lm/en_US/hub4.5000.DMP" 
dictd = "/usr/share/pocketsphinx/model/lm/en_US/cmu07a.dic" 
wavfile = sys.argv[1] 
recognised = decodeSpeech(hmdir,lmd,dictd,wavfile) 

print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" 
print recognised 
print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" 

を、私はそれを実行したときに、私は次のようなエラーメッセージが出ます:

Traceback (most recent call last): 
File "hello.py", line 30, in <module> 
recognised = decodeSpeech(hmdir,lmd,dictd,wavfile) 
File "hello.py", line 17, in decodeSpeech 
speechRec = ps.Decoder(hmm = hmmd, lm = lmdir, dict = dictp) 
TypeError: __init__() got an unexpected keyword argument 'hmm' 

お手伝いできますか?

+0

チェック何引数ことができます過去の編集@galaxyan __init__ – galaxyan

+0

へ。申し訳ありません。 – Hugo

+0

私はエラーがあなたがinitで渡すことができる引数ではないと言った – galaxyan

答えて

8

GitHubのpocketsphinxコードを見ると、decoder_test.pyにはオプションをDecoderに渡す方法の例があります。

だから、それはあなたのチュートリアルでは、古いバージョンのためであり、あなたが実際にしたいのようになります。

config = ps.Decoder.default_config() 
config.set_string('-hmm', hmmd) 
config.set_string('-lm', lmdir) 
config.set_string('-dict', dictp) 

speechRec = ps.Decoder(config) 
関連する問題