解码本质上是使用声学模型 和语言模型 在搜索空间里寻找最可能的词序列 。
假设句子 由 个词组成,。那么
为所有的合法词序列
表示词序列 可以对应的所有合法状态序列。
表示词 沿着状态序列 生成语音片段 的概率。
为词 对应的观察的第一帧下标, 为词 对应的观察的最后一帧下标,即 是 对应 观察序列。
代表词序列 所有可能的结束帧的序列(间接表示了一种对齐方式),即 是一个时间序列 ,表示了词序列 每个词最后一帧的时间。
在这里我们将整个模型转换为可以用 Viterbi 算法求解的 HMM 最佳状态序列的问题。这个 HMM 大约有 个状态。 为每个词 HMM 平均状态数,|Q| 为 FSQ 状态数(有限状态文法,表示语言模型)。可以认为 FSG 里每个状态就是一个词,状态之间的边表示可以从一个词跳转到另外一个词,把每个状态展开成这个词对应的 HMM,就得到了大的 HMM。一个例子如下
Gitalk 加载中 ...