Kaldi语音识别技术(六) ----- DTW和HMM-GMM

news/2024/5/17 12:04:20/文章来源:https://blog.csdn.net/yxn4065/article/details/129116613

Kaldi语音识别技术(六) ----- DTW和HMM-GMM

文章目录

  • Kaldi语音识别技术(六) ----- DTW和HMM-GMM
    • 前言
    • 一、语音识别概况
    • 二、语音识别基本原理
    • 三、DTW(动态时间弯折)算法
    • 四、GMM-HMM

前言

前面的内容中我们完成了特征的提取,那么本章节我们主要进行理论部分的笔记。知道自己在干嘛才能更好效率的学习,简单对语音识别进行一个回顾,然后介绍一下语音识别常用的也是最简单的 DTW(动态时间弯折)算法。

一、语音识别概况

时至今日,语音识别已经有了突破性进展。2017年8月20日,微软语音识别系统错误率由5.9%降低到5.1%,可达到专业速记员的水平;国内语音识别行业的佼佼者科大讯飞的语音听写准确率则达到了95%,表现强悍。国内诸如阿里、百度、腾讯等大公司,也纷纷发力语音识别,前景一片看好。

并且,语音识别系统也不只仅仅用于之前提到的手机交互、智能音箱命令,在玩具、家具家居、汽车、司法、医疗、教育、工业等诸多领域,语音识别系统将发挥不可忽视的作用。毕竟在当下人工智能刚刚起步的时代,在设备无法便捷的探知人类想法之前,语音交互都是最高效的人机交互方式。

现在庞大的语言数据库难以放置于移动端,这也是几乎所有手机语音助手使用时需要联网的原因。语音识别发展到现在也不是没有离线版,但我们不难发现,离线版的准确率是要远远低于在线版的。

另外,刚才我们提到不少语音厂商都宣称准确率达到90%以上,这可以说是十分了不起的,不夸张的说,这时候每提升1个百分比的准确率,都是质的飞跃。这不仅要相当完善的数据库,满足这样的准确率还得效率较高的识别提取算法和自学习系统。

但然这样的数据我们要以辨证的眼光来看,俗话说,一句话百样说,汉语言可谓博大精深;而且厂商给出的准确率数据的测试很难具备广泛性,所以有些用户在使用语音识别功能时发现它还很“弱智”,实属正常。

识别提取算法和自学习系统,在这里我们不妨简单了解一下它们的工作过程:首先语音识别系统对收集到的目标语音进行预处理,这个过程就已经十分复杂,包含语音信号采样、反混叠带通滤波、去除个体发音差异和设备、环境引起的噪声影响等等。然后,对处理的语音进行特征提取。

二、语音识别基本原理

声音的本质是震动,它可以由波形表示,识别则需要对波进行分帧,多个帧构成一个状态,三个状态构成一个音素。英语常用音素集是卡内基梅隆大学的一套由39个音素构成的音素集,汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调和无调。之后通过音素系统合成单词或者汉字。

当然,之后的匹配和后期内容处理也需要相应算法来完成。自学习系统则更多的是针对数据库来说。将语音转换成文本的语音识别系统要有两个数据库,一是可与提取出的信息进行匹配的声学模型数据库,二是可与之匹配的文本语言数据库。这两个数据库需要提前对大量数据进行训练分析,也就是所说的自学习系统,从而提取出有用的数据模型构成数据库;

另外,在识别过程中,自学习系统会归纳用户的使用习惯和识别方式,然后将数据归纳到数据库,从而让识别系统对该用户来说更智能。

更进一步总结一下整个识别过程:

  • 对采集的目标语音进行处理,获取包含关键信息的语音部分
  • 提取关键信息
  • 识别最小单元字词,分析规定语法排列
  • 分析整句语义,将关键内容断句排列,调整文字构成
  • 根据整体信息修改出现轻微偏差的内容

三、DTW(动态时间弯折)算法

特征怎么转换为音素
在这里插入图片描述

对齐方式
在这里插入图片描述

在语音识别中比较简单的是基于DTW算法。DTW(动态时间弯折)算法原理:基于动态规划(DP)的思想,解决发音长短不一的模板匹配问题。相比HMM模型算法,DTW算法的训练几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍得到广泛的应用

在训练和识别阶段,首先采用端点检测算法确定语音的起点和终点。对于参考模板{R(1),R(2),…,R(m),…,R(M)},R(m)为第m帧的语音特征矢量。对于测试模板{T(1),T(2),…,T(n),…,T(N)},T(n)为测试模板的第n帧的语音特征矢量。参考模板与测试模板一般采用类型的特征矢量、相同的帧长、相同的窗函数和相同的帧移。

对于测试和参考模板T和R,它们之间的相似度之间的距离D[T,R],距离越小则相似度越高。在DTW算法中通常采用欧氏距离表示。对于N和M不相同的情况,需要考虑T(n)和R(m)对齐。一般采用动态规划(DP)的方法将实现T到R的映射。

将测试模板的各个帧号n=1,N在一个二维直角坐标系中的横轴上标出,参考模板的各帧号m=1,M在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(n,m)表示测试模式中某一帧与训练模式中某一帧的交汇点。DP算法可以归结为寻找一条通过此网格中若干格点的路径,路径通过的格点即为测试和参考模板中进行距离计算的帧号。

DTW( Dynamic Time Warping)

按照距离最近的原则,构建两个序列元素之间的对应的关系,评估两个序列的相似性。

要求
(1)单向对应,不能回头
(2)一一对应,不能有空
(3)对应之后,距离最近(距离越近,匹配度越高)

eg:
在这里插入图片描述

算法实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DTW的python包

pip install dtw
pip install dtw_c
pip install fastdtw

使用DTW缺点

  1. DTW一般只能以单词为单位进行识别(孤立词识别),连续语音识别效果差;

  2. 运算量大。DTW需要存储所有训练数据,空间占用量和测试耗时随训练数据量都是线性增长;

  3. 太依赖于说话人的原来发音,不能对样本作动态训练;

  4. 识别性能过分依赖于端点检测(即特征提取效果)。

四、GMM-HMM

这是一个成熟的系统,目前我对这掌握的也不是那么的深入,关于该部分内容仅做一个简单的介绍。

GMM-HMM语音识别系统:
在这里插入图片描述

目的:将语音生成表达为概率模型

在这里插入图片描述

  • GMM(高斯混合模型)
    在这里插入图片描述

  • HMM
    在这里插入图片描述

  • GMM-HMM
    在这里插入图片描述


参考:

GMM-HMM模型

GMM-HMM声学模型(深度解析)

DTW(动态时间规整)算法原理与应用

肖利君. 基于DTW模型的孤立词语音识别算法实现研究[D]. 中南大学, 2010.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71502.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023爱分析· 云管理服务(MSP)市场厂商评估报告:华创方舟

目录 1. 研究范围定义 2. 云管理服务(MSP)市场定义 3. 厂商评估:华创方舟 4. 入选证书 1. 研究范围定义 数字化时代,应用成为企业开展各项业务的落脚点。随着业务的快速发展,应用的功能迭代变得越来越…

VSCode Remote-SSH配置免密登录踩坑

VSCode Remote-SSH配置免密登录踩坑1. 参考2. 基本流程2.1 机器A(Windows客户端)2.2 机器B(Linux服务器)2.3 机器A(Windows客户端)的VSCode设置3. 踩坑总结相关教程很多,但要么冗余,…

Elasticsearch:提升 Elasticsearch 性能

Elasticsearch 是为你的用户提供无缝搜索体验的不可或缺的工具。 在最近的 QCon 会议上,我遇到了很多的开发者。在他们的系统中,Elastic Stack 是不可缺少的工具,无论在搜索,可观测性或安全领域,Elastic Stack 都发挥着…

秒懂算法 | 莫队算法

01、基础莫队算法 莫队算法 = 离线 + 暴力 + 分块。 “离线”和“在线”的概念。在线是交互式的,一问一答;如果前面的答案用于后面的提问,称为“强制在线”。离线是非交互的,一次性读取所有问题,然后一起回答,"记录所有步,回头再做”。 基础的莫队算法是一种离线…

dubbo SPI之依赖注入、禁止依赖注入@DisableInject

本文基于dubbo2.7.7分析 dubbo SPI如何实现依赖注入如何禁用dubbo的依赖注入 使用标准Setter方法依赖注入 dubbo的SPI默认支持依赖注入功能, 在SPI的实现类中,只要写标准的Setter方法即可, 示例如下: public class CustomInterfaceImpl implements CustomInterf…

6 大经典机器学习数据集,3w+ 用户票选得出,建议收藏

内容一览:本期汇总了超神经下载排名众多的 6 个数据集,涵盖图像识别、机器翻译、遥感影像等领域。这些数据集质量高、数据量大,经历人气认证值得收藏码住。 关键词:数据集 机器翻译 机器视觉 数据集是机器学习模型训练的基础&…

LeetCode——51. N 皇后

一、题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案…

为什么会有跨域问题,代理是怎么解决的?

📖 文章导航关于跨域问题同源策略跨域资源共享解决方案前端代理后端服务端代理关于跨域问题 同源策略 同源策略(Same-origin policy)是浏览器中一个重要的安全策略,它用于限制不同源之间的资源交互。其目的是为了帮助阻隔恶意文…

系列五、docker常见报错

一、运行mysql服务报错 1.1、查看3306端口被哪个服务监听 netstat -nap | grep 3306 1.2、杀死进程 kill 1851 1.3、关闭容器 docker stop 3185bc93893e 1.4、再次运行mysql服务 docker run --name mysql8.0.26 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/conf/m…

业内人士告诉你,买流量卡时一定要问的几个问题?

互联网时代,流量当然是至关重要,但是,在网上搜索流量卡时,广告可谓是铺天盖地,五花八门,所以,小编提醒大家,为了选择性价比较高的卡,在购买流量卡时一定要关注几个问题。…

怎么配置最流行的智能聊天工具

注册OpenAI账号 1.打开https://beta.openai.com/signup 页面进行相应的注册。 2.此处需要输入邮箱进行注册并且提示到邮箱验证 3.注册没有问题的话,会提示你已经发送到对应邮箱,进行邮箱验证 此处需要注意下:邮箱验证需要进行翻墙进行验证…

100种思维模型之九屏幕分析思维模型-016

一、认识九屏幕分析思维模型 1.九屏幕分析思维模型定义 九屏幕法是TRIZ理论中的创新思维方法五大方法之一。它是把问题当成一个系统来研究, 关注系统的整体性、 层级性、目的性,即各要素之间的结构。 九屏幕法是按照时间和系统层次两个维度进行思考。 包…

windows版Rsync服务端和客户端cwRsync_4.1.0安装测试

下载地址:https://download.csdn.net/download/qq_32421489/87463506 服务端安装: cwRsyncServer(服务端)配置步骤 1.双击运行wRsyncServer_4.1.0_Installer.exe。 2.这里创建的账户是操作系统的,创建的这个账户是专…

使用Fabric.js实现贝塞尔曲线波浪特效

一、前言 本文是在此基础上收到启发然后进行的变化,当然,观看与否不会影响接下来的阅读体验。 二、实现思路 其实整个波浪动画其实可以看成:在相对坐标系静止的视角下,一个正弦函数在直角坐标系上匀速平移时我们所观察到的效果…

【基础语法】JavaScript 全栈体系(三)

JavaScript 基础 第三章 常量 一、常量的基本使用 概念:使用 const 声明的变量称为“常量”。使用场景:当某个变量永远不会改变的时候,就可以使用 const 来声明,而不是let。命名规范:和变量一致常量使用 // 声明一…

面试官:你是怎样理解Fiber的

hello,这里是潇晨,今天我们来聊一聊Fiber。不知道大家面试的时候有没有遇到过和react Fiber相关的问题呢,这一类问题比较开放,但也是考察对react源码理解深度的问题,如果面试高级前端岗,恰巧你平时用的是re…

【Linux】——基础开发工具和vim编辑器的基本使用方法

目录 Linux 软件包管理器 yum Linux编辑器-vim使用 1.vim的基本概念 2. vim的基本操作 3. vim正常模式命令集 4. vim末行模式命令集 如何配置vim Linux 软件包管理器 yum yum是Linux下的一个下载软件的软件 对于yum,现阶段只需要会使用yum的三板斧就…

2023赏金计划:Coremail SRC漏洞征集与样本奖励火热进行中

赏金活动一:Coremail SRC漏洞奖励计划 01 活动背景 2023年1月,Coremail安全应急响应中心(Coremail SRC)正式上线启用,面向公众收集安全漏洞信息与安全情报。Coremail SRC旨在联合众多安全专家、白帽子研究员共同发现…

你看,ChatGPT都知道优先使用BigDecimal

不是三婶儿偏执,非要吐槽。家人们,咱就是说,按照基操逻辑谁会把严格金额计算相关的数据使用double类型呢… “我以为吕布已经够勇猛了,这是谁的部下?” 前几天,一同事让帮忙写段代码。内容比较常规&#xf…

【结构体版】通讯录

👦个人主页:Weraphael ✍🏻作者简介:目前是C语言学习者 ✈️专栏:项目 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x…