基于dtw的语音识别运行步骤,基于linux的语音识别系统

中国论文网 发表于2024-04-13 00:29:47 归属于电子论文 本文已影响253 我要投稿 手机版

       今天中国论文网小编为大家分享毕业论文、职称论文、论文查重、论文范文、硕博论文库、论文写作格式等内容.                    

摘 要:基于词网模型的连续语音识别系统在各方面得到了广泛应用,如语音拨号、语音指令、语音菜单、语音导航及语音电话簿等。本文在研究语音识别理论的基础上,设计并开发了基于词网模型的连续语音识别系统-MYASR。MYASR提供了丰富的功能模块,包括前端处理、特征提取、模型训练、词网构建、识别等,使开发一个基于词网模型的连续语音识别应用系统更加方便,同时也是语音识别研究的实验平台。MYASR所采用的XML描述文件,使系统具有良好的可读性和可扩展性。通过在TIMIT语料库上单音子连续语音识别的实验显示,MYASR具有很高的识别性能和实时性能。

关键词:语音识别;MYASR系统;XML语言

1.引言  在小词汇量的语音识别系统中,主要分为孤立词识别和基于词网模型的连续语音识别。前者通过词发音端点分割算法,把每个词的发音从整段语音中分割出来,然后再到模型集中去寻找最佳的匹配作为识别结果。XML同HTML一样,都来自SGML(标准通用标记语言)。SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难于学习和使用。鉴于此,人们提出了XML 语言,它具有可扩展性、灵活性、自描述性、简明性的优点。  在MYASR系统中有多个功能模块,每个功能模块都有各自的参数,采用XML语言对这些参数进行描述更加直观,可读性更强。例如,MYASR中MFCC编码的XML描述如下:  <mfcc_params>  <type_mask> MFCC_0_D_A </type_mask>  <sample_rate> 16000 </sample_rate>  <win_size> 400 </win_size>  <win_shift> 160 </win_shift>  <fft_size> 512 </fft_size>  <low_freq> 200 </low_freq>  <high_freq> 7000 </high_freq>  <pre_enphasis> 0.97 </pre_enphasis>  <mel_num> 26 </mel_num>  <cep_num> 12 </cep_num>  <cep_lifter> 10 </cep_lifter>  </mfcc_params>    MYASR通过XML解析器将XML元素中的参数提取出来,然后再传递给各个功能模块。当需要增加参数时,只要在XML文件中适当位置增加一个元素(Element)即可,具有良好的可扩展性。3.系统开发MYASR系统的模块结构如下所示:

3.1前端处理  MYASR的前端处理包括以下功能模块:自动增益控制(AGC)、噪音消除、预加重处理。其相应的XML描述如下:<preprocess_bat workdir="d:worktmp"><params><frame_ts> 20 </frame_ts> //帧长<agc><level> 0.5 </level> <max_gain>2.0</max_gain> //最大增幅<min_gain>1.0 </min_gain> //最小增幅<agc><pre_enphasis> 0.97 </pre_enphasis>//预加重系数<denoise>1</denoise> //噪音消除</params><transcrip> </transcrip></preprocess_bat>  其中属性"workdir"表示当前的工作目录,元素<agc>表示自动增益控制参数,元素<pre_enphasis>表示预加重参数,元素<denoise>表示是否对语音进行噪音消除。元素<transcrip>表示批处理文件,此文件中描述了目标文件名及处理后的文件名,内容如下:  "" ""  "" ""  "" ""  .........3.2端点分割  在MYASR系统中,实现两种类型的端点分割:句子端点检测,词端点检测。采用的静音检测方法有【2】:基于短时能量、基于短时平均过零率、和基于GMM模型。其XML描述如下:<endpoint><endpoint_method> SENT_CUT </endpoint_method><vad_method> GMM_VAD </vad_method><sil_interval> 500 </sil_interval> //单位为毫秒  </endpoint>  元素<endpoint_method>表示端点分割方法:设置SENT_CUT表示句子端点分割,设置WORD_CUT表示词端点分割。元素<vad_method>表示静音检测的方法:设置GMM_VAD 表示采用基于GMM模型,PW_VAD表示基于短时能量,COS_VAD表示基于短时平均过零率。<sil_interval>元素表示检测对象之间允许的停顿时间,超过停顿时间意味着出现新的句子或词。3.3特征提取  MYASR系统中目前采用MFCC结合动态差分参数作为特征矢量。将语音文件转换为MFCC编码的XML描述文件如下所示:<wav2mfcc workdir = "d:myworkdir"><params_xml></params_xml><transcrip> </transcrip>  </wav2mfcc>  其中是MFCC特征参数的描述文件,内容如下:  <mfcc_params>  <type_mask> MFCC_0_D_A </type_mask>//类型  <sample_rate> 16000 </sample_rate>//采样率 <win_size> 400 </win_size>//帧长  <win_shift> 160 </win_shift> //帧移  <fft_size> 512 </fft_size>//FFT的窗长  <low_freq> 200 </low_freq>//截止的最低频率  <high_freq> 7000 </high_freq>//截止的最高频率  <mel_num> 26 </mel_num>//MEL滤波器数  <cep_num> 12 </cep_num>//MFCC维数  <cep_lifter> 10 </cep_lifter>//参数提升系数  </mfcc_params>  其中<type_mask>元素表示特征矢量标志,有6种类型:  表3-1 MYASR中MFCC编码类型

标志<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

含义

MFCC

MFCC参数

MFCC_0

MFCC参数加对数能量

MFCC_D

MFCC参数及其一阶差分

MFCC_0_D

MFCC参数加对数能量,及一阶差分

MFCC_D_A

MFCC参数及其一阶、二阶差分

MFCC_0_D_A

MFCC参数加对数能量,及一阶、二阶差分

<transcrip>元素中的文件描述了语音源文件及转换成MFCC的目标文件,内容如下:  "" ""  "" ""  "" ""  .........3.4模型训练  MYASR采用了连续概率密度的HMM模型,模型参数初始化采用了"K-均值分割"算法,参数重估采用"Baum-Welch"算法。其XML描述文件如下:  <hmm_train workdir="d:worktmpmytimit">  <label_scrip> </label_scrip>  <featlep_scrip> </featlep_scrip>  <hmm_params>  <state_num>3</ state_num >//HMM状态数  <mixture>4</mixture>//高斯分量个数  <veclen>39</veclen>//特征矢量维数  <cluster>GMM_EM</cluster>//聚类算法  <feat_flag>MFCC_0_D_A</feat_flag>//特征矢量标志  </hmm_params>  <model_file></model_file> //输出文件  </ hmm _train>  其中,<label_scrip>元素中的文件表示要训练的那些词或音子。<featlep_scrip>元素中的文件描述了特征矢量文件及其标注文件,内容如下:  "" ""  "" ""  "" ""  .........  标注文件".lab"中注明了每个单元的发音起点和终点,MYASR将根据标注文件从特征文件中读取特征矢量进行HMM模型的训练。标注文件内容如下:  0 191 sil  191 285 sh  285 358 ix  358 415 hh  415 548 eh  548 646 jh  646 720 ih  720 790 d  790 920 ah  ....  其中时间单位为毫秒。  <cluster>元素表示"K-均值分割"算法中对B参数进行重估所采用的算法,有两种选项:GMM_EM表示EM算法,K_MEANS表示"K-means"算法。实验结果显示,EM算法比"K-means"算法具有更好的性能。  <model_file>表示训练输出的HMM模型文件,内容如下:  <hmm_set>  <params>  <feat_mask>MFCC_0_D_A</feat_ mask >  <state_num>3</state_num>  <mixture>4</mixture>  <vec_len>39</vec_len>  </params>  <hmm >  <state>       <mixture> 1.906841e+001 1.900540e-001 ......</mixture> //均值       <var> 2.945649e+001 1.096035e+002......</var>  //方差       <weight> 2.212352e-001 </weight>        //权重 </state> ......    </hmm>    ......  </hmm_ set >3.5词网构建3.5.1 词网模型的双层结构  MYASR中的词网模型分为两层:一层是描述层,主要用于描述词网的结构,包括上下文无关文法和有限状态图;另一层是模型层,这一层由HMM模型构成的搜索网络,是搜索算法的输入。首先由用户定义语法规则,然后转换成有限状态图,最后结合HMM模型集和发音字典将其转化成搜索算法可以处理的模型层搜索网络。

3.5.2 描述层到模型层的转换   在模型层搜索网络中,按节点是否有词输出分为两类:空节点和词节点。空节点中不含有HMM模型,而只是作为词网中的一个过度节点,如起始节点(#START),终止节点(#END),中转节点(#L)都是没有词输出的节点。而词节点则包含了构成这个词的HMM模型。  词网模型的有限状态图转换成模型层搜索网络的过程为:当遇到空节点时,不作处理;当遇到词结点时,在字典哈希表找到这个词,并保存word_id,word_id是这个词在字典哈希表的索引,当搜索结束后,回溯时就是根据这个word_id找到哈希表中对应的词;同时根据这个词的发音,到HMM哈希表中查找子词的HMM模型,然后在这个词结点中创建指向子词HMM模型的指针。转换后的模型层搜索网络如图3-4所示。

模型层搜索网络构建后,就可以用Token-Passing算法进行搜索。4 总结  本文在研究语音识别理论的基础上,设计并开发了基于词网模型的连续语音识别系统-MYASR。MYASR提供了丰富的功能模块,使开发一个基于词网模型的连续语音识别应用系统更加方便,同时也是语音识别研究的实验平台。MYASR所采用的XML描述文件,使系统具有良好的可读性和可扩展性。通过在TIMIT语料库上单音子连续语音识别的实验显示,MYASR具有很高的识别性能和实时性能。当前系统只是在Windows平台上,为适应各种应用的需要,在后续的语音识别系统设计中,可考虑将系统移植到嵌入式平台。参考文献:Ney H , Haeb2Umbach R , Tran B H , et al .

  中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。

返回电子论文列表
展开剩余(