• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rozpoznawanie mowy w Pythonie - błąd

Object Storage Arubacloud
0 głosów
1,269 wizyt
pytanie zadane 17 lipca 2020 w Python przez Eliro Stary wyjadacz (12,160 p.)
edycja 17 lipca 2020 przez Eliro

Cześć, próbuję zrobić sobie amatorskie asystenta głosowego. Oto kod do rozpoznawania mowy, z którym mam problem:

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:                # use the default microphone as the audio source

    audio = r.listen(source,timeout=3)                   # listen for the first phrase and extract it into audio data

try:
    print("You said " + r.recognize_google(audio))    # recognize speech using Google Speech Recognition
except LookupError:                            # speech is unintelligible
    print("Could not understand audio")

Podczas uruchomienia błąd który się wyświetla, to

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 connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
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 connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Traceback (most recent call last):
  File "Sally.py", line 16, in <module>
    print("You said " + r.recognize_google(audio))    # recognize speech using Google Speech Recognition
  File "/usr/local/lib/python3.8/dist-packages/speech_recognition/__init__.py", line 858, in recognize_google
    if not isinstance(actual_result, dict) or len(actual_result.get("alternative", [])) == 0: raise UnknownValueError()
speech_recognition.UnknownValueError

Co powinienem zrobić w takiej sytuacji?

2 odpowiedzi

0 głosów
odpowiedź 17 lipca 2020 przez DawidK Nałogowiec (37,910 p.)
edycja 17 lipca 2020 przez DawidK

Możesz zrobić coś takiego, nie bardzo znam się na pythonie, ale u mnie zadziałało (przykład dla windowsa):

1) instalacja speech recognition

pip install speechrecognition

2) instalacja narzędzia pip dla windowsa (inaczej mogą być problemy z instalacją 2 kolejnych paczek)

pip install pipwin

3) instalacja pyaudio

pipwin install pyaudio

4) instalacja sphinx (jeden ze wspieranych silników do rozpoznawania mowy)

pipwin install pocketsphinx

5) lekko zmodyfikowany przykład z dokumentacji

import speech_recognition as sr

r = sr.Recognizer()
with sr.Microphone() as source:
    print("Say something!")
    audio = r.listen(source,timeout=3)

try:
    print("You said " + r.recognize_sphinx(audio))
except sr.UnknownValueError:
    print("Could not understand audio")
except sr.RequestError as e:
    print("Error: {0}".format(e))

Może Ci wyskoczyć błąd przynajmniej mi wyskoczył jeżeli będziesz miał jednocześnie podłączoną słuchawkę z mikrofonem bluetooth i słuchawki z mikrofonem na kablu.

komentarz 18 lipca 2020 przez Eliro Stary wyjadacz (12,160 p.)
Korzystam z Linuxa Mint 20. Mam zainstalowane wszystko, co wymieniłeś poza pipwin.
0 głosów
odpowiedź 18 lipca 2020 przez adrian17 Ekspert (344,860 p.)

Rzuć okiem na "troubleshooting" na stronie biblioteki?

https://pypi.org/project/SpeechRecognition/

Wymieniają tam między innymi błędy, które dostajesz.

Podobne pytania

+2 głosów
1 odpowiedź 750 wizyt
pytanie zadane 20 czerwca 2020 w Python przez bbbbbbbb Użytkownik (950 p.)
0 głosów
2 odpowiedzi 877 wizyt
0 głosów
2 odpowiedzi 1,943 wizyt
pytanie zadane 1 maja 2017 w C i C++ przez Michał Gibas Pasjonat (19,610 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...