高级人工智能之语音识别

这章是将前面学的一些处理综合起来,设计出一个语音识别系统,判断当前语音的匹配度。

很多知识是和我前面总结的CMSC5707是重合的,因此笔者只关注其中不太相同的部分。

语音识别预处理

进行语音识别的过程主要如下:

  1. 首尾端点检测 endpoint detection
  2. 预加重 pre-emphasis
  3. 加窗分帧 frame blocking and windowing
  4. 特征提取 feature extraction,在课间中用的是Mel频率倒谱系数(MFCC)特征提取。
  5. 失真测量 distortion measure

关于第1步,首尾端点检测其实就是为了检测在一段语音(一般有多帧)中开始和结束的位置,方便我们分析。其需要统计帧的累积能量以及该帧中过零点的个数,过零点定义如下,直观理解下,开始位置的能量会增高,同时过零点数目变多;结束的位置的能量会降低,同时过零点数量也会降低。
在这里插入图片描述
找starting point, 假设一帧the time frame length =20 ms, and non-overlapping =10 ms,需要统计出连续帧(比如3个连续帧)的能量energy以及过零点数目zero crossing count,当这连续帧的能量和过零点都超过某个阈值,则可认为当前第一帧的第一个时间点,为starting point。
当3个连续帧,第一个帧id=32,找starting point的流程如下:

if (

E(i=32)> e_threshold  and ZC(i=32) > zc_threshold ) and

and (E(i=33)> e_threshold  and ZC(i=33) > zc_threshold) and

and (E(i=34)> e_threshold  and ZC(i=34) > zc_threshold)

) then the starting time (in seconds) of the 32th frame is the starting point

其中一帧的能量E(i)=0.5*sum(s(k)*s(k))

找ending point就是找连续低于阈值的时候。

关于第2,3步,在我之前CMSC5707的文章中有讲到。

关于第4步,MFCC特征提取相当于在之前倒谱分析的过程中加入了一层Mel滤波,之前倒谱分析参考我的上一篇文章CMSC5707-高级人工智能之音频信号特征提取,加入Mel滤波的MFCC特征提取的步骤如下:

  1. 先对语音进行预加重、分帧和加窗(预处理,还未进入特征提取);
  2. 对每一个分帧窗口,通过傅立叶变换FFT得到对应的频谱;将上面的频谱通过Mel滤波器组得到Mel频谱;
  3. 在Mel频谱上面进行倒谱分析(取对数,做逆变换,实际逆变换一般是通过DCT离散余弦变换来实现),获得Mel频率倒谱系数MFCC,这个MFCC就是这帧语音的特征。通过Matlab的htk-mfcc tool可以从.wav文件中提取出13个MFCC系数组成的向量,第一个系数是关于这一帧的能量energy term,与波谱分析信息无关,因此取其中的第2个到第13个系数作为音帧的特征系数。
    在这里插入图片描述
    在这里插入图片描述
    关于第5步,就可以用上面提取出来的关于每一个frame的特征向量,衡量两个信号的差异。主要就是两个特征向量(c1,c2...c13)(c1',c2'...c13')分量差距的累加和。
    请添加图片描述

语音识别配对

在经过上面的预处理后,就可以进入语音识别阶段speech recognization了。针对已有的标准的样本(reference sample/ template sample)与一个待识别的输入(unknown input),已经可以计算出它们不同帧之间组成的差异矩阵distortion matrix了,问题是如何进行匹配,因为其中最难处理的就是不同语音之间的时间对齐,也就是不同语音对应音帧的时间是不完全相同的。课件中采取了一种动态规划Dynamic Programming的方法,进行弹性匹配,如下图所示。

在Accumulated distortion score matrix中找到累加差异的最小值optimal score,然后从这里开始回溯找到最佳匹配路径optimal path.
请添加图片描述
找到累加差异的最小值optimal score(最佳路径的终点)应该在最顶端一行top-row或者最靠近右边的一列right-most-column,其找到的最佳路径起点也应该在最底部一行bottom-row或者最靠近左边的一列left-most-cloumn的最小值。

但是也应该尽量让最佳匹配路径在下图中的白色区域,也就是最佳路径的终点也应在白色区域中。如果匹配的位置在黑色区域中,就会让匹配得到的输入未知序列input sequence和参考模板reference之间的长度差异过大,即使optimal score很小,这也不算是种好匹配。
请添加图片描述
习题1:
请添加图片描述
请添加图片描述
在有n个testing sample测试样本set B和有n个reference sample模板样本 set A的时候,我们可以通过绘制混淆矩阵,如下图,来表示每个测试样本和模板样本之间的差异,这也是最后在作业中展现结果的一种方式。混淆矩阵大小为n*n,每个格子填的是对应reference/input pair计算出来的累加差异的最小值optimal score.

由于测试样本和模板样本的特征表示都不一样,因此每个格子的值应该都不一样,但可以想到的是,对应同一类的声音,它们之间的差异值应该是最小的。
请添加图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网民工蒋大钊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值