热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

基于动态时间规整算法(DTW)的语音识别技术研究含Matlab代码

⭕⭕目录⭕⭕⏩一、引言⏩二、动态时间规整算法基本原理⏩三、语音识别实例分析⏩四、参考文献⏩五、Matlab代码获取⏩一、引言在语音识别技术的发展过程中,动态时间规整




⭕⭕ 目 录 ⭕⭕


  • ⏩ 一、引言
  • ⏩ 二、动态时间规整算法基本原理
  • ⏩ 三、语音识别实例分析
  • ⏩ 四、参考文献
  • ⏩ 五、Matlab代码获取



⏩ 一、引言

在语音识别技术的发展过程中,动态时间规整算法(Dynamic Time Warping,DTW)一直处于重要地位,其本质上是一种距离度量算法。在过去的几十年中研究者们提出了几十种距离度量算法,实验证明,动态时间规整算法仍然是最佳的距离度量技术。然而,目前的各种嵌入式语音识别方案中,由于动态时间规整算法本身庞大的计算量和相邻数据处理过程中的高度依赖性极大地限制了它的实际应用,同时也使得计算资源和存储空间相对有限的嵌入式设备无法更好地发挥其性能。


⏩ 二、动态时间规整算法基本原理

动态时间规整算法是一种准确性高、鲁棒性强的时间序列相似性度量方法。通过在测试语音序列和模板语音序列之间利用规整函数建立一条非线性的弯折路径,不断对比两序列之间弯折路径的距离,距离越小,相似度越高,以此找到声学相似性最大的两个序列。

设T={t1,t2,t3,t4,t5,…,tN}和H={h1,h2,h3,h4,h5,…,hM} 分别为长度为 N 和 M 的语音序列。动态时间规整算法需要不断搜索得出一个时间规整函数C=z(n),该函数将T序列的时间轴非线性的映射到H序列的时间轴上。同时,该函数z满足公式(1):

在这里插入图片描述

式中,d[T(n),H(z(n))] 是序列 T 中第 n 个数据 tn和序列 H 中第 C = w(n) 个数据 hm 之间的距离度量,D 为最优时间规整情况下两个序列的累积距离。为了保证两个序列之间的搜索匹配路径具有实际意义,规整函数 z(n) 必须满足以下 3个条件:

单调性:z(n)≤z(n+1),1≤n≤N-1;

边界性:z(1)=1,z(N)=M;

连续性:z(n+1)-z(n)≤1。

根据上述3个条件,由N和M两个序列中任意两点的距离构成N×M的距离矩阵





A



N


×


M





{{A}_{N\times M}}


AN×M
,其中任意两点A1、A2使用公式(2)计算其欧氏距离。

在这里插入图片描述

边界性是为了保证搜索路径的起点从矩阵





A



N


×


M





{{A}_{N\times M}}


AN×M
的左下角(1,1)开始到右上角(N,M)结束。单调性和连续性是为了保证搜索路径的下一个方向在当前点的上方、右上方或者右方。从而在所有有效路径中找到唯一最优路径可以使累积距离最小。

为了找到唯一最优路径,动态时间规整算法采用逆序决策过程,求其任意点处累积距离,需先找出其所有满足上述 3 个条件的前序节点 ,利用公式(3)递推求得所有节点。

在这里插入图片描述


⏩ 三、语音识别实例分析

一个完整的基于统计的语音识别系统可大致有这样的步骤:

①语音信号预处理;

②语音信号特征提取;

③声学模型选择;

④模式匹配选择;

⑤语言模型选择;

⑥语言信息处理。

基于Matlab GUI设计的语音控制光信号等识别系统用户界面如下图所示:

在这里插入图片描述



图1 语音信号识别系统

语音信号“停止”,用控制台中的“黄色”来表示。

在这里插入图片描述



图2 语音信号识别结果(黄色对应停止的语音)

语音信号“关闭”,用控制台中的“绿色”来表示。

在这里插入图片描述



图3 语音信号识别结果(绿色代表语音:关闭)

⏩ 四、参考文献

[1] 温玉华.基于DTW算法的英语发音错误自动校正系统设计[J].现代电子技术,2020,43(10):124-126.
[2] 钟颖.基于DSP的语音识别系统的研究与实现[J].数字技术与应用,2017(5):48-49.
[3] 杨凡,杨迎尧,邹杰,等.基于语音识别的智能家居系统的设计与开发[J].现代信息科技,2019,3(9):164-167.
[4] 贺霄琛,韩燮,李顺增.改进的LB算法在动态手势识别中的应用[J].微电子学与计算机,2016,33(4):55-59.


⏩ 五、Matlab代码获取

上述Matlab代码,可私信博主获取





博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论










推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 智能投顾机器人:创业者如何应对新挑战?
    随着智能投顾技术在二级市场的兴起,针对一级市场的智能投顾也逐渐崭露头角。近日,一款名为阿尔妮塔的人工智能创投机器人正式发布,它将如何改变投资人的工作方式和创业者的融资策略? ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 深入理解Java中的Collection接口与Collections工具类
    本文详细解析了Java中Collection接口和Collections工具类的区别与联系,帮助开发者更好地理解和使用这两个核心组件。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 树莓派摄像头配置与应用指南
    本文详细介绍了如何在树莓派上配置和使用摄像头,包括启用摄像头接口、简单的图片和视频捕捉方法以及如何通过网络实时传输视频流。 ... [详细]
author-avatar
手机用户2702936363
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有