Frage

Ich entwickle Software, die auf musikalische Akkorde Erkennung abhängt. Ich kenne einige Algorithmen zur Tonhöhenerkennung, mit Techniken, die auf Cepstral-Analyse oder Autokorrelation, aber sie sind in erster Linie auf monophone Materialerkennung fokussiert. Aber ich muss Arbeit mit einigen polyphonen Anerkennung, dass mehrere Teilungen zur gleichen Zeit ist, wie in einem Akkord; Hat jemand ein paar gute Studien oder Lösungen zu dieser Frage wissen?

Ich bin derzeit einige Algorithmen zu entwickeln, basierend auf der FFT, aber wenn jemand eine Idee auf einige Algorithmen oder Techniken hat, dass ich verwenden können, wäre es eine große Hilfe sein.

War es hilfreich?

Lösung

Das ist ein recht gutes Open-Source-Projekt: https://patterns.enm.bris.ac.uk/hpa-software-package

Es erkennt Akkorde auf der Grundlage einer chromagram - eine gute Lösung, bricht ein Fenster des gesamten Spektrums auf eine Anordnung von Tonigkeiten (Größe: 12) mit Float-Werten. Dann kann Akkord von einem Hidden-Markov-Modell erfaßt werden.

.. sollten Sie mit allem, was Sie brauchen. :)

Andere Tipps

Der Autor von Capo , ein Transkriptionsprogramm für den Mac, hat eine ziemlich in die Tiefe Blog. Der Eintrag "Ein Hinweis auf Auto Tabbing" hat einige gute Abspringen Punkte:

  

begann ich verschiedene Methoden der automatischen Transkription Mitte 2009 die Erforschung, weil ich neugierig war, wie weit diese Technologie war, und wenn es in einer zukünftigen Version von Capo integriert werden.

     

Jede dieser automatischen Transkription Algorithmen beginnen mit einer Art von Zwischen represenation der Audiodaten, und dann übertragen sie, dass in einer symbolischen Form (das heißt Note Anläufe und Dauer).

     

Dies ist, wo ich einige rechenintensive spektralen Darstellungen begegnet (Continuous Wavelet-Transformation (CWT), Constant Q-Transformation (CQT) und andere.) Ich alle diese Spektraltransformationen implementiert, so dass ich auch die vorgestellten Algorithmen implementieren könnte durch die Papiere, die ich las. Das würde mir eine Vorstellung davon, ob sie in der Praxis funktionieren würden.

Capo hat einige beeindruckende Technologie . Das herausragende Merkmal ist, dass seine Hauptansicht ist wie die meisten anderen Audio-Programme nicht ein Frequenz-Spektrogramm. Es stellt das Audio-wie ein Klavier roll, mit den Noten, die mit bloßem Auge.


(Quelle: supermegaultragroovy.com )

(Hinweis:.. Die harten Notenbalken durch einen Benutzer gezogen wurden die Fuzzy-Flecken unterhalb sind, was Capo Displays)

Es gibt erhebliche Überschneidungen zwischen Akkorderkennung und Tastenerkennung, und so können Sie einige meiner vorherige Antwort auf diese Frage nützlich, da es ein paar Links zu Zeitungen und Thesen hat. einen guten polyphonen Erkenner zu bekommen ist unglaublich schwierig.

Mein eigener Standpunkt dazu ist, dass polyphone Anerkennung beantragt, um die Noten zu extrahieren und dann Akkorde aus den Notizen zu erkennen versucht, ist der falsche Weg, darüber zu gehen. Der Grund dafür ist, dass es ein zweideutiges Problem. Wenn Sie zwei komplexe Töne genau eine Oktave auseinander, dann ist es unmöglich zu erkennen, ob es eine oder zwei Noten zu spielen (es sei denn, Sie zusätzlichen Kontext haben, wie das harmonische Profil zu kennen). Jede Harmonische von C5 ist auch eine Harmonische von C4 (und C3, C2, usw.). Also, wenn Sie einen Dur-Akkord in einem polyphonen Erkenner versuchen dann werden Sie wahrscheinlich eine ganze Folge von Noten bekommen aus, die Ihrem Akkord harmonisch verwandt sind, aber nicht unbedingt die Noten, die Sie gespielt. Wenn Sie eine Autokorrelation basierte Tonhöhenerkennungsmethode verwenden dann werden Sie diesen Effekt ganz deutlich sehen.

Stattdessen Ich denke, es ist besser für die Muster zu sehen, die von bestimmten Akkord Formen hergestellt werden (Dur, Moll, 7., etc).

Sehen Sie meine Antwort auf diese Frage: Wie kann ich tun, Echtzeit-Pitch Erkennung in .net?

Der Verweis auf dieses IEEE Papier ist vor allem, was Sie suchen: http://ieeexplore.ieee.org/Xplore/login.jsp?reload=true&url=/iel5/89/18967/00876309.pdf?arnumber=876309

Die Harmonischen werfen Sie weg. Darüber hinaus können Menschen Fundamentaldaten in Sound finden, auch wenn die von grundlegender Bedeutung ist nicht vorhanden! Denken Sie an das Lesen, sondern um die Hälfte der Buchstaben bedeckt. Das Gehirn füllt die Lücken.

Der Kontext anderer Töne in der Mischung, und was vorher kam, ist sehr wichtig, wie wir Noten wahrnehmen.

Dies ist ein sehr schwieriges Muster Matching-Problem, wohl geeignet für eine AI-Technik wie neuronale Netze oder genetische Algorithmen trainiert.

Im Grunde genommen bei jedem Zeitpunkt, erraten Sie die Anzahl der Noten spielen wird, die Noten, die Instrumente, die die gespielten Noten, die Amplituden und die Dauer der Note. Dann summieren Sie die Größen aller Harmonischen und Untertöne, dass alle diese Instrumente erzeugen würden, wenn sie bei diesem Volumen an diesem Punkt in thier Umschlag gespielt (Attack, Decay, etc.). Subtrahieren die Summe aller dieser Harmonischen aus dem Spektrum von Ihnen signalisieren, dann minimieren, um die Differenz über alle Möglichkeiten. Mustererkennung von der dumpfen Schlag / Quietschen / zupfen Störspannungsschutz / etc. ganz am Beginn der Note sein könnte ebenfalls wichtig. Dann tun Analyse einige Entscheidung um sicherzustellen, dass Ihre Entscheidungen Sinn machen (beispielsweise eine Klarinette nicht plötzlich in eine Trompete ändern andere Note zu spielen und wieder 80 mS später), um die Fehlerwahrscheinlichkeit zu minimieren.

Wenn Sie Ihre Auswahl einschränken können (zum Beispiel nur 2 Flöte nur Viertelnoten spielen, etc.), insbesondere auf Instrumente mit sehr begrenztem Oberton Energie, macht es das Problem viel einfacher.

Auch http://www.schmittmachine.com/dywapitchtrack.html

  

Die dywapitchtrack Bibliothek berechnet die Tonhöhe eines Audio-Stream in Echtzeit. Die Steigung ist die Hauptfrequenz der Wellenform (die ‚Anmerkung‘ abgespielten oder Sprache). Es wird als ein Schwimmer in Hz ausgedrückt.

Und http://clam-project.org/ kann ein wenig helfen.

Dieser Beitrag ist ein bisschen alt, aber ich dachte, dass ich das folgende Papier zur Diskussion hinzufügen würde:

Klapuri, Anssi; Mehrseillängen Analyse von Polyphone Musik und Sprachsignalen Mit einem Auditory Modell ; IEEE TRANSACTIONS ON AUDIO, Sprache und Sprachverarbeitung, VOL. 16, NO. 2, Februar 2008 255

Das Papier wirkt ein wenig wie ein Literaturübersicht der Analyse und bespricht Mehrseillängen ein Verfahren basierend auf einem Gehörmodell:

(Das Bild von dem Papier ist. Ich weiß nicht, ob ich die Erlaubnis bekommen habe, es zu schreiben.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top