Объект «модуль» Python pocketsphinx не имеет атрибута «Декодер»

Я пытаюсь запустить простой пример использования pocketsphinx. Я установил все необходимые библиотеки, плагины... Python 2.7.6. Но все равно получаю ошибку:

Объект pocketsphinx 'module' не имеет атрибута '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)

person Arti    schedule 12.04.2015    source источник
comment
Это Python 3.x? Вы читали github.com/bambocher/pocketsphinx-python#import?   -  person jonrsharpe    schedule 12.04.2015
comment
Питон 2.7.6. Да, я сделал все инструкции.   -  person Arti    schedule 12.04.2015
comment
Что показывает print dir(ps)? print ps.__file__?   -  person jonrsharpe    schedule 12.04.2015
comment
/usr/local/lib/python2.7/dist-packages/pocketsphinx-0.0.4-py2.7-linux-x86_64.egg/pocketsphinx/__init__.pyc   -  person Arti    schedule 12.04.2015
comment
По крайней мере, похоже, что вы импортируете правильный файл — и dir?   -  person jonrsharpe    schedule 12.04.2015
comment
Я просмотрел исходный код pocketsphin.py, и у него класс Decoder :(   -  person Arti    schedule 12.04.2015
comment
Это не то, что я спросил; что показывает print dir(ps)?!   -  person jonrsharpe    schedule 12.04.2015
comment
['встроенные файлы', 'документ', 'файл', 'загрузчик', 'имя ', 'пакет', 'путь']   -  person Arti    schedule 12.04.2015
comment
Тогда сообщение об ошибке не лжет; Decoder не указывается на уровне модуля (т.е. в __init__.py). Почему бы вам не попробовать форму import, фактически показанную в документации?   -  person jonrsharpe    schedule 12.04.2015
comment
ты имеешь в виду: from sphinxbase import Config from pocketsphinx import Decoder ?   -  person Arti    schedule 12.04.2015
comment
Это тот! Не похоже, что вы используете что-то еще из ps.   -  person jonrsharpe    schedule 12.04.2015
comment
Я старался. Получил ту же ошибку: from sphinxbase import Config ImportError: cannot import name Config   -  person Arti    schedule 12.04.2015
comment
Что ж, если вы безуспешно используете его, как описано в документации, почему бы не обсудить его с разработчиком - github.com/bambocher/pocketsphinx-python/issues/new?   -  person jonrsharpe    schedule 12.04.2015
comment
что ты имеешь в виду ? я тоже попробовал это руководство: mattze96.safe-ws.de/blog/?p= 640   -  person Arti    schedule 12.04.2015
comment
Я имею в виду это, возможно, ошибка, поэтому мы не можем помочь вам исправить ее. Если вы следовали предоставленным инструкциям и по-прежнему испытываете проблемы, откройте проблему в проекте. Обратите внимание, что будет полезна информация о том, что именно вы сделали, более подробно, чем Я установил все необходимые библиотеки, плагины...   -  person jonrsharpe    schedule 12.04.2015
comment
Пробовали ли вы буквально следовать рецепту импорта из в нижней части файла readme? Возможно, в какой-то момент они объединили подходы к импорту py 2.x и py 3.x.   -  person 9000    schedule 12.04.2015
comment
да: File "speech.py", line 9, in <module> from sphinxbase.sphinxbase import Config   -  person Arti    schedule 12.04.2015
comment
Теперь я пытаюсь использовать python 3 и этот код: pastebin.com/m6PHWJ48, но получаю сообщение об ошибке: TypeError: in method 'Decoder_decode_raw', argument 2 of type 'FILE *'   -  person Arti    schedule 13.04.2015


Ответы (1)


Вы используете старый API в своем коде. Новый API, реализованный в pocketsphinx-python, работает следующим образом:

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

Декодер инициализируется с помощью объекта конфигурации. Модели тоже разные.

person Nikolay Shmyrev    schedule 13.04.2015
comment
можешь привести пример, как его обновить? - person Arti; 13.04.2015
comment
Теперь я пытаюсь использовать python 3 и этот код: pastebin.com/m6PHWJ48, но получаю сообщение об ошибке: TypeError: in method 'Decoder_decode_raw', argument 2 of type 'FILE *' - person Arti; 13.04.2015
comment
Python3 не поддерживает операции с файлами, вы должны декодировать в потоковом режиме. - person Nikolay Shmyrev; 13.04.2015
comment
у вас есть пример? я запустил это: sourceforge.net/p/cmusphinx/ обсуждение/помощь/поток/ce372c57/ но TypeError: in method 'Decoder_process_raw', argument 2 of type 'void const *' - person Arti; 13.04.2015
comment
Это связано с тем, что декодер не был создан должным образом и были более ранние ошибки. Например, не удалось загрузить модели. Вы можете проверить журналы для деталей. - person Nikolay Shmyrev; 13.04.2015
comment
В логах только информационные сообщения... Модели я брал отсюда: github. com/cmusphinx/pocketsphinx/tree/master/model/en-us - person Arti; 13.04.2015
comment
Вы можете предоставить журнал, чтобы получить помощь по этой проблеме. - person Nikolay Shmyrev; 13.04.2015
comment
Ваш код на самом деле не имеет смысла. Вы заканчиваете высказывание после обработки 44 байтов, а затем продолжаете цикл while. Сначала попробуйте запустить существующий пример как есть, а затем внесите изменения. Я связал вас с рабочей демонстрацией выше. - person Nikolay Shmyrev; 13.04.2015
comment
Да, я знаю, что этот код не имеет смысла. Но я хочу показать вам, что проблема в этой строке: decoder.process_raw(buf, False, False) она возвращает ошибку: TypeError: in method 'Decoder_process_raw', argument 2 of type 'void const *'. И github.com/cmusphinx/pocketsphinx/blob/ master/swig/python/test/ тоже не работает! - person Arti; 13.04.2015
comment
# Decode streaming data. pastebin.com/UD30YMFJ этот код завершается ошибкой: TypeError: in method 'Decoder_process_raw', argument 2 of type 'void const *' - person Arti; 13.04.2015
comment
на python 2 у меня проблема с 1-го поста - person Arti; 13.04.2015