kaldi基础知识整理.docx

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一语音识别的原理 1.1语音识别的过程 (1)基本构架 (2)语音识别的原理 语音识别过程就是输入一段语音信号,找到一串文字序列(字或词)的过程。 语音输入 Y =y1,y2,y3,...,yt 对应的标注 W =w1,w2,w3,...,wn 这个过程一般用概率来表示,用Y表示语音信号,用W表示文字序列,则是要解决下面这个问题: 公式1表示语音识别的目标是在给定语音输入的情况下,找到可能性最大的文字序列。由贝叶斯公式 得到公式2,由于P(Y|W )P(W ) /P(Y)是对每个句子进行计算的,而对每个句子来说P(Y) 是不变的,所以可以改写成公式3。 其中P(Y|W )称做观测最大似然概率,表示给定一个文字序列出现这条音频的概率,由声学模型计算可得;P(W)称做先验概率,表示出现这个文字序列的概率,由语言模型计算可得。 1.2知乎——张俊博的回答 首先说一下作为输入的时域波形。常见的mp3、wmv等格式都是压缩格式,必须转成非压缩的纯波形文件,比如Windows PCM文件,即wav文件来处理。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。采样率越大,每毫秒语音中包含的点的个数就越多。另外声音有单通道双通道之分,还有四通道的等等。对语音识别任务来说,单通道就足够了,多了浪费,因此一般要把声音转成单通道的来处理。下图是一个波形的示例: 在开始语音识别之前,需要利用VAD技术把首尾端的静音切除,避免对后续的干扰。Voice Activity Detection (语音激活检测),能够区分传输语音信号中的语音信号和背景噪音,当然还能在通信中区分语音和静默段,避免带宽资源的浪费。声音分帧,把声音切成一小段一小段,每一小段称为一帧。如下: 图中,每帧的长度为25ms,每两帧之间有25-10=15ms的交叠,我们称为以帧长25ms、帧移10ms分帧。 波形在时域上几乎没有描述能力,须将波形做变换,常见的一种变换方法是提取MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,这个向量包含了该帧语音的内容信息,这个过程叫做声学特征提取。实际应用中,声学特征不止有MFCC这一种,如PLP,PITCH。声音可以表示成一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。 接下来就是要把这个矩阵变成文本。介绍两个概念: 1.音素:单词的发音由音素构成。对英语,一个常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集。汉语一般直接用全部声母和韵母(23个声母和24个韵母)作为音素集,另外汉语识别还分有调无调。 2.状态:比音素更细致的语音单位,通常把一个音素划分成3个状态。 语音识别是怎么工作的呢? 1.把帧识别成状态(难点) 2.把状态组合成音素 3.把音素组合成单词(字典的作用) 图中,每个小竖条代表一帧,每一帧会提取一个特征,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态,语音识别的结果也就出来了。 那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧在状态S3上的概率最大,因此就猜这帧属于状态S3。 通过语料训练,得到存有一大堆参数的声学模型,通过这些参数,就可以知道帧和状态对应的概率。 假设每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号。假设语音有1000帧,每帧对应一个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。解决这个问题的常用方法就是使用HMM。 第一步,构建一个状态网络。 第二部,从状态网络中寻找与声音最匹配的路径。 这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来了一个局限,比如你假定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。那如果想识别任意文本呢?把这个网络搭的足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难,所以要根据实际任务的需求,合理选择网络大小和结构。 搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为“Viterbi算法”,用于寻找全局最优路径。 其中o1,o2,o3…o

文档评论(0)

机械中的AI混子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档