2010-02-16 17 views
5

Ich habe Probleme bei der Bestimmung von this research paper genau, wie ich den Standardvektor-Quantisierungsalgorithmus reproduzieren kann, um die Sprache einer nicht identifizierten Spracheingabe basierend auf einem Trainingsdatensatz zu bestimmen. Hier einige grundlegende Informationen:Vektorquantisierung in der Sprachverarbeitung Erläuterung

Abstrakt info Spracherkennung (zum Beispiel Japanisch, Englisch, Deutsch, etc.) unter Verwendung von akustischen Merkmalen sind ein wichtiges, aber schwieriges Problem für aktuelle Sprechen Technologie. ... Die in diesem Artikel verwendete Sprachdatenbank enthält 20 Sprachen: 16 Sätze, die zweimal von 4 Männern und 4 Frauen ausgesprochen wurden. Die Dauer jedes Satzes beträgt etwa 8 Sekunden. Der erste Algorithmus basiert auf der Standard-Vektorquantisierungs (VQ) -Technik . Jede Sprache wird durch ein eigenes VQ-Codebuch, alt text, charakterisiert.

Erkennungsalgorithmen Der erste Algorithmus basiert auf der Standard-Vektorquantisierungs (VQ) -Technik. Jede Sprache, k, ist durch ein eigenes VQ-Codebuch gekennzeichnet, alt text. In der Erkennungsstufe wird die Eingangssprache durch alt text quantisiert und die akkumulierte Quantisierungsverzerrung d_k wird berechnet. Die Sprache, die als minimale Verzerrung erkannt wird. Bei der Berechnung der VQ-Verzerrung werden mehrere LPC-Spektralverzerrungsmaße angewendet ... in diesem Fall das WLR - gewichtete kleinste Verhältnis - Abstand: http://tinyurl.com/yc52gcl.

Standard-VQ-Algorithmus: Ein Codebuch, alt text http://tinyurl.com/y8csx6e wird für jede Sprache erzeugt Sätze Training mit. Der akkumulierte Distanz für Eingangsvektor in Satz wird alt text, definiert als: alt text http://tinyurl.com/ybynjc2

Der Abstand d kann jeder Abstand sein, der an den akustischen Merkmalen entspricht, und es muß die gleiche wie die eine für Codebuch-Generation verwendet wird. Jede Sprache ist durch ihr VQ-Codebuch alt text gekennzeichnet.

Meine Frage ist, wie genau mache ich das? Ich habe einen Satz von 50 Sätzen in Englisch. In MATLAB kann ich den WLR für jedes gegebene Signal leicht berechnen. Aber wie formuliere ich ein Codebuch, da ich den WLR für die "Codebuchgenerierung" für Englisch verwenden muss. Ich bin auch neugierig, wie man ein VQ-Codebuch der Größe 16 (welches die beste Größe war) mit einem gegebenen Eingangssignal vergleicht. Wenn mir jemand helfen könnte, dieses Papier für mich zu destillieren, würde ich es sehr begrüßen.

Danke!

Antwort

1

Die zweite Frage (Codebuch zu gegebenem Signal vergleichen) ist einfacher: Für jeden Codebucheintrag V_k_j müssen Sie den Abstand d mit dem Eingangssignal berechnen. Das 'j' mit dem kleinsten Abstand 'd' wird mit dem am besten angepaßten Codebucheintrag übereinstimmen. Als Abstandsfunktion können Sie WLR verwenden

Building Codebuch (Training) ist etwas komplizierter. Sie müssen Ihre Sätze in Vektoren mit der Länge N (16) aufteilen und dann einen Cluster-Algorithmus (wie k-means) verwenden, um diese Vektoren zu clustern. Dann finde in jedem Cluster einen Mittelwert. Dieser Mittelwert und wird Codebucheintrag sein. Es ist eine erste Sache, die mir in den Sinn kommt.

Ein anderer Algorithmus (ich glaube, es wird besser sein) kann here gefunden werden. Auch zwei einfache Trainingsalgorithmen sind in Wikipedia

beschrieben