【基于深度学习语音识别中语言模型的分析与实现案例2600字】_第1页
【基于深度学习语音识别中语言模型的分析与实现案例2600字】_第2页
【基于深度学习语音识别中语言模型的分析与实现案例2600字】_第3页
【基于深度学习语音识别中语言模型的分析与实现案例2600字】_第4页
【基于深度学习语音识别中语言模型的分析与实现案例2600字】_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

附录PAGE25基于深度学习语音识别中语言模型的分析与实现案例目录TOC\o"1-3"\h\u20970基于深度学习语音识别中语言模型的分析与实现案例 11051第一章基于深度学习语音识别中语言模型的分析与实现 111934一、语言模型建模技术 128739二、构建语言模型 16781(一)CBHG模型 230274(二)Transformer模型 27111三、优化算法——Adam优化器 426669第二章实验设计 521959(一)模型框架与数据集介绍 514213(二)算法实现调试与分析 627097(三)实验测试结果 7第一章基于深度学习语音识别中语言模型的分析与实现本章的主要目的是分析语音识别建模的技术,并通过CBHG、Transformer等模型完成语言模型得搭建,实现语音音频信号识别。一、语言模型建模技术语言模型是根据语言客观事实而进行的语言抽象数学建模,是一种对应关系。语言模型与语言客观事实之间的关系,如同数学上的抽象直线与具体直线之间的关系。语言模型是一个单纯的、统一的、抽象的形式系统,语言客观事实经过语言模型的描述,比较适合于电子计算机进行自动处理,因而语言模型对于自然语言的信息处理具有重大的意义。语言模型主要有三种类型:①生成性模型,②分析性模型,③辨识性模型。二、构建语言模型本次设计的实验是基于zh.tsv数据集的语音模型构建,输入一段测试拼音,如“yu3yan2mo2xing4”,最终能够输出“语音模型”的结果。本次实验构建的语言模型主要采用了CBHG、Transformer两种方法,其中利用self-attention来对语音模型进行建模效果更佳。CBHG模块首次提出在Goggle的一篇文章:TACOTRON:TOWARDSEND-TO-ENDSPEECHSYNTHESIS。该模块善于提取序列特征,因此常被用在语音合成、语音识别上。Transformer是Google的团队在2017年提出的一种NLP经典模型,现在比较火热的Bert也是基于Transformer。Transformer模型使用了Self-Attention机制,不采用RNN的顺序结构,使得模型可以并行化训练,而且能够拥有全局信息。(一)CBHG模型CBHG模型最开始提出即为一种用来从序列中提取高层次特征的模块,图4-1为CBHG模块示意图。图4-1GBHG模块示意图CBHG模块使用了卷积+highway+残差链接+双向GRU的组合,输入序列并输出序列。图中,卷积部分使用了K个1-D卷积核集合,卷积的宽度从1到K都存在,因此可以建模上下文信息。CBHG模块的步骤如下:·输入序列,先经过K个1-D卷积,第K个卷积核(filter)通道为k。这些卷积核可以对当前以及上下文信息有效建模。·卷积输出被堆叠(stack)一起,沿着时间轴最大池化(maxpooling)以增加当前信息不变性。stride取为1维持时间分辨率。·输入到几个固定宽度的1-D卷积,将输出增加到起始的输入序列(参考ResNet连接方式)。所有的卷积都采用BatchNormalization.·输入多层的highway网络。用以提取更高级别的特征。·在顶部加入双向GRU,用于提取序列的上下文特征。(二)Transformer模型与大多数seq2seq模型一样,transformer的结构也是由encoder和decoder组成,但其结构相比于Attention更加复杂,总体结构图见图4-2。EncoderEncoder由N个相同的layer组成,layer指的是图4-2中左侧的单元,由“Nx”表示。在论文《AttentionIsAllYouNeed》中由六层构成。每个layer层由两个sub-layer组成,分别是multi-headself-attentionmechanism和fullyconnectedfeed-forwardnetwork。其中每个sub-layer都加了residualconnection和normalization,因此可以将sub-layer的输出表示为:(4-1)·Multi-headself-attentionattention可由以下形式表示:(4-2)multi-headattention则是通过h个不同的线性变换对Q,K,V进行投影,最后将不同的attention结果拼接起来:(4-3)(4-4)self-attention则是取Q,K,V相同。另外,attention的计算采用了scaleddot-product,即:(4-5)图4-2Encoder和Decoder结构图DecoderDecoder和Encoder的结构几乎相同,不同的是多了一个attention的sub-layer,decoder的输入输出和解码过程如下:·输出:对应i位置的输出词的概率分布·输入:encoder的输出以及其对应i-1位置decoder的输出。它的K,V来自encoder,Q来自上一位置decoder的输出。·解码:训练时,解码为一次性解码,用上一步的ground-truth预测。预测时,由于没有ground-truth,需要一个个预测。PositionalEncoding除了主要的Encoder和Decoder,还有数据预处理的部分。Transformer抛弃了RNN,而RNN最大的优点就是在时间序列上对数据的抽象,因此Transformer提出PositionEncoding的方式,将encoding后的数据与embedding数据求和,加入了相对位置信息。其位置计算公式如下:(4-6)(4-7)图4-3PositionEncoding结构图三、优化算法——Adam优化器2014年12月,Kingma和LeiBa两位学者提出了Adam优化器,结合AdaGrad和RMSProp两种优化算法的优点。对梯度的一阶矩估计(FirstMomentEstimation,即梯度的均值)和二阶矩估计(SecondMomentEstimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。Adam更新规则如下:(4-8)(4-9)(4-10)(4-11)(4-12)其中,分别是对梯度的一阶矩估计和二阶矩估计,可以看作对期望的估计;是对的校正,这样可以近似为对期望的无偏估计。可以看出,直接对梯度的矩估计对内存没有额外的要求,而且可以根据梯度进行动态调整,而对学习率形成一个动态约束,而且有明确的范围。第二章实验设计通过对卷积网络的典型结构与模型原理的学习,本课题将采用tensorflow实现利用Transformer模型搭建端到端的语言模型。本实验使用python版本为3.6.0,tensorflow版本为1.12.0,keras版本为2.2.4。(一)模型框架与数据集介绍1.TensorFlowTensorFlow[16]是由GoogleBrain的研究员与工程师所组成的队伍所开发开源的软件库,经常被用于机器学习与深度神经网络方面的研究。得益于其计算框架的通用性与扩展性,Tensorflow也广泛应用于其它计算领域。2.thchs30数据集THCHS30是由清华大学语音与语言技术中心(CSLT)出版的开放式中文语音数据库,可以用于中文语音识别系统的开发。该数据集语音数据是在安静的办公室环境下录取的,总时长超过30个小时。采样频率16kHz,采样大小16bits。这个数据集包括以下内容:数据集音频时长(h:mm)句子数词数train25:0010000198252dev2:1489317743test6:1589349085为了帮助构建一个实用的中文ASR系统,一些附加的资源也随着THCHS-30发布了。这些资源包括发音词典,语言模型,训练方法和一些其他有用的工具。实验中采用的是data_thchs30.tgz[6.4G](speechdataandtranscripts)数据集。(二)算法实现调试与分析本章节实验,利用zh.tsv为例建立一个完整的端到端的语言模型,采用Transformer的语言模型结构。数据处理首先从zh.tsv中读取数据,并将其分为input与label两个数组,input数组中包含例如“['lv4','shi4','yang2','chun1','yan1','jing3','da4','kuai4','wen2','zhang1','de','di3','se4','si4','yue4','de','lin2','luan2','geng4','shi4','lv4','de2','xian1','huo2','xiu4','mei4','shi1','yi4','ang4','ran2']”的拼音。对应的label则为“['绿','是','阳','春','烟','景','大','块','文','章','的','底','色','四','月','的','林','峦','更','是','绿','得','鲜','活','秀','媚','诗','意','盎','然']”。模型搭建模型采用self-attention,具体结构如下:图4-4self-attention模型结构本次算法实验只需要搭建Transformer左侧编码器即可,忽略右侧解码器。·构建layernorm层·构建embedding层·构建multihead层·构建feedforward·使用label_smoothing使用label_smoothing又利用训练,将0变为接近0的小数,1变为接近1的数。训练模型使用以下的参数进行训练:参数名数值num_heads8Num_blocks6Input_vocab_size50Label_vocal_size50Max_length100Hidden_units512Dropout_rate0.2lr0.0003epochs25Batch_size4模型推断输入测试拼音,输出最终语句结果。例:输入测试拼音:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论