Algorithmen zum Bestimmen des Schlüssels eines Audio-Samples
Ich interessiere mich für die Bestimmung der Tonart einer audio-sample. Wie würde (oder könnte) einen Algorithmus gehen, um zu versuchen, annähernd den Schlüssel des musikalischen audio-sample?
Antares Autotune und Melodyne sind zwei Stücke von software, die tun diese Art der Sache.
Kann jeder geben, ein bisschen ein Laie die Erklärung, wie dies funktionieren würde? Mathematisch abzuleiten, die Schlüssel in einem song durch die Analyse des Frequenzspektrums für Akkordfolgen etc.
Diesem Thema interessiert mich sehr!
Bearbeiten - brillante Quellen und eine fülle von Informationen gefunden werden, von allen, die beigetragen haben zu dieser Frage.
Besonders aus: the_mandrill und Daniel Brückner.
InformationsquelleAutor der Frage Alex | 2010-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lohnt es sich, bewusst zu sein, dass dies ein sehr heikles problem, und wenn Sie nicht über einen hintergrund in der Signalverarbeitung (oder ein Interesse daran), dann haben Sie eine sehr frustrierende Zeit, die vor Euch liegen. Wenn Sie erwarten, zu werfen, ein paar FFTs das problem, dann wirst du nicht sehr weit kommen. Ich hoffe, Sie haben das Interesse, denn er ist ein wirklich faszinierendes Gebiet.
Zunächst gibt es das problem der pitch Anerkennung, das ist relativ einfach zu tun, für einfache monophonen Instrumenten (z.B. Stimme) mit einer Methode wie Autokorrelation oder harmonische Summe Spektrum (zB Paul R ' s link). Allerdings werden Sie oft feststellen, dass dies die falschen Ergebnisse: Sie werden oft die Hälfte oder das doppelte der Tonhöhe, die Sie erwartet hatten. Dies wird als pitch periodenverdopplung oder Oktave Fehler und es tritt im wesentlichen, weil die FFT oder Autokorrelation hat die Annahme, dass die Daten über Konstante Eigenschaften über die Zeit. Wenn Sie ein instrument gespielt von einem Menschen gibt, wird es immer einige Abweichungen.
Einige Leute nähern sich dem problem von Schlüssel Anerkennung als eine Angelegenheit zu tun, die Tonhöhe Anerkennung zunächst und dann finden Sie den Schlüssel von der Reihenfolge der Plätze. Dies ist unglaublich schwierig, wenn Sie alles andere als eine monophone Sequenz von Tonhöhen. Wenn Sie eine monophone Sequenz von Tonhöhen, dann ist es noch nicht klar-cut-Methode ermitteln Sie den Schlüssel: wie Sie befassen sich mit der chromatischen Anmerkungen, zum Beispiel, oder zu bestimmen, ob es Dur oder Moll. So würden Sie brauchen, um eine Methode ähnlich Krumhansl ist key finding Algorithmus.
So, in Anbetracht der Komplexität dieses Ansatzes, eine alternative ist der Blick auf alle Noten gleichzeitig gespielt. Wenn Sie Akkorde oder mehrere Instrumente, dann sind Sie gehen, um eine reichhaltige spektrale Suppe vieler sinusoide spielen auf einmal. Jede einzelne note, besteht aus mehreren harmonischen einer Grundfrequenz, so dass Eine (bei 440Hz) wird aus der sinusoide bei 440, 880, 1320... Außerdem, wenn Sie spielen ein E
(siehe diese Diagramm für Stellplätze) dann ist 659.25 Hz, was fast eine und eine halbe mal Eine (eigentlich 1.498). Dies bedeutet, dass jede 3. harmonische Eines fällt bei jeder 2. harmonische von E. Dies ist der Grund dafür, dass Akkorde klingen angenehm, weil Sie den Anteil der Obertöne. (nebenbei, der ganze Grund, dass die westliche Harmonie arbeitet, ist aufgrund der Eigenart des Schicksals, dass die zwölfte Wurzel von 2 hoch 7 ist fast 1,5)
Wenn Ihr mir über dieses Intervall von 5 Dur -, Moll-und andere Akkorde, dann finden Sie andere Verhältnisse. Ich denke, dass viele wichtige Feststellung Techniken aufgelistet, werden diese Verhältnisse und füllen Sie dann ein Histogramm für jeden spektralen peak im signal. So im Falle der Erkennung des Akkords A5, die Sie erwarten würden, um zu finden, die peaks bei 440, 880, 659, 1320, 1760, 1977. Für B5 es werden 494, 988, 741, usw. So erstellen Sie eine Frequenz Histogramm und für jedes Sinus-peak im signal (z.B. von der FFT power spectrum) der Schrittweite des Histogramms Eintrag. Dann für jeden Schlüssel Ein-G-tally bis die Behälter in Ihrem Histogramm und diejenigen mit den meisten Einträgen ist wahrscheinlich, um Ihre Schlüssel.
Ist das nur eine sehr einfache Methode, aber möglicherweise genug, um den Schlüssel zu finden von einer gestrichenen oder anhaltenden Akkord. Sie würde auch zu hacken, das signal in kleine Intervalle (z.B. 20ms) und analysieren jedes zu bauen, um eine robustere Schätzung.
EDIT:
Wenn Sie Experimentieren wollen, dann würde ich vorschlagen, dass Paket herunterladen wie Oktave oder MUSCHEL, das macht es einfacher, sich zu vergegenwärtigen, audio-Daten und run FFTs und andere Operationen.
Andere nützliche links:
InformationsquelleAutor der Antwort the_mandrill
Ich habe an das problem der Transkription polyphoner CD-Aufnahmen in Noten für mehr als zwei Jahre an der Universität. Das problem ist notorisch schwer. Die ersten wissenschaftlichen arbeiten in Bezug auf das problem zurück bis in die 1940er-Jahre und bis heute gibt es keine robuste Lösungen für den Allgemeinen Fall.
Alle die Grundannahme, die Sie normalerweise Lesen, die nicht exakt stimmt, und die meisten von Ihnen sind falsch genug, dass Sie unbrauchbar für alles, aber sehr einfachen Szenarien.
Die Frequenzen der Obertöne sind nicht Vielfache der grundlegenden Frequenz - es werden nicht-lineare Effekte, so dass die hohen Teiltöne drift Weg von der erwarteten Frequenz - und nicht nur ein paar Hertz; es ist nicht ungewöhnlich, um zu finden, die 7. teilweise wo man erwartet, den 6.
Fourier-Transformationen zu tun nicht spielen schön mit audio-Analyse, weil die Frequenzen man interessiert ist beabstandet sind logarithmisch, während die Fourier-transformation ergibt sich Linear beabstandeten Frequenzen. Bei niedrigen Frequenzen benötigen Sie eine hohe frequenzauflösung zu trennen benachbarten Tonhöhen - aber das ergibt schlechte zeitliche Auflösung, und Sie verlieren die Möglichkeit der separaten Noten, die gespielt werden in schneller Folge.
Einer audio-Aufnahme hat (wahrscheinlich) nicht enthält alle notwendigen Informationen zur Rekonstruktion der Partitur. Ein großer Teil unserer Musik-Wahrnehmung geht in unser Ohr und Gehirn. Das ist, warum einige der erfolgreichsten Systeme der expert-Systeme mit großen Wissens-repositories über die Struktur der (westlichen) Musik, die sich nur berufen, zu einem kleinen Teil auf die Signalverarbeitung zur Extraktion von Informationen aus der audio-Aufnahme.
Wenn ich wieder zu Hause bin werde ich mich durch die Papiere, die ich gelesen haben, und wählen Sie die 20 oder 30 wichtigsten und fügen Sie Sie hier. Ich schlage vor, Sie zu Lesen, bevor Sie sich entscheiden, etwas umzusetzen - wie bereits erwähnt, sind die meisten gemeinsamen Annahmen sind etwas falsch, und Sie wirklich nicht wollen, zu entdecken, alle diese Dinge gefunden und analysiert seit mehr als 50 Jahr, während Sie implementieren und testen.
Es ist ein schweres problem, aber es ist viel Spaß, auch. Ich würde wirklich gerne hören, was Sie versucht und wie gut es funktionierte.
Jetzt können Sie einen Blick auf die Constant-Q-Transformation, Cepstrum und Wigner(–Ville) - Verteilung. Es gibt auch einige gute Papiere, wie zum extrahieren der Frequenz von Verschiebungen in der phase der kurz-Zeit-Fourier-Spektren - dies ermöglicht den Einsatz sehr kurzer windows-Größen (für hohe Auflösung), weil die Frequenz kann ermittelt werden mit einer Genauigkeit von mehreren 1000 mal größer als die Frequenz-Auflösung des zugrunde liegenden Fourier-transformation.
Alle diese Transformationen passen, das problem der audio-Verarbeitung viel besser als normale Fourier-Transformationen. Für die Verbesserung der Ergebnisse der grundlegenden Transformationen haben Sie einen Blick auf das Konzept der Energie-Neuzuweisung.
InformationsquelleAutor der Antwort Daniel Brückner
Können Sie die Fourier-Transformation zur Berechnung des Frequenz-Spektrums aus einem audio-sample. Aus dieser Ausgabe können Sie die Frequenz-Werte für bestimmte Notendiesen in eine Liste von Notizen zu hören, die während der Probe. Die Wahl der stärksten Hinweise gehört pro Probe über eine Reihe von Proben, sollten Sie eine anständige Karte der verschiedenen Noten verwendet, die Sie vergleichen können, um die verschiedenen Tonleiternum eine Liste der möglichen Skalen enthalten, die Kombination von Noten.
Helfen, zu entscheiden, welche Skala verwendet wird, machen eine Anmerkung (kein Wortspiel beabsichtigt) die am häufigsten zu hören Notizen. In der westlichen Musik, die Wurzel der Maßstab ist in der Regel der häufigste Hinweis gehört, dann die fünfte, dann die vierte. Sie können auch für Muster wie z.B. gemeinsame Akkordearpeggiosoder Progressionen.
Stichprobengröße wird wohl wichtig sein hier. Im Idealfall, jedes sample eine einzelne note (so dass Sie nicht bekommen, zwei Akkorde in einem sample). Wenn Sie filter aus und konzentrieren sich auf die niedrigen Frequenzen, Sie können möglicherweise verwenden Sie die volume-spikes ("Klicks") in der Regel verbunden mit percussion-Instrumenten, um zu bestimmen, das tempo des Songs und "sperren" Sie Ihren Algorithmus auf den beat der Musik. Start mit Proben, die einen halben beat-Länge und passen von dort. Bereit sein zu werfen, einige Proben, die nicht über eine Menge nützlicher Daten (wie eine Probe in die Mitte einer Folie).
InformationsquelleAutor der Antwort bta
Soweit ich sagen kann, aus dieser Artikelverschiedene Schlüssel haben jeweils Ihre eigene gemeinsame Frequenzen, so ist es wahrscheinlich, analysiert die audio-sample zu erkennen, was die häufigsten Noten und Akkorde sind. Nachdem alle, können Sie mehrere Tasten, die über dieselbe Konfiguration der Vorzeichen, mit dem Unterschied, dass der Hinweis, dass der Schlüssel beginnt und somit die Akkorde, die solche Schlüssel, so scheint es, wie oft die deutlichen Noten und Akkorde erscheinen, wäre die einzige wirkliche Möglichkeit, Sie könnte herausfinden, dass Art der Sache. Ich denke nicht wirklich, dass Sie bekommen können, ein Laie die Erklärung der tatsächlichen mathematischen Formeln, ohne eine Menge von Informationen.
Tun, beachten Sie, dass dies kommt von jemandem, der hat absolut keine Erfahrung in diesem Bereich, mit seiner ersten Aufnahme der verlinkten Artikel in dieser Antwort.
InformationsquelleAutor der Antwort JAB
Es ist ein Komplexes Thema, aber ein einfacher Algorithmus für die Bestimmung einer einzigen Taste (note) würde wie folgt Aussehen:
Tun fourier-transformation auf sagen wir mal 4096 samples (die genaue Größe hängt von Ihrer Auflösung verlangt) auf einem Teil der Probe enthält, die den Hinweis. Bestimmen Sie die power-peak im Spektrum - das ist die Frequenz der note.
Dinge werden immer enger, wenn Sie einen Akkord, verschiedene "Instrumente/Effekte" oder ein nicht-homophonen Musik Muster.
InformationsquelleAutor der Antwort MRalwasser
Zuerst müssen Sie ein pitch detection Algorithmus (z.B. Autokorrelation).
Können Sie dann Ihre pitch detection Algorithmus zum extrahieren der Tonhöhe über eine Anzahl von kurze Zeit windows. Nach, dass Sie brauchen würde, um zu sehen, welche Tonart in die Stichprobe einbezogenen Plätze am besten passen.
InformationsquelleAutor der Antwort Paul R
Wenn Sie brauchen, um zu klassifizieren, eine Reihe von songs, die Recht nun, dann crowd-Quelle, das problem mit etwas wie Mechanical Turk.
InformationsquelleAutor der Antwort Nathan
Analyse der key ist nicht dasselbe wie die Analyse der Tonhöhen. Leider ist das gesamte Konzept der Schlüssel ist etwas unklar, die verschiedenen Definitionen, die in der Regel neigen dazu, nur teilen das Konzept der tonischen, d.h. eine zentrale pitch/chord. Selbst wenn ein gutes system für die automatische Transkription existiert, gibt es keine zuverlässigen Algorithmus für die Bestimmung Schlüssel.
InformationsquelleAutor der Antwort Musicologist