3-GMM-HMMs语音识别系统-解码篇
来源:互联网 发布:血源诅咒帅哥捏脸数据 编辑:程序博客网 时间:2024/05/22 18:55
本文主要描述基于GMM-HMMs传统语音识别的解码过程。
Outline:
- Viterbi decoding
- Cross-word decoding
- Beam search
1.Viterbi decoding
语音识别就是一个解码/搜索的过程。即由
同时单词又是由状态序列组成的,所以我们需要对所有可能的状态序列
其中
搜索或解码在一个state-time Trellis(状态-时间篱笆网络),利用已提供的声学、发音和语言模型提供的公式,对可能的识别单词序列进行打分,最终确定一个分数最大的作为识别结果输出。这里搜索算法可以分两种:time-synchronously和asynchronously;同时根据网络拓扑的方式又可分为:statically和dynamically。下面主要讨论viterbi decoding(前向动态规划)和beam search。
由公式(2)可利用forward-algorithm进行计算。可是这样做并不很高效。所以我们做Viterbi approximation:
也就是使用最有可能的状态序列来代替所有状态序列之和。单词内部forward或self-loop的转移概率可以由训练好的A矩阵得到,观测概率可由GMM获得。具体计算如下:
V0(i)=1 ,V0(j)=0(ifj≠i) ,bt0(j)=0 Vt(j)=maxi=1NVt−1(i)aijbj(xt) ,btj(j)=argmaxi=1NVt−1(i)aijbj(xt) P∗=VT(sE)=maxi=1NVT(i)aiE ,s∗T=bT(qE)=argmaxi=1NVT(i)aiE
找到最有可能的状态路径后,我们就根据事先保存下来的Backpointer Array向后追踪,获得这条路径的单词序列。
2.Cross-word decoding
当从一个单词跳转到另一个单词时,这部分的转移概率就不是由A矩阵提供的,需通过语言模型计算得到。
3.Beam search
Viterbi decoding执行的是一个精确搜索(Exact Search),然而精确搜索对于LVCSR是不现实的,不可行的,因为大跨度的语言模型极大地增加了搜索空间。所以可以通过在每一步剪枝(pruning)掉low-probability path,也就是Beam Search(束搜索)。语言模型和声学模型都可以被利用来pruning,同时在实际操作中要权衡search errors和decoding speed。因为pruning可能把正确的结果修剪掉,导致错误率上升,虽然解码速度提升了。
最后,语音解码还有很多其他办法,包括现在流行的利用WFST(Weighted Finite State Transducers, 加权有限状态转换器),来进行statically decoding的。
- 3-GMM-HMMs语音识别系统-解码篇
- 1-GMM-HMMs语音识别系统-框架篇
- 2-GMM-HMMs语音识别系统-训练篇
- 2-GMM-HMMs语音识别系统-训练篇
- 语音识别系统原理介绍----gmm-hmm
- 语音识别系统原理介绍----gmm-hmm
- 语音识别系统原理介绍----gmm-hmm
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别模型 原理篇
- GMM-HMM语音识别
- GMM-HMM语音识别
- 语音识别-解码过程
- GMM-HMM语音识别简单理解
- MySql面试前必须练习到熟练的
- P1529 回家 Bessie Come Home(字符串+flored)+特判
- springmvc 和 cxf整合
- linux内核系列(2)——linux内核链表
- sass编译过程中出现编码错误的问题
- 3-GMM-HMMs语音识别系统-解码篇
- hdu 6016
- 基于TensorFlow的MNIST(手写图像识别)的一点经验
- 计算机图形学01——坐标系
- 机器学习 数据预处理之独热编码(One-Hot Encoding)
- 解决端口号占用
- Recyclerview条目可拖拽可侧滑删除实战详解
- 自定义strlen()
- 1023.组个最小数