语音识别(ASR)--语音转文字

语⾳识别(ASR)--语⾳转⽂字宫调音乐
语⾳识别(Automatic Speech Recognition)语⾳识别(Automatic Speech Recognition)是以语⾳语⾳为研究对象,通过语⾳信号处理和模式识别让机器⾃动语⾳信号处理和模式识别让机器⾃动识别和理解⼈类⼝述的语识别和理解⼈类⼝述的语。语⾳识别技术就是让机器通过识别和理解过程把语⾳信号转变为相应的⽂本或命令让机器通过识别和理解过程把语⾳信号转变为相应的⽂本或命令的⾼技术。语⾳识别是⼀门涉及⾯很⼴的交叉学科,它与声学、语⾳学、语⾔学、信息理论、模式识别理论以及神经⽣物学等学科都有⾮常密切的关系。
语⾳识别的基本原理
宗教学语⾳识别系统本质上是⼀种模式识别系统,包括特征提取、模式匹配、参考模式库等三个基本单元,它的基本结构如下图所⽰:
上⾯这个图其实很好理解,就是把语⾳输⼊,我们⾸先就是要对输⼊的语⾳进⾏预处理对输⼊的语⾳进⾏预处理,然后提取语⾳的特征提取语⾳的特征,在此基础上建⽴语⾳识别所需的模板建⽴语⾳识别所需的模板。⽽计算机在识别过程中要根据语⾳识别的模型,将计算机中存放的语⾳模板与输⼊的语⾳模板与输⼊的语⾳信号的特征进⾏⽐较语⾳信号的特征进⾏⽐较,根据⼀定的搜索和匹配策略,出⼀系列最优的与输⼊语⾳匹配的模板最优的与输⼊语⾳匹配的模板。然后根据此模板的定义,通过查表就可以给出计算机的识别结果。显然,这种最优的结果与特征的选择、语⾳模型的好坏、模板是否准确都有直接的关系。
语⾳识别系统构建过程整体上包括两⼤部分:训练和识别训练和识别。训练训练通常是离线完成的,对预先收集好的海量语⾳、语⾔数据库进⾏信号处理和知进⾏信号处理和知识挖掘识挖掘,获取语⾳识别系统所需要的“声学模型”和“语⾔模型”获取语⾳识别系统所需要的“声学模型”和“语⾔模型”;⽽识别识别过程通常是在线完成的,对⽤户实时的语⾳进⾏⾃动识别对⽤户实时的语⾳进⾏⾃动识别。识识别过程通常⼜可以分为“前端”和“后端”“前端”和“后端”两⼤模块:“前端”模块前端”模块主要的作⽤是进⾏端点检测(去除多余的静⾳和⾮说话声)、降噪、特征端点检测(去除多余的静⾳和⾮说话声)、降噪、特征提取提取等;“后端”“后端”模块的作⽤是利⽤训练好的“声学模型”和“语⾔模型”对⽤户说话的特征向量进⾏统计模式识别(⼜称“解码”)利⽤训练好的“声学模型”和“语⾔模型”对⽤户说话的特征向量进⾏统计模式识别(⼜称“解码”),得到其包含的⽂字信息,此外,后端模块还存在⼀个“⾃适应”的反馈模块,
可以对⽤户的语⾳进⾏⾃学习,从⽽对“声学模型”和“语⾳模型”进⾏必要的“校正”,进⼀步提⾼识别的准确率。
语⾳识别的技术原理
⾸先,我们知道声⾳实际上是⼀种波声⾳实际上是⼀种波。常见的mp3等格式都是压缩格式,必须转成⾮压缩的纯波形⽂件来处理,⽐如Windows PCM⽂件,也就是俗称的wav⽂件。wav⽂件⾥存储的除了⼀个⽂件头以外,就是声⾳波形的⼀个个点了。下图是⼀个波形的⽰例。
声⾳波形图
其实语⾳识别的声⾳预处理与声纹识别的声⾳预处理有很⼤⼀部分是相似的(前⾯我有介绍:【⾃主学习】声纹识别.2 - 简书)。在开始语⾳识别之前,有时需要把⾸尾端的静⾳切除,降低对后续步骤造成的⼲扰。这个静⾳切除的操作⼀般称为 VAD(【⾃主学习】声纹识别.2 - 简书)。
矩阵变成⽂本了。⾸先要介绍两个概念:
⼩竖条代表⼀帧,若⼲帧语⾳对应⼀个状态,每三个状态组合成⼀个⾳素,若⼲个⾳素组合成⼀个
若⼲帧语⾳对应⼀个状态,每三个状态组合成⼀个⾳素,若⼲个⾳素组合成⼀个在上图中,每个⼩竖条代表⼀帧
单词。也就是说,只要知道每帧语⾳对应哪个状态,语⾳识别的结果就出来了。
单词。
那每帧⾳素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最⼤,那这帧就属于哪个状态。⽐如下⾯的⽰意图,这帧在状态
S3上的条件概率最⼤,因此就猜这帧属于状态S3。
那这些⽤到的概率从哪⾥读取呢?有个叫“声学模型”
声学模型”的东西,⾥⾯存了⼀⼤堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这⼀⼤堆参数的⽅法叫做“训练”,需要使⽤巨⼤数量的语⾳数据,训练的⽅法⽐较繁琐,现在有很多训练模型的⼯具(如:CMUSphinx Open Source Speech Recognition ,Kaldi ASR)。
但这样做有⼀个问题:每⼀帧都会得到⼀个状态号,最后整个语⾳就会得到⼀堆乱七⼋糟的状态号,相邻两帧间的状态号基本都不相同。假设语⾳有1000帧,每帧对应1个状态,每3个状态组合成⼀个⾳素,那么⼤概会组合成300个⾳素,但这段语⾳其实根本没有这么多⾳素。如果真这么做,得到的状态号可能根本⽆法组合成⾳素。实际上,相邻帧的状态应该⼤多数都是相同的才合理,因为每帧很短。
环球新闻眼马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很⾼深的样⼦,实际上⽤起来很简解决这个问题的常⽤⽅法就是使⽤隐马尔可夫模型(Hidden Markov Model,HMM)
单:⾸先构建⼀个状态⽹络,然后从状态⽹络中寻与声⾳最匹配的路径。
⾸先构建⼀个状态⽹络,然后从状态⽹络中寻与声⾳最匹配的路径。
这样就把结果限制在预先设定的⽹络中,避免了刚才说到的问题,当然也带来⼀个局限,⽐如你设定的⽹络⾥只包含了“今天晴天”和“今天下⾬”两个句⼦的状态路径,那么不管说些什么,识别出的结果必然是这两个句⼦中的⼀句。那如果想识别任意⽂本呢?把这个⽹络搭得⾜够⼤,包含任意⽂本的路径就可以了。但这个⽹络越⼤,想要达到⽐较好的识别准确率就越难。所以要根据实际任务的需求,合理选择⽹络⼤⼩和结
根据实际任务的需求,合理选择⽹络⼤⼩和结构。
搜索⼀条最佳路径,语⾳对应这搭建状态⽹络,是由单词级⽹络展开成⾳素⽹络,再展开成状态⽹络
搭建状态⽹络,是由单词级⽹络展开成⾳素⽹络,再展开成状态⽹络。语⾳识别过程其实就是在状态⽹络中搜索⼀条最佳路径
路径搜索的算法是⼀种动态规划剪枝的算法,称之为Viterbi算法,⽤于寻全局最优路径。
解码”。路径搜索的算法是⼀种动态规划剪枝的算法,称之为Viterbi算法,⽤于寻全局最优路径。
累积概率最⼤,这称之为“解码
条路径的累积概率最⼤
这⾥所说的累积概率,由三部分构成,分别是:
从一大到十七大
观察概率:每帧和每个状态对应的概率
语义识别流程图www.tangent
有什么问题尽管提出来哈!腹壁反射
参考:
语⾳识别技术基础理解 - 简书
语⾳识别的技术原理是什么? - 知乎
语⾳识别基本流程 - nsh119的博客 - CSDN博客

本文发布于:2024-09-22 15:42:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/55365.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:识别   状态   训练   过程   模型   模式识别
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议