2016-12-19 9 views
0

[EDIT] PyAudio funktioniert nicht, und das Programm macht überhaupt keine Spracherkennung.Python SpeechRecognition Error ALSA

Ich benutze Ubuntu auf einer virtuellen Maschine und ich machte ein kurzes Skript. Es verwendet SpeechRecognition 3.5.0, um zu erkennen, was ein Benutzer sagt. Ich habe pyaudio installiert, aber wenn ich das Skript ausführe, bekomme ich einen langen Fehler. Ich benutze ein eingebautes Mikrofon auf meinem Laptop.

import wolframalpha 
import os 
from gtts import gTTS 
import speech_recognition as sr 
r = sr.Recognizer() 
with sr.Microphone() as source:    
    audio = r.listen(source) 
print("You said " + r.recognize(audio)) 
app_id = ("H34HDS-SDFJKOEER2") 
client = wolframalpha.Client(app_id) 
while app_id == "H34HDS-SDFJKOEER2": 
    input = raw_input("Question: ") 
    res = client.query(input) 
    answer = next(res.results).text 
    tts = gTTS(text=answer, lang='en') 
    tts.save("hello.mp3") 
    os.system("mpg321 hello.mp3") 

Der Fehler, ich bin immer ist:

ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave 
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'AC97 2ch->4ch Copy Switch',0,0,0): No such file or directory 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (MIXER,'AC97 2ch->4ch Copy Switch',0,0,0): No such file or directory 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (PCM,'IEC958 Playback PCM Stream',0,0,0): No such file or directory 
ALSA lib setup.c:548:(add_elem) Cannot obtain info for CTL elem (PCM,'IEC958 Playback PCM Stream',0,0,0): No such file or directory 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline 
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline 
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 
+1

Mögliche Duplikat [PyAudio arbeiten, aber spuckt Fehlermeldungen jedes Mal ] (http://stackoverflow.com/questions/7088672/pyaudio-working-but-spits-out-error-messages-each-time) –

+0

Nein. PyAudio funktioniert nicht. – TheMCProgrammer

+0

Sie müssen zuerst überprüfen, ob alsa mit aplay/amixer Befehlen arbeitet und die Treiber korrekt installiert sind. Sie müssen Ihre Hardware dafür überprüfen (lspci-Ausgabe). Dann müssen Sie prüfen, ob Pulseaudio mit den Desktop-Einstellungen funktioniert. Sobald Pulseaudio zu arbeiten beginnt, würde alles andere funktionieren. –

Antwort

-2

ich die Antwort von ihrer Seite zur Verfügung gestellt haben. Im Grunde haben Sie nicht den Jack-Audio-Server laufen. Als jemand, der mit Linux Audio zu tun hatte, kann ich Ihnen sagen, dass es ein Schmerz sein kann.

Von https://pypi.python.org/pypi/SpeechRecognition/

auf Ubuntu/Debian, bekomme ich Fehler wie „Jack-Server nicht ausgeführt wird oder nicht gestartet werden kann“ oder „Kann nicht sperren [...] Byte Speicherbereich (Speicher kann nicht zugewiesen)“.

Der Linux-Audio-Stack ist ziemlich unbeständig. Es gibt ein paar Dinge, die diese Probleme verursachen können.

Stellen Sie zunächst sicher JACK installiert ist - um es zu installieren, führen Sie sudo apt-get install Multimedia-Buchse

Sie werden dann das richtig den JACK-Daemon konfigurieren möchten zu vermeiden Fehler „Speicher kann nicht zugewiesen“. Führen Sie sudo dpkg-reconfigure -p high jackd2 aus und wählen Sie "Ja", um dies zu tun.

Jetzt möchten Sie sicherstellen, dass Ihr aktueller Benutzer in der Audiogruppe ist. Sie können Ihren aktuellen Benutzer zu dieser Gruppe hinzufügen, indem Sie sudo adduser $ (whoami) audio ausführen.

Leider müssen diese Änderungen neu gestartet werden, bevor sie wirksam werden.

Nach dem Neustart führen Pulseaudio --kill, von jack_control Start gefolgt, die zu reparieren „wird Jack-Server nicht läuft oder nicht gestartet werden kann“ Fehler

+0

Hmm ... Ich habe das getan, und es gibt immer noch den gleichen Fehler, plus ein paar Zeilen Fehler. – TheMCProgrammer

+1

Trotz der Empfehlung auf ihrer Seite ist das falsch. Sie sollten die Buchse NICHT installieren. Jack ist kein Standard Sound Server auf Ubuntu, Pulseaudio ist. Was Sie tun müssen, ist Pulseaudio und alsa richtig zu konfigurieren, nicht installieren Sie die Buchse. –

+0

Ich wünschte, ich wüsste das früher. Jack ist bereits installiert. Könnten Sie näher erläutern, wie Sie Pulseaudio und alsa konfigurieren? – TheMCProgrammer