Lesen Sie die Frequenz von mic auf Raspberry Pi
Gibt es eine einfache Möglichkeit zur Aufzeichnung ein paar Sekunden der Ton und die Umrechnung auf die Frequenz? Ich habe ein USB-mic und ein raspberry pi 2 B.
In die Datei geschrieben (convert2note.py) ich Frage mich, wie in f gleich der Frequenz, die von der mic.
Dies ist, was das Programm sieht wie bisher
#d=69+12*log(2)*(f/440)
#d is midi, f is frequency
import math
f=raw_input("Type the frequency to be converted to midi: ")
d=69+(12*math.log(float(f)/440))/(math.log(2))
d=round(int(d))
notes = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
print notes[d % len(notes)]
Dank einer Tonne im Voraus 😀
- Ist Ihre erste Frage - wie kann ich capture ein Ton von einem Mikrofon mit python? Ich wundere mich, weil Sie scheinen nicht zu haben ein Mikrofon-Eingang. Wenn das deine Frage gibt es mehrere Antworten hier, dass die Referenz einige potenziell nützliche Bibliothek.
- Deine zweite Frage, wie mache ich den sound, den ich eingefangen, und bestimmen Sie die Frequenz dieser Welle, wieder gibt es einige Fragen hier, die Referenz Methoden, die scheinen, wie Sie funktionieren würde
- Ja, das sind meine beiden Fragen. Konnte man vor mir auf die richtigen Seiten? Ich bin mir ziemlich verloren auf, wo Sie anfangen und wie man an dieses Problem Herangehen. Danke!!!
- Hier ist eine Diskussion über how to capture sound vom mic auf raspberry-pi.
http://raspberrypi.stackexchange.com/questions/4027/how-do-capture-audio-using-python
. suchen Sie einfach mit den oben Schlüsselwort innerhalb stack Seite führen Sie zu entsprechenden Diskussionen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Aufnahme von Audiodaten können Sie zum Beispiel verwenden die
sox
Programm. Finden Sie in der verlinkten Dokumentation für details, aber es könnte so einfach wie:Aber das folgende wird verwendet, um die Datei, die dem format entsprechen, das erwartet Sie den code unten;
(Technisch nur
-c
,-b
und-e
Optionen sind erforderlich, um entsprechend den folgenden code. Sie könnte reduzieren Sie die sample-rate-r
zur Beschleunigung der Verarbeitung)Für die Verarbeitung der audio-Python, am besten wäre es, speichern Sie es in einem
wav
Datei, da Python hat ein Modul für das Lesen diejenigen, die in der standard-Bibliothek.Konvertierung von audio-Frequenzen, die wir verwenden werden, die diskrete Fourier-Transformation in form von Numpy ist fast-Fourier-Transformation für die Echtzeit-Eingabe. Siehe das code-fragment unten, wo ich bin, auch mit matplotlib um Grundstücke.
Den code unten übernimmt ein 2-Kanal (stereo) 16-bit-WAV-Datei.
Den
avgf
array enthält jetzt den Durchschnitt der linken und rechten Frequenzen. Die Grundstücke wie folgt Aussehen;Wie Sie sehen können, ertönt ein signal hält in der Regel viele Frequenzen.