I'm reading through Sphinx code to better understand how everything is implemented.
What is the difference between a Unit, a Token, and a Senome as defined by the repsective Java classes?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Unit is a abstract unit of speech like phone or context-dependent phone. In sphinx4 units usually mean phone from the dictionary. Units can be context-dependent.
Token keeps the state of the search in decoding. It contains references to a previous history and the score of the path going through this token. Search for the best path in the decoding graph is implemented with a token passing.
Senone is a probability distribution used to score HMM state in decoding. In Sphinx4 senones are enumerated set of possible distributions. Each unit is expanded to 3 states and each HMM state is scored with a senone.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I'm reading through Sphinx code to better understand how everything is implemented.
What is the difference between a Unit, a Token, and a Senome as defined by the repsective Java classes?
Unit is a abstract unit of speech like phone or context-dependent phone. In sphinx4 units usually mean phone from the dictionary. Units can be context-dependent.
Token keeps the state of the search in decoding. It contains references to a previous history and the score of the path going through this token. Search for the best path in the decoding graph is implemented with a token passing.
Senone is a probability distribution used to score HMM state in decoding. In Sphinx4 senones are enumerated set of possible distributions. Each unit is expanded to 3 states and each HMM state is scored with a senone.