MMI在ASR中的应用
介绍
- ASR中DNN声学模型训练通常使用CE准则作为损失函数进行训练,CE准则是最小化帧错误率,但在基于帧识别的ASR中我们一般直接使用WER(自错误率)来评价语音识别准确率,更关心的是序列的准确性,会导致损失函数和训练目标不一致。
- DT在识别序列上定义误差,更接近语音识别的最终目标。
- 常用DT目标函数有MMI,BMMI,MPE,MBR。
使用CE准则时,又可能帧的正确率提高了但是最终解码WER没变化甚至更高了,所以将训练准则损失函数直接和最后的评估函数(WER)直接关联。
ML与MMI的区别
在语音GMM-HMM框架下,使用ML准则进行训练,目标函数是:
FML=∑u=1UlogP(Xu∣Wu;θ){F_{ML}} = \sum\limits_{u = 1}^U {\log P({X_u}|{W_u};\theta )} FML=u=1∑UlogP(Xu∣Wu;θ)
其中WuW_uWu是词标准序列,XuX_uXu是语音信号,θ\thetaθ是声学模型参数。
MMI准则目标函数为:
FMMI=∑u=1UlogP(Wu∣xu;θ)=∑u=1UlogP(Xu∣Wu;θ)P(Wu)∑w′P(Xu∣w′;θ)P(w′){F_{MMI}} = \sum\limits_{u = 1}^U {\log P({W_u}|{x_u};\theta )} = \sum\limits_{u = 1}^U {\log \frac{{P({X_u}|{W_u};\theta )P({W_u})}}{{\sum\nolimits_{w'} {P({X_u}{\rm{|}}w';\theta )P(w')} }}} FMMI=u=1∑UlogP(Wu∣xu;θ)=u=1∑Ulog∑w′P(Xu∣w′;θ)P(w′)P(Xu∣Wu;θ)P(Wu)
P(Wu)P(W_u)P(Wu)是固定的语言模型,
分子上的P(Xu∣Wu;θ)P(X_u|W_u;\theta)P(Xu∣Wu;θ),正式ML的目标函数;而分母则是所有文本(包括训练文本和它的所有竞争者)产生训练语音的概率(按语言模型加权)和。
两者之间的区别在于条件概率不同。ML中只要训练文本产生训练语音的概率大就行,而MMI要求的是训练语音对应训练文本的概率大,即训练文本产生语音信号的概率和其他文本产生语音信号的概率之差大。
DNN与MMI
- MMI损失函数
DNN神经网络中,DT准则可以替换CE准则作为损失函数。MMI准则为:
JMMI(θ;S)=∑m=1MJMMI(θ;om,wm)=∑m=1MlogP(wm∣om;θ)=∑m=1Mlogp(om∣sm;θ)κP(wm)∑wp(om∣sw;θ)κP(w){J_{MMI}}(\theta ;S) = \sum\limits_{m = 1}^M {{J_{MMI}}(} \theta ;{o^m},{w^m}) = \sum\limits_{m = 1}^M {\log P({w^m}|{o^m};\theta ) = } \sum\limits_{m = 1}^M {\log \frac{{p{{({o^m}|{s^m};\theta )}^\kappa }P({w^m})}}{{\sum\nolimits_w {p{{({o^m}|{s^w};\theta )}^\kappa }P(w)} }}} JMMI(θ;S)=m=1∑MJMMI(θ;om,wm)=m=1∑MlogP(wm∣om;θ)=m=1∑Mlog∑wp(om∣sw;θ)κP(w)p(om∣sm;θ)κP(wm)
其中,omo^mom和wmw^mwm分别是第m个音频样本的观察序列和正确的单词序列标注。θ\thetaθ是声学模型参数,sms^msm是wmw^mwm对应的状态序列,κ\kappaκ是声学缩放系数。
在MMI准则公式中,分子Numerator表示的是正确单词序列的可能性,分母Denominator是所有可能单词序列的可能性之和。理论上说,分母应该取遍所有可能的单词序列,但在实际中,这个求和运算是限制在解码得到的词图lattice上求和的,以减少运算量。
MMI准则是最大化单词序列分布与观察序列分布之间的互信息,减小句子错误率。最大化分子,最小化分母。
DT训练之前需要使用ML准则或CE准则生成alignments对齐和lattices词图,DT的初始化模型使用的是ML或CE准则训练出的最好模型。
DNN训练算法一般是用来最小化一个目标方程,所以需要对MMI准则取反进行最小化,而不是最大化互信息。 - MMI求导
∂JMMI(θ;S)∂θ=∑m=1M∑t=1T∂JMMI(θ;S)∂zmt∂zmt∂θ\frac{{\partial {J_{MMI}}(\theta ;S)}}{{\partial \theta }} = \sum\limits_{m = 1}^M {\sum\limits_{t = 1}^T {\frac{{\partial {J_{MMI}}(\theta ;S)}}{{\partial {z_{mt}}}}} } \frac{{\partial {z_{mt}}}}{{\partial \theta }}∂θ∂JMMI(θ;S)=m=1∑Mt=1∑T∂zmt∂JMMI(θ;S)∂θ∂zmt
其中zmtz_{mt}zmt表示softmax层的输入,∂zmt∂θ\frac{{\partial {z_{mt}}}}{{\partial \theta }}∂θ∂zmt的计算方式和CE准则是一样的没有区别,用梯度反向传播算法,我们称之为外导数。真正与DT相关的是∂JMMI(θ;S)∂zmt{\frac{{\partial {J_{MMI}}(\theta ;S)}}{{\partial {z_{mt}}}}}∂zmt∂JMMI(θ;S),我们称之为内导数。
∂JMMI(θ;S)∂zmt(i)=κ(γmtnum(i)−γmtden(i))\frac{{\partial {J_{MMI}}(\theta ;S)}}{{\partial {z_{mt}}(i)}} = \kappa (\gamma _{mt}^{num}(i) - \gamma _{mt}^{den}(i))∂zmt(i)∂JMMI(θ;S)=κ(γmtnum(i)−γmtden(i))
其中zmt(i)z_{mt}(i)zmt(i)是zmtz_{mt}zmt的第i个元素,最终求导结果如上过程省略。γmtnum(i)\gamma _{mt}^{num}(i)γmtnum(i)和γmtden(i)\gamma _{mt}^{den}(i)γmtden(i)分别表示t时刻分子lattice和分母lattice在状态r上的后验概率,可以通过在lattice上使用前向-后向算法得到。
γt(r)=P(st=r∣(θ;S))=αt(r)βt(r)∑rNαt(r){\gamma _t}(r) = P({s_t} = r|(\theta ;S)) = \frac{{{\alpha _t}(r){\beta _t}(r)}}{{\sum\nolimits_r^N {{\alpha _t}(r)} }}γt(r)=P(st=r∣(θ;S))=∑rNαt(r)αt(r)βt(r)
其中αt(r)\alpha_t(r)αt(r)和βt(r)\beta_t(r)βt(r)分别是前向后向算法中计算出来的前向概率因子和后向概率因子,∑rNαt(r)\sum\nolimits_r^N {{\alpha _t}(r)}∑rNαt(r)是前向或后向算法中从起始节点到结束节点的概率和。
前向后向算法都是在lattice上进行的,下图是一个word级别的lattice:
kaldi中DT训练的流程图:
MMI在ASR中的应用相关推荐
- 区分性训练和mmi(一)
目录 写在前面 信息论中的一些概念 最大似然估计MLE mle缺点 区分性训练DT和最大互信息MMI 区分性训练 MMI 区分性训练缺点 MMI训练过程 Lattice 对于它的训练: MMI的问题: ...
- 自动语音识别(ASR)自监督方法研究综述
©作者 | 蔡杰 单位 | 北京大学硕士生 研究方向 |QA 语音 AI 作为人工智能的应用技术之一,近年来正逐渐从实验室研究,越来越多地走向实际应用和价值创造的新阶段.其中的 ASR(Automat ...
- Azure站点恢复之----VMM 站点到ASR
在前一篇文章中写到了如何将Hyper-v站点(无SCVMM)复制到ASR(Azure Site Recovery),但是在很多的私有云环境中,VMM是不可缺少的管理工具,可以比Hyper-v管理器更全 ...
- 语音识别asr是什么
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 腾讯云语音识别(asr) 为开发者提供语音转文字服务的最佳体验. 语音识 ...
- 语音识别(ASR)论文优选:Adapting GPT, GPT-2 and BERT Language Models for Speech Recognition
声明:平时看些文章做些笔记分享出来,文章中难免存在错误的地方,还望大家海涵.平时搜集一些资料,方便查阅学习:http://yqli.tech/page/speech.html.如转载,请标明出处.欢迎 ...
- 语音识别中的WFST和语言模型
导读 在语音识别系统中,有限加权状态转换机(Weighted Finite State Transducers, WFST)扮演着重要角色.本文主要介绍发音词典.语言模型和WFST的原理,以及在实践过 ...
- 依图在实时音视频中语音处理的挑战丨RTC Dev Meetup
前言 「语音处理」是实时互动领域中非常重要的一个场景,在声网发起的「RTC Dev Meetup丨语音处理在实时互动领域的技术实践和应用」 活动中,来自百度.寰宇科技和依图的技术专家,围绕该话题进行了 ...
- python 声音基频f0_ASR中常用的语音特征之FBank和MFCC(原理 + Python实现)
ASR中常用的语音特征之FBank和MFCC(原理 + Python实现) 一步一步讲解和实现ASR中常用的语音特征--FBank和MFCC的提取,包括算法原理.代码和可视化等. 文章目录 语音信号的 ...
- 语音算法笔记(3)——从序列建模的角度理解ASR
声明:本专栏文章为深蓝学院<语音算法:前沿与应用>课程个人学习笔记,更多学习资源请咨询深蓝学院相关课程. ASR中的序列模型 seq to seq任务的输入输出应当是不同长度,否则可以把每 ...
最新文章
- MySQL - 索引优化案例实操
- X11: Linux跨网络运行XWindow程序
- 三国志战略版服务器维护延时,三国志战略版服务器爆满是多少人 爆满进不去怎么办...
- Serverless Devs 的官网是如何通过 Serverless Devs 部署的?
- 数据库时区那些事儿 - MySQL的时区处理
- Qt工作笔记-三种方式解决Qt5中文编码问题
- 服务器关于数据流转方式
- word不能插入压缩包等文件的解决办法
- Ubuntu学习日记--Lesson9:显卡工作状态查看命令
- 国产芯片WiFi物联网智能插座—电源功能设计
- THREEJS相关3d-force-graph 3d力导图使用
- 春节高并发抢红包的技术升华综合实战(Node.js)
- vcm驱动芯片原理_每周一品 · 音圈电机(VCM)中的磁性材料
- 在 UltraEdit /UEStudio 中配置自动更正关键字
- 58页大数据资源平台建设可行性研究方案(附下载)
- 基于单片机的传送带计数系统
- 当你开始建站的时候,首先你得先弄懂整个网站的建站流程
- 笔记本电脑录屏的方法
- 新安装的微信PC版,退出后聊天记录没了,文件接收失败、错误、打不开,怎么办?
- 谁倚面包树,听雨如注?
热门文章
- 4款实用国产办公软件,工作效率提升必备,还不赶紧收藏
- 虚拟现实大作业——VR游乐园(无设备开发)之4.游乐项目场景
- 游戏中集成unity admob视频广告中文教程
- 景区舆论舆情管理方案
- mysql添加mul的语句_使用Key = MUL创建MySQL列?
- bootstrap获取下拉框数据_bootstrap动态调用select下拉框的实现方法
- Spring IOC 依赖来源-8
- Spelling Checker拼写检查错误提示(以及拼音提示功能)
- banner 获取当前指示物_Android轮播图图片的本地保存及读取
- 计算机桌面屏幕设置,双显示器设置:如何设置一台电脑两个显示器