Ich empfehle, einen Blick in das HTK-Toolkit für die Spracherkennung Ссылка zu werfen, insbesondere den Teil der Feature-Extraktion.
Merkmale, die ich als gute Indikatoren ansehe:
Angesichts Ihrer Klarstellung denke ich, wonach Sie suchen Spracherkennungsalgorithmen .
Obwohl Sie nur nach dem Maß der Ähnlichkeit suchen und nicht versuchen, Sprache in Text zu verwandeln, sind die Konzepte immer noch dieselben und ich wäre nicht überrascht, wenn ein großer Teil der Algorithmen sehr nützlich wäre.
>Allerdings müssen Sie diesen Ähnlichkeitskoeffizienten formeller und präziser definieren, um irgendwo hin zu kommen.
BEARBEITEN: Ich glaube, Spracherkennungsalgorithmen wären nützlich, weil sie Abstraktion des Klangs und Vergleich mit einigen bekannten Formen machen. Konzeptionell ist das vielleicht nicht anders als zwei Aufnahmen zu machen, sie zu abstrahieren und zu vergleichen.
Aus Wikipedia-Artikel über HMM
"In der Spracherkennung, das Versteckte Das Markov-Modell würde eine Sequenz ausgeben von n-dimensionalen reellwertigen Vektoren (wobei n eine kleine ganze Zahl ist, wie z 10), eine von diesen alle 10 auszugeben Millisekunden. Die Vektoren würden bestehen aus Cepstralkoeffizienten, welche erhalten werden, indem ein Fourier genommen wird Transformation eines kurzen Zeitfensters von Rede und Dekorrelation des Spektrums mit einer Cosinus-Transformation, dann nehmen der erste (wichtigste) Koeffizienten. "
Wenn Sie also einen solchen Algorithmus für beide Aufzeichnungen verwenden, erhalten Sie Koeffizienten, die die Aufzeichnungen repräsentieren, und es könnte viel einfacher sein, Ähnlichkeiten zwischen den beiden zu messen und festzustellen.
Aber jetzt kommst du wieder zur Frage der Definition des "Ähnlichkeitskoeffizienten" und die Einführung von Hunden und Pferden hat nicht wirklich geholfen.
(Nun, es ist ein bisschen, aber in Bezug auf die Auswertung Algorithmen und die Auswahl einer anderen, müssen Sie es besser machen).
Ich bin mir nicht sicher, ob das für Sounddateien funktioniert, aber es gibt dir eine Idee, wie ich weitermachen soll, hoffe ich. Das ist ein grundlegender Weg, um ein Muster (Bild) in einem anderen Bild zu finden.
Sie müssen zuerst das fft der beiden Soundfiles berechnen und dann eine Korrelation machen. In formular würde es wie (Pseudocode) aussehen:
%Vor%Wobei fft = schnelle Fourier-Transformation, ifft = invers, conj = konjugierter Komplex. Das fft wird an den Abtastwerten der Soundfiles durchgeführt. Die Spitzen im result_corr-Vektor geben Ihnen dann die Positionen mit hoher Korrelation. Beachten Sie, dass beide Sounddateien in diesem Fall die gleiche Größe haben müssen - andernfalls müssen Sie den kürzeren in eine Datei mit dem max (soundFileLength) -Vektor einfügen.
Grüße
Edit:. * bedeutet (in Matlab-Stil) eine komponentenweise mult, du darfst keinen Vektor mult machen! Weiter Edit: Beachten Sie, dass Sie mit komplexen Zahlen arbeiten müssen - aber es gibt einige komplexe Klassen da draußen, also denke ich, dass Sie sich nicht darum kümmern müssen.
Tags und Links algorithm c signal-processing voice