语音识别

CD-DNN-HMM:

https://www.jianshu.com/p/a0e01b682e8a

HMM所需要的p(o|s)=p(s|o)p(o)/p(s); p(o)相当于和s无关的常量,消掉;"p(s)是某状态的先验概率,在缓解标注不平衡问题中是非常重要的,特别是训练句中包含很长静音段时就更是如此";"比如训练语料包含大量的silience,从而导致silience的后验概率偏大)";  "HMM对于符号发射概率分布的要求是什么?是给定某状态的前提下,产生某输出符号的概率", "与HMM的要求相反,DNN描述的是,给定某输出符号的前提下,该输出符号是由某个状态产生的概率"

"由CD-DNN-HMM最终解码出的字词序列需要同时考虑到声学模型和语言模型的概率,通过权重系数λ去平衡二者之间的关系。语言模型的概率由其它训练方法根据训练语料得出,而声学模型的概率,是所有状态转移概率以及符号发射概率的乘积。"

"训练CD-DNN-HMM的第一步通常就是使用无监督的训练数据训练一个GMM-HMM系统,因为DNN训练标注是由GMM-HMM系统采用维特比算法产生得到的,而且标注的质量会影响DNN系统的性能。(我们知道,训练GMM-HMM采用EM算法,只需给定观察序列,而不需给定标注结果,而DNN需要相应的标注结果)"

上下文:"DNN的输入是一个长为2ω+1(典型的是9到13)帧大小的窗口特征,这样引入了相邻帧"

 

https://blog.csdn.net/xmdxcsj/article/details/52760080

声学信号使用HMM框架建模,每个状态的生成概率使用DNN替换原来的GMM进行估计,DNN每个单元的输出表示状态的后验概率。

decoding
实际的语音识别解码的时候使用的是似然概率: 
w^=argmaxwp(w|x)=argmaxwp(x|w)p(w)/p(x)=argmaxwp(x|w)p(w)
w^=argmaxwp(w|x)=argmaxwp(x|w)p(w)/p(x)=argmaxwp(x|w)p(w)

其中声学部分概率为p(x|w)p(x|w),使用的是似然概率。 
所以需要将DNN输出的后验概率转化为似然概率: 
p(xt|qt=s)=p(qt=s|xt)∗p(xt)/p(s)
p(xt|qt=s)=p(qt=s|xt)∗p(xt)/p(s)

p(xt)p(xt)表示观察值的概率,跟词序列无关可以忽略。 
p(s)p(s)表示状态的先验概率,可以使用训练语料的频率统计近似。实际使用时的先验概率有时无关紧要,但是可以缓解训练语料的标注偏移问题(比如训练语料包含大量的silience,从而导致silience的后验概率偏大)。 
最终的声学概率表示如下: 
p(x|w)=∑qp(x|q,w)p(q|w)≈maxπ(q0)∏t=1Taqt−1qt∏t=0Tp(qt|xt)/p(qt)
--------------------- 
作者:xmucas 
来源:CSDN 
原文:https://blog.csdn.net/xmdxcsj/article/details/52760080 
版权声明:本文为博主原创文章,转载请附上博文链接!

training

流程如下: 
- 训练CD-GMM-HMM 
- 使用CD-GMM-HMM对训练语料进行维特比解码,强制对齐特征和状态 。(force alignment: 训练语料是标注好词序列的,因此tri-phone序列等于是label好的,和解码不同,解码是没给出词序列!)
- dnn训练

dnn训练使用的准则是基于后验概率,而hmm训练的准则是基于似然概率。

 

tricks
1.隐层个数 
隐层越多(具有更强的函数拟合能力),效果越好,超过9层基本饱和。 
2.contextual window 
一般使用左右相邻的特征拼接起来作为dnn的输入,一般9-13帧。 
在HMM中,有观察独立性假设(任意时刻的观测至于该时刻的状态有关,与其他观测和状态无关): 
logp(otn,...,otn+1−1|sn)≈∑t=tntn+1−1[log(p(ot|sn)]
logp(otn,...,otn+1−1|sn)≈∑t=tntn+1−1[log(p(ot|sn)]

实际上相邻帧是存在一定关系的,并不是完全独立的: 
logp(otn,...,otn+1−1|sn)=∑t=tntn+1−1[log(p(ot|sn,otn,...,ot−1)]
logp(otn,...,otn+1−1|sn)=∑t=tntn+1−1[log(p(ot|sn,otn,...,ot−1)]

DNN的拼帧方法在一定程度上减弱了HMM的独立性假设,更符合实际关系。 
3.对senones建模 
使用cd-phone的状态比使用monophone的state建模效果更好。 
4.pretraining 
层数小于5的时候pretraining比较重要;当层数增加以后,pretraining收益变小,但是pretraining可以保证训练的鲁棒性,避免比较糟糕的参数初始化。 
5.better alignment 
更好的模型可以获得更准确的alignment,除了使用GMM-HMM的模型进行对齐,还可以使用DNN-HMM模型对训练数据进行对齐。
参考文献
《automatic speech recognition a deep learning approach》 chapter 6
 

 

LSTM-CTC

https://blog.csdn.net/left_think/article/details/76370453

LSTM经过softmax输出后,每个音素(包括blank) 都有一个概率值p。label序列开头结尾和两两之间加上blank, 构成序列z'。z'长度是原始label序列z的2倍+1

本时刻的blank, 可以转移至下时刻的 [blank/下一音素]; 本时刻的因素,可以转移至下时刻的 [本音素/blank/下一音素]

p们在z'上的连乘就是该条轨迹的概率,这些不同路径的概率全加到一起就是p(z|x)。(同一个标注序列z, 会有很多可行的结果序列z')

对于某个时刻t, 某个z'上的state u, p(z|x)=∑ α(t, u)*β(t, u)   u=[1至z']; α和β用前向和后向算法来做的(类似HMM, 只是没有转移概率a, 只有生成概率b)

Loss= - ln p(z|x);  Loss对每个p(t, k)求偏导,即可反向传播调整梯度;之所以最后公式里有B(z, k),是因为同一个序列z里面可能不同位置出现好几次同一个音素。

 

语音识别技术的前世今生之今生

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值