6 Stimmen

Wie kann man Audio-Rohdaten in Echtzeit lesen/schreiben (mit Python)?

Ich möchte in der Lage sein, dynamisch zu lesen und zu schreiben Audio-Daten in Echtzeit. Ich bemerkte die Python "audioscope" der das Unix/Linux-Programm /dev/dsp Datei und liest rohe Bytes aus ihr.

Allerdings verwende ich einen Mac OSX 10.5.8, und Dual-Boot-Linux ist ziemlich schwierig (ich habe versucht.) Ich habe mich gefragt, ob es eine bestimmte "Standard" Python-Modul, das lesen und Schreiben von Audiodaten (vielleicht Speichern von Schnappschüssen der Daten in Numpy-Arrays.) Ich plane auf mit einem Thread lesen/Speichern von Daten, und ein anderer Thread reagieren, indem Sie neue Signale.

Im Moment möchte ich die Audiobuchse in meinem Computer verwenden, aber irgendwann möchte ich in der Lage sein, USB-Soundkarten auf ähnliche Weise zu verwenden. Zu diesem Zeitpunkt möchte ich in der Lage sein, mehrere Signale zu steuern (unter Verwendung eines USB-Port-Expanders).

Ich habe mich eine Weile umgesehen und ein paar Bibliotheken gefunden, die für die Audioverarbeitung verwendet werden, aber sie basieren in der Regel auf dem Lesen und Schreiben von Dateien und nicht auf der dynamischen Datenverarbeitung. Die beste Bibliothek ist vielleicht gar keine Audiobibliothek. Ich habe eigentlich vor, damit Schaltkreise zu steuern, aber Google hat mich zu Audio als der besten Möglichkeit geführt, meinen Computer dafür zu nutzen.

Wie auch immer, ich hoffte auf ein paar Vorschläge.

3voto

MercuryRising Punkte 872

En Enthought Tool Suite enthält Beispiele für die Audioverarbeitung in Echtzeit. Sie sind in der chaco/advanced Beispielordner , spectrum.py , spec_waterfall.py . Sie verwenden die Chaco Plotting Library und pyaudio um Echtzeit-Audio zu machen. (Hier ist ein weiteres Live-FFT basierend auf pyaudio und der WCK Graph-Bibliothek). Sie sind wirklich großartig und geben Ihnen Live-Feedback für das, was auf Ihrem Mikrofon passiert. Sie können diese Daten ändern, wenn sie eingehen, und vor der Anzeige bearbeiten, was Sie wollen.

Was ist das Endziel dessen, was Sie tun möchten? Sie sagten "Schaltkreise kontrollieren", welche Art von Schaltkreisen möchten Sie kontrollieren? Wenn du schreibst, was du gerne tun würdest, kann es sein, dass jemand eine bessere Lösung findet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X