Ich weiß, dass ein Hidden Markov Model (HMM) zur Spracherkennung verwendet wird, und verstehe es bis zu einem gewissen Grad. Was ich jedoch nicht weiß, ist, wie Eingabe (Sprache) in einen Vektor "transformiert" wird, der später in HMM verwendet wird.
Wie erhält man einen Vektor von einer Soundeingabe? Ist dieser Vektor für einen Menschen lesbar?
speech-recognition
StupidOne
quelle
quelle
Antworten:
Die Art und Weise, wie die Spracherkennung mit HTK (oder einem anderen Tool) durchgeführt wird, ähnelt der Art und Weise, wie die Spracherkennung im Gehirn durchgeführt wird. Wenn Sie ein Wort hören, zerlegen Sie es sofort in seine einzelnen Telefone und vergleichen die Telefone mit einem internen mentalen "Modell" der Telefone . Diese "Modelle" sind über Jahre des Hörens von Sprache aufgebaut und geben Ihnen die Möglichkeit, zwischen ähnlich klingenden Sätzen wie "Wie man einen schönen Strand zerstört" und "Wie man Sprache erkennt" zu unterscheiden. Die Spracherkennung mit HTK oder einem anderen modellbasierten Schema funktioniert auf ähnliche Weise. Hier ist in wenigen Schritten, wie Sie es tun:
Alle oben genannten Schritte sind entscheidend für den erfolgreichen Abschluss einer Spracherkennungsaufgabe. Indem Sie einen Klang in seinen Merkmalsvektor zerlegen, nehmen Sie ihn in einen Modellraum auf und geben ihm eine Darstellung, die ihn besser zum Erstellen eines Modells geeignet macht als andere Darstellungen (z. B. die Zeit-Amplituden-Darstellung). Die meisten dieser Darstellungen liegen im Frequenz- oder Zeit-Frequenz-Bereich. Eine der beliebtesten Darstellungen dieser Art ist der MFCC (Mel Frequency Cepstral Coefficient).. In gewisser Weise ahmt diese Technik die menschliche Hörreaktion mit einer Reihe von Filtern nach. Ein Eingangssignal wird mit diesem Satz von Filtern zerlegt, die einen logarithmischen Abstand ihrer Mittenfrequenzen haben. Die MFCC-Koeffizienten eines Satzes (z. B.) werden dann verwendet, um jedes der Telefone zu modellieren, aus denen der Satz besteht. Betrachten Sie als Beispiel:
Satz: HI. Phonetische Beschreibung: hh aa ey
Wenn Sie die MFCC-Koeffizienten in HTK eingeben, werden die MFCC-Koeffizienten eines Teils des Satzes mit hh, eines anderen mit aa usw. verknüpft. Wenn dies mehrmals wiederholt wird, beginnen sich die Modelle für die Telefone zu bilden.
HTK verwendet das Tool
HCopy
, um einen Eingabesatz in seine Feature-Vektor-Darstellung zu konvertieren. MFCCs haben auch viele "Geschmacksrichtungen" (E_D_A- oder E_D_A_Z-Darstellungen). Es wäre eine gute Idee, die DokumentationHCopy
im htkbook nachzulesen.Die MFCC-Koeffizienten werden
.mfc
von HTK in eine Datei mit der Erweiterung geschrieben . Es ist nicht möglich, diese Datei mit einem der Texteditoren zu lesen, da (glaube ich) die Koeffizienten binär geschrieben sind. Sie können jedoch versuchen, die Dateien mit zu lesenC
.HTH.
quelle
edit
Button auf der Antwort kostenlos zu verwenden oder uns noch besser eine eigene Antwort zu geben. Und ja, wenn die Frage selbst ungenau ist, fehlt auch der Antwort die Genauigkeit. Das wurde im Kommentarbereich selbst besprochen.Jede Welle kann durch Hinzufügen vieler anderer Wellen zerlegt werden. Mit einer Fourier-Transformation können Sie eine Welle in ihre Frequenzkomponenten analysieren. Die Amplitude dieser Frequenzkomponenten kann dann als Vektor verwendet werden. Hier ist die Dokumentation zur Sphinx-Klasse, die dies tut, und hier ist eine gute visuelle Erklärung der Fourier-Transformation.
quelle