Как решить проблему с библиотекой speech_recognition при распознавании речи на ОС Ubuntu?

Код
import speech_recognition as sr


# obtain audio from the microphone
r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source)

# recognize speech using Google Speech Recognition
try:
    # for testing purposes, we're just using the default API key
    # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
    # instead of `r.recognize_google(audio)`
    print("Google Speech Recognition thinks you said " + r.recognize_google(audio))
except sr.UnknownValueError:
    print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
    print("Could not request results from Google Speech Recognition service; {0}".format(e))


Сообщения при запуске
spoiler

ALSA lib pcm_dsnoop.c:641:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
Cannot lock down 82280346 byte memory area (Cannot allocate memory)
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave
Cannot lock down 82280346 byte memory area (Cannot allocate memory)


При вызове r.listen(source) программа должна получать звук с микрофона, но не получает.
Микрофон работает. Пробовал запускать из всех устройств через
sr.Microphone(device_index=int)  # вместо int указывал индекс звукового устройства

Документация: https://github.com/Uberi/speech_recognition
Пробовал переустанавливать pulseaudio. Должен отметить что при фоновом слушании, речь распознаётся, но некоторые из сообщений выше (те что в спойлере) выводятся в консоль.

Исправлено, после добавления r.adjust_for_ambient_noise(source)
Примечания: сообщение указанные в спойлере - остались.
  • Вопрос задан
  • 781 просмотр
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Посмотрите здесь - Linux: ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open...
Или попробуйте скрипт запустить с sudo, может нет каких-то прав.

Или попробуйте добавить своего пользователя в группу audio, или какие там еще есть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы