extrahieren von pitch-Funktionen aus der audio-Datei
Ich versuche zum extrahieren von pitch-Funktionen von einer audio-Datei, die ich verwenden würde, für eine Klassifizierung problem. Ich bin mit python(scipy/numpy) für die Einstufung.
Ich denke, ich kann die Frequenz Funktionen mit scipy.fft
aber ich weiß nicht, wie zu approximieren, werden die Noten mit Frequenzen. Ich habe etwas recherchiert und gefunden, dass ich brauche, um die chroma-Merkmale, die Zuordnung von Frequenzen zu 12
Behälter für Noten einer chromatischen Tonleiter.
Ich denke, es ist ein chroma-toolbox für matlab, aber ich glaube nicht, dass es etwas ähnliches für python.
Wie soll ich vorwärts gehen mit diesem?
Könnte jemand auch vorschlagen, das Lesen material, das ich in Aussehen sollte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie anzeigen Frequenzen Noten:
mit die Kammer pitch (in der modernen Musik 440,0 Hz üblich ist).
Wie Sie vielleicht wissen, eine einzige Frequenz nicht machen eine musikalische Tonhöhe. "Pitch" entsteht aus dem Gefühl der Grundfrequenz der harmonischen Klänge, d.h. Töne, die bestehen hauptsächlich aus ganzzahligen vielfachen von einer einzigen Frequenz (= die grundlegenden).
Wenn Sie wollen, um Chroma-Funktionen in Python, die Sie verwenden können, die Bregman Audio-Visuelle Informationen-Toolbox. Beachten Sie, dass die chroma-Funktionen geben Ihnen nicht die Informationen über die Oktave der Tonhöhe, so dass Sie nur Informationen über die pitch-Klasse.
Das Allgemeine problem, das extrahieren von pitch-Informationen von audio-heißt Erkennung der Tonhöhe.
Können Sie versuchen, das Lesen der Literatur über die Erkennung der Tonhöhe, die ist Recht umfangreich. In der Regel Autokorrelation basierende Methoden scheinen ziemlich gut zu funktionieren; Frequenz-domain-oder zero-crossing-Methoden sind weniger robust (also FFT nicht wirklich viel helfen). Ein guter Ausgangspunkt sein kann, um zu implementieren eine der beiden algorithmen:
YAAPT, aus: Stephen A. Zahorian und Hongbing Hu, "Ein Spektral-zeitliche Methode für robuste fundamentale Frequenz-tracking", J. Acoust. Soc. Bin. 123, 4559 (2008). http://bingweb.binghamton.edu/~hhu1/Papier/Zahorian2008spectral.pdf und MATLAB-code hier: http://ws2.binghamton.edu/zahorian/yaapt.htm
YIN, aus: De Cheveigné, A., Kawahara, H. YIN, a fundamental frequency estimator for speech and music", J. Acoust. Soc. Bin. 111, 1917-1930 (2002). http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf
Soweit off-the-shelf-Lösungen, check-out Aubio, C-code mit python-wrapper, der mehrere pitch-extraction-algorithmen zur Verfügung, einschließlich YIN-und multiple-Kamm.
Wenn Sie bereit sind, zu verwenden 3rd-party-Bibliotheken (zumindest als Referenz für die, wie andere Leute geschafft):
Extraktion musikalischer Informationen aus sound, eine Präsentation von PyCon 2012, zeigt, wie der AudioNest Python-API:
Hier ist der entsprechende EchoNest-Dokumentation:
Relevante Auszug:
EchoNest hat die Analyse auf seine Server. Sie bieten Kostenlose API-keys für nicht-kommerzielle Nutzung.
Wenn EchoNest ist nicht eine option, ich würde Blick auf die open-source -aubio-Projekt. Es hat python-Bindungen, und Sie können überprüfen, die Quelle, um zu sehen, wie Sie erreicht Erkennung der Tonhöhe.