【语音识别】基于matlab GUI动态时间规整算法(RTW)语音识别系统【含Matlab源码 341期】
⛄一、动态时间规整算法(RTW)语音识别
软件算法主要分为语音信号滤波去噪、预加重、分帧、端点检测、特征参数提取、模式匹配。算法的关键点和难点是特征参数提取和模式匹配。孤立词的语音识别应用程序也是基于MATLAB的GUI进行开发。
1 语音预处理
语音信号是一种典型的非平稳随机信号, 容易受到呼吸气流、环境背景噪声、电流噪声的影响。所以, 在对语音信号进行下一步分析之前, 需要对硬件电路采集回来的语音信号进行预滤波、预加重、分帧加窗、端点检测等。预处理后的语音信号噪声干扰较小, 信号较纯净, 特征参数较稳定, 适合后续的模式识别和匹配分类, 图2是语言信号预处理过程图。
2 语音特征信息提取
经过端点检测后的语音信息再进行特征参数提取和模式匹配研究, 该算法基于线性预测系数LPC模型为基础开展研究, 由于LPC模型对于动态性较强的辅音不严格成立, 语音信号的特征参数鲁棒性不是很好。现阶段在语音识别技术中得到广泛应用的梅尔频率倒谱系数是另一种更加有效的语音特征参数。梅尔 (Mel) 频率倒谱系数是基于人耳听觉特性提出的, 将人耳听觉感知特性与人类语音产生结合起来得到的一种特征参数。由于对输入信号不做假设和约束, 与输入信号特性无关, 因此, 具有较高的鲁棒性。
当声音频率低于1000Hz的时候, 人耳对声音的感知近似满足线性关系;当声音频率高于1000Hz的时候, 人耳对声音的感知不再近似满足线性关系, 而是在对数频率坐标上近似满足线性关系。
MEL频率倒谱系数的计算过程见图3。
通常MFCC系数的第一维C (0) 的能量很大, 在语音识别系统中, 将C (0) 称为能量系数, 不作为倒谱系数。
利用上述方法提取的MFCC参数只能表征语音信号的静态特征, 然而人耳对语音信号的动态特征更为敏感。为了更准确地反映语音动态特征需要进行二次特征提取。二次特征提取是指对原始特征向量进行二次分析, 通常是加权、差分、筛选。在语音识别中, 一阶和二阶差分可以表示特征向量变化速度, 体现了语音的言语和韵律变化, 较好地描述了语音信号的动态特性。因此, 采用一阶和二阶差分倒谱参数来描述语音信号。
3 动态时间规整识别算法
前面的端点检测算法确定了语音信号的起点和终点。假设参考模板为{R1, R2, (43) Rm (43) , RM}, 共M帧;测试语音为{T1, T2, (43) Tn (43) , TN}, 共N帧。由于M≠N, 动态时间规整通过寻找一个时间规整函数m=w (n) , 使得测试语音的时间轴n通过非线性变换函数w映射到参考模板的时间轴m, 并使得该函数满足一下关系式:
在这里, d[Tn, Rw (n) ]是第n帧测试语音特征矢量与第m帧参考模板特征矢量之间的距离。D就是处于最优时间规整情况下两矢量的累积距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径, 所以得到的是两矢量匹配时累积距离最小所对应的规整函数, 这就保证了它们之间存在的最大声学相似性。
基本的DTW算法对端点检测非常敏感, 它要求进行比较的两个模板起点和终点分别对应, 并且对端点检测的精度要求很高, 在背景噪声较大或者语音中存在摩擦音时, 端点检测往往不会非常精准, 端点检测结果可能会对动态规整造成不可预知的误差。此时, 必须将边界约束条件放宽。通常的做法是放宽区域中边界约束条件不再要求起点和终点严格对齐, 这样就解决了由于端点检测算法的缺陷带来的参考模板和测试模板的起点和终点不能分别对齐的问题。实际中, 起点和终点分别在横轴和纵轴两个方向上各放宽2~3帧, 即起点 (1, 1) 、 (1, 2) 、 (1, 3) 、 (2, 1) 、 (3, 1) 处, 终点类推, 就可以在不影响识别结果的前提下解决端点检测缺陷问题。
⛄二、部分源代码
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
[3]张慧敏.基于动态时间规整算法的语音识别技术研究[J].科技资讯 2017,15(26),28-31
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
【语音识别】基于matlab GUI动态时间规整算法(RTW)语音识别系统【含Matlab源码 341期】相关推荐
- 【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】
⛄一.动态时间规整算法(RTW)语音识别 软件算法主要分为语音信号滤波去噪.预加重.分帧.端点检测.特征参数提取.模式匹配.算法的关键点和难点是特征参数提取和模式匹配.孤立词的语音识别应用程序也是基于 ...
- 基于动态时间规整算法(DTW)的语音识别技术研究-含Matlab代码
⭕⭕ 目 录 ⭕⭕ ⏩ 一.引言 ⏩ 二.动态时间规整算法基本原理 ⏩ 三.语音识别实例分析 ⏩ 四.参考文献 ⏩ 五.Matlab代码获取 ⏩ 一.引言 在语音识别技术的发展过程中,动态时间规整算法 ...
- 语音识别基础算法——动态时间规整算法
本文首发于:算法社区 dspstack.com,转发请注明出处. 前言# 动态时间规整算法,Dynamic Time Wraping,缩写为DTW,是语音识别领域的一个基础算法. 算法的提出# DTW ...
- 动态时间规整算法(Dynamic Time Warping, DTW)之初探单词语音识别
动态时间规整算法(DTW)是最近接触的一种提取时间序列模板方法.本文主要是一些自己的学习记录,并适当地加入自己的理解.若有见解不一致之处,欢迎交流. 1 动态时间规整(DTW)基本思想 先从单词语音时 ...
- 动态时间规整算法: 从DTW到FastDTW
目录 动态时间规整算法: 从DTW到FastDTW 总结: 简介[^1] DTW[^1] FastDTW:使用多级粗化的方法[^1] 结果 动态时间规整算法: 从DTW到FastDTW 总结: Fas ...
- 动态时间规整算法DTW
动态时间规整算法(dynamic time warping,DTW),最早由日本学者Itakura提出,用于衡量两个时间序列的相似度,也可用于将多个测试序列与标准序列对齐,从而实现序列长度的归一化. ...
- 崔岩的笔记——动态时间规整算法(Dynamic Time Warping,DTW)
什么是动态时间规整算法,他是用来干什么的 用于两个时间不同的特征序列的相似度比较. 举个例子:该算法最早的应用对象是语音识别,通过进行数据库语音特征和说话语音特征的相似度比较进行语音识别,但每个人说话 ...
- 动态时间规整算法(DTW)通俗易懂
动态时间规整算法(Dynamic Time Warping ) 来源: -假定一个孤立词识别系统,利用模板匹配法进行识别.训练阶段,用户将词汇表种每一个词都念一遍,将其特征矢量的时间序列作为模板(te ...
- 动态时间规整算法——DTW
没有做过机器学习的小伙伴们对这个算法应该不是特别的了解,因为机器学习经常会用到这个算法.再将这个算法之前,我们先看一下初中的知识点. 欧几里得距离 在讲解动态时间规整算法(Dynamic Time W ...
最新文章
- 数学家的亿万商业王国:先后创建“验证码”和“多邻国”,20岁就被盖茨亲自挖去微软!...
- 在浏览器中输入 Google.com 回车之后发生了什么?
- vs05b2中给dataset添加表间关系
- mfc程序转化为qt_智慧虎超:小程序如何为珠宝行业助力?低频商品的高频转化你懂吗...
- AB1601 IO口反应延时的问题
- Java 连接MS Access数据库
- c++ 遍历所有点且距离最短_C/C++ 图的最短路径 Dijkstra 算法
- @PathVariable注解使用
- 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句
- html元素按压高亮效果
- Spring 通知和顾问进行增强
- 近似推断:使用高斯混合模型
- android开发之自定义AutoCompleteTextView
- LISP 冻结excel窗格_Excel这10个实操技巧,每个都很牛逼,绝对不能错过
- 解决Python包下载慢问题
- 模COMSOL Multiphysics v5.3 Win64 Linux64 MacOSX64 1DVD
- Git与GitHub的了解与运用
- 任正非:《一江春水向东流》
- 大数据可视化(七)复杂数据可视化
- 【javaScript 的 proxy】