开始接触ASR,先验知识太少。
计划看完这个live,每个章节课后做总结,整理个人理解思路和技术细节。
语音识别技术的前世今生www.zhihu.com1. ASR
2. 前世 - 孤立词识别
技术框架:
- HMM:80年代开始到本世纪初主流模型
- GMM:用于配合HMM模型
2.1 孤立词识别
孤立词识别是指语音中只包含一个词语的识别。
2.1.1 模板比较法
模板比较法的主要工作是:
- 特征提取
- 得分/距离计算
- 特征提取
- 精细结构:反映音高,峰之间的距离,基频,可以一定程度忽略。
- 包络:反映音色,频谱的整体形状,共振峰,语音识别的主要信息。
- 帧处理:每一帧转化为一个序列,帧之间有重叠,为了防止漏掉帧之间的转换信息。一般一帧取20-50ms,帧间隔10ms,1s的音频一般可以输出100帧。
- 三角滤波:忽略精细结构,三角滤波的效果是计算每一个三角形里面的总幅度/能量。人耳对于低频比较敏感,所以三角滤波器低频段比较密集。输出之后就是Filterbank output(横轴是第n个三角形,这个转换40个)。
- MFCC:三角滤波输出后,log + 离散余弦变换
- DTW算法:Dynamic Time Warping,处理的是计算两个不同长度的序列的相似度的问题。经过特征提取后,一段语音变成时频序列长度为m,模板的长度为n,根据时间信息进行匹配。
- DTW(Dynamic Time Warping)动态时间规整 - 知乎
- How DTW (Dynamic Time Warping) algorithm works_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
2.2 GMM
- 问题:一个词的读法有很多,所以需要多录几个样本,因此每个词都可能有多个模板。
- 解决:
- 最简单的做法就是直接跟同一个词汇的多个模板逐个匹配,最终加权平均后得出一个分数
- 将多个模板压缩成一个模型,多个模板标准化后形成GMM模型
2.2.1 从模板到GMM
- 代表模板:选取代表性模板,定义当前词的状态(状态类比音素,图中将中间的模板作为代表模板,总共有5个状态)
- 组内对齐:将同一组的其他模板对齐至代表模板(DTW)。
- 状态分类:组内模板对齐后,不同状态下具有多个向量,把同一状态类的一个/多个向量划分为一组。
- 模型确定:分组完成后,每一组都用GMM拟合其分布。
- 向量距离:任意一个特征向量,对每一组都产生一个概率,概率作为距离的代替品用于评判相似度。
2.2.2 GMM基础识别
未知语音的识别流程:
- 用DTW算法与模型对齐
- 对齐后,计算待识别语音中每个向量与对齐状态的概率密度
- 将每一帧的概率密度相乘,得到该音频在此模型的条件下的概率(帧之间独立性假设)
- 将待识别语音与多个不同模型(例如多个唤醒词)计算得分后,取最大的得分的结果作为最终输出结果
2.3 HMM
2.3.1 HMM和GMM的联合方式
给定模型后的语音概率计算:
- 条件:
语音和对齐关系
- 步骤:
- 计算出每帧的GMM的概率
- 确定帧状态之间的转移概率
- 累乘之后确定最终概率
2.3.2 模型参数
确定一个HMM模型,需要有三个条件:
- 观测概率:当前状态下,产生出各个观测值的概率分布,所有观测状态的概率总和为1。
- 状态转移概率:HMM的隐状态在转移过程中的概率。
- 初始概率:确定HMM模型的第一个状态的概率。
在语音识别的场景下,HMM模型加入了限定条件:
- 模型是单向的,状态只能从左到右(音素状态)转变,观测序列(音频第一帧的特征)的首个状态必然是状态1,因此不需要初始概率(或者说初始概率向量是[1, 0, 0, ..., 0])
- 观测概率则是GMM的概率。可以这么理解,每个组的GMM模型,其产生的观测状态都是无限的(每一帧的音频特征中每一维都是实数),所以隐状态A(音素)下产生观测(帧向量)的概率,就是该帧属于GMM的概率密度。
2.3.3 HMM在识别中的三大问题
众所周知,HMM的三大经典问题:
- 概率计算:模型参数已知,观测序列已知,求在该模型下,观测序列出现的概率 ——
- 序列预测:模型参数已知,观测序列已知,求在该模型下,最有可能产生观测序列的隐状态序列 ——
- 模型训练:给定一些观测序列和状态序列,求模型的参数。
2.4 识别方程
详解:
-
:当前声学模型(
GMM-HMM
)中,给定输入语音X
,输出是词W
的概率。 -
是文本单词的先验,是给定词
W
输出音频是X
的概率,可以由模型生成(HMM
是生成式模型)。 -
给出最有可能的词
W*
。