2016-07-21 8 views
0

Welche Art von APIs oder Frameworks werden verwendet, um einer Notennote einen Wert zuzuweisen? Wie würde eine Anwendung wie Shazzam eine Notiz vom Mikrofon aufnehmen und wissen, was damit zu tun ist? Für mich ist es erstaunlich, ein Telefon-Mikrofon und einige intelligente Logik kann mit einem Tuner aus einem Musikgeschäft konkurrieren!Was sind die Prinzipien hinter dem akustischen Fingerabdruck?

Bearbeiten 1.

Interessante Papiere zu diesem Thema. Shazzam der Musikerkennung App Software beruht auf dem Prinzip der Acoustic fingerprinting und ein Fast Fourier Transform

Hier ist ein Beispiel einige ähnlichen Code in practice

Antwort

2

Die akustischen Fingerabdruckalgorithmen versuchen nicht, die Musik zu analysieren. Das heißt, sie konvertieren Audio vom Mikrofon nicht in Noten. Sie extrahieren einige willkürliche Merkmale aus dem Audio, die aus der Perspektive der Musiktheorie wenig sinnvoll sind, aber sie sind immer noch nützlich, um Musik zu identifizieren.

Normalerweise beginnen Sie mit einem Spektrogramm. Ein Spektrogramm ist eine Analyse von Frequenzen, die sich im Laufe der Zeit ändern. Das ist für fast alle akustischen Fingerabdruckalgorithmen üblich. Sie unterscheiden sich darin, was sie mit dem Spektrogramm machen und welche Merkmale sie daraus ziehen. Einige Algorithmen suchen nach Peaks im Spektrogramm, andere in regelmäßigen Intervallen. Das Endziel ist normalerweise, eine Reihe von Hashes zu generieren, die Sie indexieren und schnell durchsuchen können.

Der ursprüngliche Shazam-Algorithmus von Avery Li-Chun Wang ist öffentlich verfügbar. Sie finden die Details here.

0

kurze und einfache Erklärung.

Schritt 1.e Analyse aller ursprüngliche Frequenz der Song-Datei von FFT

Schritt 2 richtige Baumdatenstruktur macht mit früherem FFT-Analyseergebnis verwendet wird, so können wir Song von Frequenz suchen.

Schritt 3. Mikrofon verwenden, um Songs aus einer externen Umgebung aufzunehmen. und analysieren Sie es auch mit FFT. Suche übereinstimmende Frequenz vom vorherigen Frequenzbaum.