Seite 1 von 1

Spracherkennung und HMM

Verfasst: 2. Aug 2009 14:01
von m_stoica
Hallo,

ich bin mir nicht sicher ob ich richtig verstanden habe, wie man Hidden Markov Modelle zur Spracherkennung verwendet. So wie ich es mir vorstelle, ist es denke ich ziemlich rechenintensiv:
-Man hat für jedes Wort ein HMM (oder für mehrere Wörter? Das ist mir nicht ganz klar.)
-Mann prüft mit dem Forward-Algorithmus welches HMM zur Eingabesequenz am besten passt.
-Danach prüft man mit Viterbi welches Wortsequenz am Besten zu der Eingabesequenz passt.

Danke im Voraus,
Michael

Re: Spracherkennung und HMM

Verfasst: 3. Aug 2009 16:28
von itportal2
Also, so wie ich es verstehe ...
m_stoica hat geschrieben:-Man hat für jedes Wort ein HMM (oder für mehrere Wörter? Das ist mir nicht ganz klar.)
Ja. Jedes Wort hat nur ein Modell, das ist ein Vorteil bzl. DTW.
m_stoica hat geschrieben:-Mann prüft mit dem Forward-Algorithmus welches HMM zur Eingabesequenz am besten passt.
Ja, und somit wird bestimmt, welches Wort am wahrscheinlichsten durch das akustische Signal ausgesprochen wurde.
m_stoica hat geschrieben:-Danach prüft man mit Viterbi welches Wortsequenz am Besten zu der Eingabesequenz passt.
Das verstehe ich anders und zwar - durch Viterbi kannst du sehen wie das akustische Signal von dem Referenzmodell abgeleitet wurde. Du hast ja schon das Modell bestimmt und jetzt möchtest du sehen wie das Wort bzl. des Referenzmodells ausgesprochen wurde - vielleicht haben einge Phoneme im akustischen Signal länger als beim Referenzmodell gedauert. Viterbi ergibt die genaue Übergänge im HMM, die das akustische Signal am wahrscheinlichsten wiederspiegeln. Das wäre Nützlich, wenn man zum Beispiel die Spracherkennung an den Sprecher anpassen möchte, aber ich vermute, es wird für die Spracherkennung selbst nicht benutzt (da das Forw. Algorithmus dafür reicht).

Korrigiert mich, wenn ich falsch liege.

Re: Spracherkennung und HMM

Verfasst: 3. Aug 2009 19:50
von m_stoica
Das müsste so klappen wie du es beschrieben hast, aber eine Alternative, die denke ich auch funkionieren müsste, wäre, dass man nur ein großes HMM hat, und dann mit Viterbi entscheidet welches Wort am besten passt (Forward würde man da nicht brauchen).
Wäre interessant zu wissen, welches der beiden Alternativen stimmt.

Re: Spracherkennung und HMM

Verfasst: 3. Aug 2009 23:17
von Steven
Das Problem dürfte darin liegen, ein solches "über-HMM" zu konstruieren. Meines Erachtens arbeitet man gerade mit mehreren HMMs, um die Unterschiede zwischen einzelnen Sprechern, Umgebungen usw. ausgleichen zu können - man trainiert für jedes Wort einfach verschiedene HMMs auf verschiedene Erkennungssituationen bzw. passt sie daran an und braucht dann bei der Spracherkennung nur noch das korrekte HMM zu finden. Du hast also quasi ein HMM für Wort X mit bayerischem Dialekt, eines für Wort X mit besonders hoher Stimme usw. Damit erkennst du Wort X, egal wie es gesprochen wird -> eines deiner HMMs wird schon passen.

Re: Spracherkennung und HMM

Verfasst: 4. Aug 2009 09:29
von m_stoica
Meinst du also, dass man sogar pro Wort mehr als ein HMM nimmt?

Re: Spracherkennung und HMM

Verfasst: 4. Aug 2009 12:28
von Steven
Zumindest hast du die Möglichkeit und bist nicht auf ein konkretes Sprachmodell festgelegt. Das hängt natürlich auch davon ab, was du machen willst: Bei einer Diktiersoftware für einen einzelnen Benutzer, bei der du dir eventuell auch noch eine längere persönliche Trainingsphase mit dem Benutzer leisten kannst, macht das wenig Sinn, bei einem öffentlichen Sprachcomputer an einer Hotline schon deutlich mehr.