Immer IOError: [Errno Ungültig Anzahl der Kanäle] -9998 bei Verwendung von mic mit PyAudio auf Raspberry Pi
Bad news, everyone!
Ich versuche es mal mit einem Mikrofon auf meinem Raspberry Pi durch PyAudio aber ohne Erfolg. Das Mikrofon angeschlossen ist eine USB-Soundkarte.
Das Mikrofon funktioniert wenn ich über den 'Bericht' :
pi@raspberrypi ~ $ arecord -D plughw:0,0 -f cd test2.wav
Recording WAVE 'test2.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Jedoch, wenn ich den test machen record.py in PyAudio, ich bekam eine Fehlermeldung. Der Fehler ist der gleiche für alle Programme in Python, verwendet PyAudio :
pi@raspberrypi /usr/src/pyaudio/test $ python record.py
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Expression 'parameters->channelCount <= maxChans' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 1438
Expression 'ValidateParameters( inputParameters, hostApi, StreamDirection_In )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', line: 2742
Traceback (most recent call last):
File "record.py", line 26, in <module>
frames_per_buffer=CHUNK)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 747, in open
stream = Stream(self, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pyaudio.py", line 442, in __init__
self._stream = pa.open(**arguments)
IOError: [Errno Invalid number of channels] -9998
Vielen Dank für Ihre Hilfe
- Wo ist Sie Python-code hier?...Müssen es sehen, um zu sehen, wo der Fehler ist...
- Hi @KhalilAmmour-خليلعمور , ich bin mit dem test record.py in den Ordner test der PyAudio. Ich poste den code hier: pastebin.com/PHyUbhgN ich denke, PyAudio nicht erkennen meine USB-Soundkarte.
- Ist dein RPI-Upgrade auf neueste version?
- Ja, mein RPI war heute aufgerüstet. @KhalilAmmour-خليلعمور
- Di legen Sie Ihre USB-Soundkarte zum Standard in
/etc/modprobe.d/alsa-base.conf
- Datei ? - Danke für deine schnelle Antwort. Ja, ich habe bereits meine USB-Soundkarte zum Standard. Ich modifizierten alsa-base.conf für die :
options snd-usb-audio index=0
@KhalilAmmour-خليلعمور
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie eine sound-Karte angeschlossen an den Raspberry PI ?
Standardmäßig erhalten Sie audio-Ausgang, aber nicht den audio-input.
Sie können überprüfen Sie durch ausführen
Wenn Sie die Taste
F6
sollten Sie Ihre Soundkarten aufgeführt.Wenn Sie die Taste
F4
Sie sollten sehen, capture-Geräte(falls vorhanden)Habe ich eine billige USB-Soundkarte von eBay zum testen.
Nachdem Sie eine Soundkarte mit einem audio Eingang, stellen Sie sicher, dass Sie konfigurieren pyaudio für die Verwendung der richtigen Soundkarte index und die Anzahl der Kanäle(mir hatte mono-audio-Eingang, nicht stereo).
Können Sie pyaudio.PyAudio Instanz-Methoden
get_device_count
undget_device_info_by_index
um die Indizes.channels=1
? Es bedeutet, dass meine USB-Soundkarte nicht unterstützt stereo ?alsamixer
und werdeCapture
oder verwendenget_device_info_by_index
mit pyaudio, die gedruckt wird, wie viele Kanäle das Gerät unterstützt:pa = pyaudio.PyAudio() for x in xrange(0,pa.get_device_count()): print pa.get_device_info_by_index(x)
(siehemaxInputChannels
Eigenschaft)