2015-04-12 1 views
0

J'essaie d'exécuter un exemple simple d'utilisation de pocketsphinx. J'ai installé toutes les librairies, plugins nécessaires ... Python 2.7.6. Mais toujours obtenir une erreur:L'objet 'module' Python pocketsphinx n'a pas d'attribut 'Décodeur'

pocketsphinx 'module' object has no attribute 'Decoder'

import sys,os 
import pocketsphinx as ps 
import sphinxbase 


def decodeSpeech(hmmd,lmdir,dictp,wavfile): 
    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/wsj1' 
    lmd = '/usr/share/pocketsphinx/model/lm/wsj/wlist5o.3e-7.vp.tg.lm.DMP' 
    dictd = '/usr/share/pocketsphinx/model/lm/wsj/wlist5o.dic' 
    wavfile = "msg_12c3da80-c6be-11e3-9430-eb6ba5ab4d1f.wav" 
    recognised = decodeSpeech(hmdir,lmd,dictd,wavfile) 
+0

Est-ce Python 3.x? Avez-vous lu https://github.com/bambocher/pocketsphinx-python#import? – jonrsharpe

+0

Python 2.7.6. Oui j'ai fait toutes les instructions. – Arti

+2

Que montre 'print dir (ps)'? 'print ps .__ fichier__'? – jonrsharpe

Répondre

0

Vous utilisez ancienne API dans votre code. Nouvelle API mis en œuvre dans les travaux pocketsphinx-python comme ceci:

https://github.com/cmusphinx/pocketsphinx/blob/master/swig/python/test/decoder_test.py

décodeur est initialisé avec l'aide de l'objet de configuration. Les modèles sont également différents.

+0

pouvez-vous donner un exemple, comment le mettre à niveau? – Arti

+0

Nevermind, vous utilisez simplement l'ancienne API. –

+0

Maintenant, je suis en train d'utiliser Python 3 et ce code: http://pastebin.com/m6PHWJ48 mais obtenir une erreur: '' 'TypeError: dans la méthode 'Decoder_decode_raw', argument 2 de type « FILE * ''' ' – Arti