2009-05-25 7 views
4

Wie ist der Stand der Technik der Klanganpassung/Suche in der Praxis? Momentan bin ich an der Planung einer Webanwendung beteiligt, die unter anderem eine Datenbank mit aufgezeichneten kurzen Audioclips (höchstens 3-5 Sekunden, Namen von Personen) enthält. Eine Frage wurde aufgeworfen, ob es möglich wäre, eine Suche basierend auf Benutzer-Spracheingabe zu implementieren. Mein Bauchgefühl sagt mir, dass es sowohl aus rechnerischer als auch aus algorithmischer Sicht eine unmögliche Aufgabe ist, insbesondere in der Webanwendung (und außerdem wäre es kein Kernmerkmal der Anwendung). Ich weiß, dass es vielleicht eine Reihe akademischer Projekte gibt und dass es ein gutes Forschungsthema wäre, aber es ist nichts, was als zusätzliche Funktion in eine mittelgroße Webanwendung implementiert werden könnte. Um meine Behauptungen zu stützen, habe ich eine halbe Stunde damit verbracht zu suchen, damit ich nichts Offensichtliches verpasse, aber ich konnte wirklich keine guten Quellen finden.Klangabstimmung/Suche

Ich weiß, dass es nicht sehr verantwortlich ist, eine Frage zu SO zu stellen, ohne mehr Zeit für eigene Recherchen zu verschwenden, aber ich habe festgestellt, dass das Auslösen einer Frage zu SO viel effektiver, präziser und schneller ist Dinge googeln.

+0

Ich bin mir nicht sicher, ob EchoNest für Sie nützlich wäre, aber Sie möchten vielleicht nachschlagen. – William

Antwort

6

Es gibt einige Audio-Fingerprinting-Technologien, die hauptsächlich eine Audiodatei enthalten. Dann ist das Suchen eine einfache Hashtabellen- oder Datenbanksuche.

Musicbrainz hat einen guten Lauf-down der verschiedenen Technologien Here

Ob diese Fingerabdrücke für Ihre spezielle Situation geeignet oder genau sind, könnte ich Ihnen nicht sagen.

5

Ich bin nicht sicher, ob Sie versuchen, den Sprecher anhand der Eingabe zu identifizieren oder die Eingabe mit den Namen in der Datenbank abzugleichen. Jedoch: Ich hatte diese Idee, um eine Metrik zu entwickeln, um eine "Entfernung" von zwei gesprochenen Wörtern zu berechnen. Ich habe nie eine Implementierung abgeschlossen, aber ich habe Folgendes herausgefunden:

1) Sie müssen die wesentlichen Merkmale des Audios definieren. Dies ist der "Hashing" -Teil, den Nick in seiner Antwort beschreibt. Selbst ein Spektrogramm kann zu viele Informationen enthalten, um nützlich zu sein. Ein Ansatz, den ich als potentiell interessant fand (ohne irgendwelche theoretischen Kenntnisse über die Sprachforschung zu haben), war MFCC (d. H. Mel-Frequenz-Cepstral-Koeffizienten). Es gibt kostenlosen Code bei etsi.org (Suche nach Sprachrekord und Standards).

2) Die Redegeschwindigkeit kann variieren, was die Dinge komplizierter macht. Dynamisches Time Warping kann dazu eingesetzt werden. Ein Beispiel finden Sie in Matlab-code.

Ich denke nicht, dass dies sehr einfach zu implementieren wäre, und es würde viel tuning benötigen. Und es ist definitiv nicht State of the Art.