- This topic has 1 reply, 2 voices, and was last updated 3 years, 8 months ago by .
Viewing 1 reply thread
Viewing 1 reply thread
- You must be logged in to reply to this topic.
› Forums › Automatic speech recognition › Hidden Markov Models (HMMs) › token passing
What’s the reason for HTK to use token passing for recognition instead of working on the lattice?
Token Passing uses a much smaller data structure: the HMM (= a finite state model) itself, which is one “column” (= all model states at a particular time) of the lattice.
So, Token Passing is equivalent to working with the lattice whilst only ever needing one column of it in memory at any given time.
Token Passing is a time-synchronous algorithm – all paths (= tokens) are extended forwards in time at once.
[Everything below this point is beyond the scope of Speech Processing]
There are non-time-synchronous algorithms. Working on the full lattice would allow paths to be extended over states, or over time, in many different ways. When combined with beam pruning, a clever ordering of the search can lead to doing fewer computations overall. This becomes important for large vocabulary connected speech recognition (LVCSR).
But we then also have the problem that the lattice is too big to construct in memory, so we create only the parts of it that we are going to search. Historical footnote: my Masters dissertation was an implementation of a stack decoder performing A* search; this avoids constructing the lattice in memory, whilst searching it in “best first” order.
In HTK, HVite
does Token Passing, which becomes inefficient for LVCSR. For LVCSR, HDecode
is much more sophisticated and efficient.
Some forums are only available if you are logged in. Searching will only return results from those forums if you log in.
Copyright © 2024 · Balance Child Theme on Genesis Framework · WordPress · Log in