文章目录

  • 语音识别预处理
  • 语音识别配对

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

很多知识是和我前面总结的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 ) andand (E(i=33)> e_threshold  and ZC(i=33) > zc_threshold) andand (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.

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

高级人工智能之语音识别相关推荐

  1. 人工智能不是计算机领域能学么,华南理工大学《高级人工智能》考试真题1

    华南理工大学<高级人工智能>复习资料 第1部分绪论 1-1.什么是人工智能?试从学科和能力两方面加以说明. 人工智能是用计算机来表示和执行人类的智能活动, 人工智能(学科):是计算机科学中 ...

  2. AI前沿 | Gartner曲线5大趋势:传感和移动、超能人类、自动机器人、高级人工智能…...

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :新智元 [人工智能资源(书 ...

  3. 人工智能之语音识别技术【科普】

    原标题:人工智能之语音识别技术[科普] 语言是人与人之间最重要的交流方式.能与机器进行自然的人机交流,是人类一直期待的事情.随着人工智能快速发展.语音识别技术作为人机交流接口的关键技术.发展迅速.在A ...

  4. 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(1-5章)

    关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...

  5. 高级人工智能(国科大2021-2022秋季学期课程)-基础概念及算法

    高级人工智能-沈华伟-国科大2021-2022秋季学期课程 连接主义(神经网络.深度学习) 搜索问题 启发式算法 贪婪最佳优先搜索 A*搜索 A*树搜索 A*图搜索 传教士和野人问题 归结原理中的应用 ...

  6. 【高级人工智能】国科大《高级人工智能》联结主义 笔记 + 考试回忆

    国科大<高级人工智能>吴老师部分--联结主义笔记 吴老师上课dddd,上课东西太多太杂,听不太懂比较煎熬,但是课后花点时间理解理解,还是挺有帮助的 考试按照重点复习即可,虽然答疑时提到的传 ...

  7. 国科大高级人工智能2020-2021年期末试题回顾

    国科大高级人工智能2020-2021年期末试题回顾 题型 选择题 简答题 应用题 附件 题型 题型没有变,仍然为选择题(20道,每道1分),简答题(3道,每道10分),综合应用题(3道,15,15,2 ...

  8. 高级人工智能 读书笔记

    高级人工智能 史忠植 3ed 教学园地 有该书 ppt  值得阅读,写得不错 参考书: Artificial Intelligence: Foundations of Computational Ag ...

  9. 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(6-9章)

    关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...

最新文章

  1. 春天来了,苹果M2芯片3月面世!全线换新,单核性能远超M1 Max
  2. 关于python的字符串大小转换函数:capitalize() title() upper() swapcase()
  3. R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient
  4. R将dataframe数据保存为csv文件
  5. Android多媒体之SoundPool
  6. NUXT: 视图和模板
  7. vs android 打电话,iOS vs. Android:二者真的是在竞争吗?
  8. 使用Exceptionless记录日志
  9. vb.net2019-下载文件
  10. 【ubuntu】ubuntu14.04上安装搜狗输入法
  11. 媒体查询响应式布局的几个尺寸_媒体查询实现响应式布局
  12. 1进程 ppid_杀死僵尸进程,你需要这些神奇的Linux命令行
  13. 如何创建一个特定版本的python虚拟环境
  14. DevExpress v17.2新版亮点—Analytics Dashboard篇(一)
  15. 解析java程序设计第二版答案,解析Java程序设计答案
  16. php数组的奇数_PHP - 查找数组元素是奇数还是偶数
  17. java.lang.NoClassDefFoundError: weblogic/rmi/extensions/DisconnectListener
  18. 手把手教你上架HarmonyOS(鸿蒙)应用
  19. python自然语言处理学习笔记一
  20. 数学系小仙女不写代码求“破圈”,一年把华为这个社区做火了

热门文章

  1. Android 8.0 recovery 流程分析
  2. 追梦之路-For the dream
  3. RationalDMIS 2020 叶片检测 -快速定义叶片截面线方法
  4. Altium Designer18之修改画图光标大小
  5. 这些手机隐藏功能你知道吗?
  6. 基于SpringBoot的健身房管理系统
  7. java crach 日志解析
  8. C++的异常(转载 )
  9. 巴特勒船长-百年一遇的男人
  10. 如何使用Android模拟器创建Android虚拟设备