Python LiveSpeech PocketSphinx

pocketsphinx_continuous -adcdev plughw:1,0 -inmic yes -dict 4711.dic -lm 4711.lm

Вышеприведенная команда работает, но проблема возникает при запуске кода Python.

from pocketsphinx import LiveSpeech
for phrase in LiveSpeech(): print(phrase)

ошибка, которая отображается

Error opening audio device (null) for capture: Connection refused
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pocketsphinx/__init__.py", line 206, in __init__
    self.ad = Ad(self.audio_device, self.sampling_rate)
  File "/usr/local/lib/python2.7/dist-packages/sphinxbase/ad_pulse.py", line 124, in __init__
    this = _ad_pulse.new_Ad(audio_device, sampling_rate)
RuntimeError: new_Ad returned -1

1 ответ

Вы, вероятно, испытываете это с USB-микрофоном (например, на RaspberryPi). Он говорит вам, что LiveSpeech не знает, какое аудиоустройство использовать для ввода. К счастью, согласно https://github.com/bambocher/pocketsphinx-python, есть несколько опций конфигурации, поэтому вам нужно указать audio_device.

в основном давайте сделаем:

for phrase in LiveSpeech(audio_device=3): print(phrase)

где 3, пожалуйста, замените желаемым идентификатором микрофона. Теперь как это получить:

import pyaudio

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
    print(p.get_device_info_by_index(i))
#otherwise you can do:
print(p.get_default_input_device_info())

Есть несколько тем о том, как правильно настроить USB-микрофон на RaspberryPi - если это ваш случай, дайте мне знать.

Другие вопросы по тегам