5 Stimmen

Tonabgleich / Suche

Was ist der aktuelle Stand der Technik bei der Suche nach Geräuschen in der Praxis? Ich bin derzeit aus der Ferne an der Planung einer Webanwendung beteiligt, die unter anderem eine Datenbank mit aufgenommenen kurzen Audioclips (höchstens 3-5 Sekunden, Namen von Personen) enthalten und zugänglich machen soll. Es wurde die Frage aufgeworfen, ob es möglich wäre, eine Suche auf der Grundlage der Spracheingabe des Benutzers zu implementieren. Mein Bauchgefühl sagt mir, dass es eine unmögliche Aufgabe ist, sowohl vom rechnerischen als auch vom algorithmischen Standpunkt aus, besonders in einer Webanwendung (und außerdem wäre es keine Kernfunktion der Anwendung). Mir ist klar, dass es vielleicht eine Reihe von akademischen Projekten gibt und dass es ein gutes Forschungsthema wäre, aber es ist nichts, was in einer mittelgroßen Webanwendung als zusätzliche Funktion implementiert werden könnte. Um meine Behauptungen zu untermauern, habe ich eine halbe Stunde lang gesucht, um nichts Offensichtliches zu übersehen, aber ich konnte wirklich keine guten Quellen finden.

Ich weiß, dass es nicht sehr verantwortungsbewusst ist, eine Frage auf SO zu stellen, ohne mehr Zeit für eigene Nachforschungen aufzuwenden, aber ich habe festgestellt, dass es viel effektiver, präziser und schneller ist, eine Frage auf SO zu stellen, als einfach wahllos zu googeln.

7voto

Nick Punkte 1759

Es gibt einige (meist proprietäre) Audio-Fingerprinting-Technologien, mit denen eine Audiodatei im Wesentlichen "gehasht" wird. Die Suche ist dann eine einfache Hashtabelle oder Datenbankabfrage.

Musicbrainz bietet eine gute Übersicht über die verschiedenen Technologien Aquí

Ob diese Fingerabdrücke für Ihre spezielle Situation geeignet sind oder nicht, kann ich Ihnen nicht sagen.

5voto

Ville Koskinen Punkte 1256

Ich bin mir nicht sicher, ob Sie versuchen, den Sprecher anhand der Eingabe zu identifizieren oder die Eingabe mit den Namen in der Datenbank abzugleichen. Wie auch immer: Ich hatte mal die Idee, eine Metrik zu entwickeln, um den "Abstand" zwischen zwei gesprochenen Wörtern zu berechnen. Ich bin nie auch nur annähernd zu einer Implementierung gekommen, aber ich habe folgendes herausgefunden:

1) Sie müssen die wesentlichen Merkmale des Tons definieren. Dies ist der "Hashing"-Teil, den Nick in seiner Antwort beschrieben hat. Selbst ein Spektrogramm kann zu viele Informationen enthalten, um nützlich zu sein. Ein Ansatz, den ich als potentiell interessant empfand (ohne theoretische Kenntnisse in der Sprachforschung zu haben), war MFCC (d.h. Mel Frequency Cepstral Coefficients). Es gibt freien Code auf etsi.org (suchen Sie nach speech regocnition and standards).

2) Die Geschwindigkeit des Sprechens kann variieren, was die Sache verkompliziert. Mit dynamischer Zeitverzerrung lässt sich dies beheben. Siehe dies Matlab-Code für ein Beispiel.

Ich glaube nicht, dass dies sehr einfach zu implementieren wäre, und es würde viel Tuning erfordern. Und es ist definitiv nicht auf dem neuesten Stand der Technik.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X