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

news2024/9/21 12:40:24

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.coloradmin.cn/o/357909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA全家桶式讲解 | IDEA安装、使用、断点调试、Git、插件 (第二篇)

目录 一:JavaEE阶段需要掌握的IDEA技能 1. 配置Tomcat 2. 配置Maven 3. IDEA连接数据库 4. 方便的特殊功能 5. 断点调试(重点) 6. IDEA中常用Git协同开发(重点) 7. 常用插件安装 一:JavaEE阶段需要…

Julia 语言环境安装

Julia 语言支持以下系统: LinuxFreeBSDmacOSWindowsAndroid Julia 安装包下载地址为:Download Julia。 Github 源码地址:GitHub - JuliaLang/julia: The Julia Programming Language。 国内镜像地址:Index of /julia-releases/…

Spring Boot框架基础介绍

Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到…

nodejs基于vue垃圾回收分类网站

目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.1 JAVA简介 4 2.2MyEclipse环境配置 4 2.3 B/S结构简介 4 2.4MySQL数据库 5 2.5 SPRINGBOOT框架 5 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.…

【C++修炼之路】18.map和set

每一个不曾起舞的日子都是对生命的辜负 map和setmap和set一.关联式容器二.set2.1 set的介绍2.2 set的使用1.set的模板参数列表2.set的构造3.set的迭代器4.set修改操作5.bound函数三.multiset四.map3.1 map的介绍3.2 map的使用1.map的模板参数说明2.pair的介绍3.map的[]重载五.m…

如何构建微服务架构?

相信很多人对微服务架构都会产生这样一些疑问,例如我要何时使用微服务架构?又如何将应用程序分解为微服务?分解后,要如何去搭建微服务架构?同时,在微服务架构中,因为会涉及到多个组件,那么这些组件又可以使用什么技…

[软件工程导论(第六版)]第9章 面向对象方法学引论(复习笔记)

文章目录9.1 面向对象方法学概述要点9.2 面向对象的概念对象9.3 面向对象建模9.4 对象模型9.5 动态模型9.6 功能模型9.7 3种模型之间的关系9.1 面向对象方法学概述要点 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方…

CS144-Lab3

概述 在实验0中,你实现了流控制字节流(ByteStream)的抽象。 在实验1和2中,你实现了将不可靠数据报中的段转换为传入字节流的工具:StreamReassembler和TCPReceiver。 现在,在实验3中,你将实现…

【STM32笔记】低功耗模式配置及避坑汇总

【STM32笔记】低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) 【STM32笔记】__WFI();进入不了休眠的可能原因 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案&#x…

kanban系统wekan安装

看板类开源项目排名第一的wekan项目安装比较友好的leantime 下载windows 版本 wekan 进入官网 https://wekan.github.io/ , 留意最新版依赖的技术栈, 比如 WeKan v6.74 依赖的是 Meteor 2.10.0, Node.js 14.21.2, MongoDB 6.0.4。 点击 Offline Window LAN 链接进入 github wik…

「7」线性代数(期末复习)

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 第五章 相似矩阵及二次型 &4)对称阵的对角化 &5二次型及其标准型 …

【C++】类与对象理解和学习(中)

专栏放在【C知识总结】,会持续更新,期待支持🌹六大默认成员函数前言每个类中都含有六大默认成员函数,也就是说,即使这个类是个空类,里面什么都没有写,但是编译器依然会自动生成六个默认成员函数…

【SSD 代码精读】之 model (Backbone) loss

model1、Backbone1)ResNet-502)截取 ResNet-50 的前半部分作为 backbone2、Module3、Loss Function1)location loss2)confidence loss3)整体 loss4)loss 代码1、Backbone 这里介绍使用 ResNet-50 作为 bac…

思维经验 | ​如何刻意练习提升用户思维?

小飞象交流会哪里有什么捷径,那些个“一步登天”的哪个不是在前面就打好了“地基”的。内部交流│20期思维经验分享如何刻意练习提升用户思维?data analysis●●●●分享人:大江老师‍数据部门和运营部门做了大量的用户标签和用户分层工作。为…

基于GIS的地下水脆弱性评价

(一)行政边界数据、土地利用数据和土壤类型数据 本文所用到的河北唐山行政边界数据、土地利用数据和土壤类型数据均来源于中国科学院资源环境科学与数据中心(https://www.resdc.cn/Default.aspx)。 (二)地…

小孩扁桃体肿大3度能自愈吗?6岁小孩扁桃体肥大怎么治效果好?

12月7日,四川眉山市民唐先生说,他刚出生的儿子在妇产医院分娩中心住了20天后感染了败血症。据唐先生介绍,哈子出院时各项指标正常。他在分娩中心住了半个月左右,孩子喝牛奶很生气,第二天就开始发烧了。同一天&#xff…

新版bing(集成ChatGPT)申请通过后在谷歌浏览器(Chrome)上的使用方法

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Flink-运行时架构介绍

文章目录Flink 运行时架构系统架构整体架构作业管理器(JobManager)任务管理器(TaskManager)作业提交流程高层级抽象视角独立模式(Standalone)YARN 集群数据流图(Dataflow Graph)并行…

用户画像——如何构建用户画像系统

为什么需要用户画像 如果你是用户,当你使用抖音、今日头条的时候,如果平台推荐给你的内容都是你感兴趣的,能够为你节省大量搜索内容的时间。 如果你是商家,当你投放广告的时候,如果平台推送的用户都是你的潜在买家,能够使你花更少的钱,带来更大的收益。 这两者背后都…

Linux内核驱动之efi-rtc

Linux内核驱动之efi-rtc1. UEFI与BIOS概述1.1. BIOS 概述1.1.1. BIOS缺点:1.1.2. BIOS的启动流程1.2 UEFI 概述1.2.1 Boot Sevices:1.2.2. Runtime Service:1.2.3. UEFI优点:1.2.4. UEFI启动过程:1.3 Legacy和UEFI1.4 …