Wie kann man Audio mit Python aufnehmen?


7

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:


4

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.

Geben Sie hier die Bildbeschreibung ein

Das würde erklären, warum eine alsaaudio.ALSAAudioErrorAusnahme durch eine alsaaudio.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 alsaaudioist gut dokumentiert

Alsaaudio wird mit Testsuiten geliefert, um zu überprüfen, ob Ihre lokale Installation voll funktionsfähig ist.

bash> cd pyalsaaudio-0.7
bash> python recordtest.py -c NAME_OF_USB_CARD output.wav

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 .


Mhm. Beim Ausführen von alsamixer wird die oben gezeigte Meldung zu den Erfassungssteuerelementen nicht angezeigt. Stattdessen wird eine Lautstärkeregelung angezeigt?
Andig

Drücken Sie F4für die Aufnahmesteuerung. F3für die Wiedergabe und F5für alle Bedienelemente. Verwenden Sie F6diese Option , um zwischen Soundkarten zu wechseln.
Emcconville
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.