Insbesondere: Wie kann ich Python mit ALSA verwenden, um Audioeingaben zu erfassen?
Ich denke darüber nach, einen oled-basierten Spektrumanalysator für Pi-basierte Audioplayer zu entwickeln. Ein Teil der Lösung besteht darin, das aktuell wiedergegebene Audio zu lesen. Ich habe dies mit ALSA in Python versucht:
import alsaaudio
inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK)
An diesem Punkt stirbt das Skript:
alsaaudio.ALSAAudioError: Keine solche Datei oder kein solches Verzeichnis
Das Hinzufügen einer solchen Karte funktioniert auch nicht:
card = 'sysdefault:CARD=ALSA'
inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card)
Ich habe verschiedene verwandte Beiträge auf Raspbian gesehen, aber keine Lösung.
Antworten:
Ich glaube nicht, dass der Raspberry Pi die notwendige Hardware hat, um Audioeingänge zu erfassen. Sie können diese Ausführung bestätigen
alsamixer
.Das würde erklären, warum eine
alsaaudio.ALSAAudioError
Ausnahme durch einealsaaudio.PCM.__init__
Methode ausgelöst wurde .Entdecken Sie USB-Geräte von Drittanbietern
Ich habe einen Artikel mit dem Titel Spracherkennung mit dem Raspberry Pi genossen ; Darin wurden die Schritte beschrieben, die zum Hinzufügen des Audioeingangs erforderlich sind. Raspberry Pi in ein Audio-Spionagegerät ist auch bei der Installation von USB-Mikrofonen hilfreich. Das unterstreichende Thema besteht darin, sicherzustellen, dass das Basissystem konfiguriert und bereit ist, Audio über ALSA aufzunehmen, bevor eine Anwendung entwickelt wird.
Modul
alsaaudio
ist gut dokumentiertAlsaaudio wird mit Testsuiten geliefert, um zu überprüfen, ob Ihre lokale Installation voll funktionsfähig ist.
Die NAME_OF_THE_USB_CARD sollte ein Name sein, der von der Methode von alsaaudio.cards () aufgelistet wird . Dies ist der gleiche Name für den dritten Parameter für die Klasse alsaaudio.PCM .
quelle
F4
für die Aufnahmesteuerung.F3
für die Wiedergabe undF5
für alle Bedienelemente. Verwenden SieF6
diese Option , um zwischen Soundkarten zu wechseln.