首页天道酬勤nlp神经语言学6步骤,语音识别开发板

nlp神经语言学6步骤,语音识别开发板

张世龙 05-12 05:08 75次浏览

文章目录引言一、语音识别概述1、模板匹配,如DTW (动态时间规则) 2、统计模型(如GMM-HMM )混合高斯模型和马尔可夫模型)等3、深度学习,如DNN-HMM

引言

正文主旨:

阐述了端到端语音识别的基本原理、实现方法和主要过程。 作者说:

由于从来没有接触过NLP,其中很多概念不清晰,从NLP的发展历史入手,从基础入手,逐步阐述NLP方法一代的进步,按照一个顺序的结构,最终阐述今天的主题——ESPNet; 所以,很多篇幅预计可能是ESPNet的基础知识; 正文逻辑:

语音识别(ASR )的发展历史ASR的三种方法,引出深度学习法的深度学习的端到端是什么? 端到端引出ESPNet,详细了解ESPNet。 另一方面,语音识别概述虽说这一部分与ESPNet本身没有直接关系,但基于学习过程,还是写下自己前期调查中有价值的部分,让读者了解ESPNet在整个语音识别中所处的地位。

从1950s到现在,可以归纳出三种语音识别方法:

1、模板匹配,如动态时间规则(DTW )模板匹配,运用动态规划的思想,使两段不等长的语音成为等长语音,然后易于上下匹配波形;

简而言之,我有一个模板库,通过获取语音的波形图像并与模板库进行匹配来进行语音匹配

模板匹配适用于小词汇、单语的识别; 但是,的识别效果过于依赖端点检测,不适合连续语音识别。

2、统计模型,如GMM-HMM (混合高斯模型和马尔可夫模型)等统计模型的语音识别系统通常有以下模块:

信号处理和特征提取模块:从输入的语音信号中提取特征,用于声学模型的建模和解码过程。声学模型:在常规语音识别系统中,用隐马尔可夫模型对词、音节、音素等基本声学单元建模,生成声学模型。语言模型:语言模型在单词层面对系统需要识别的语言进行建模。 我判断那个词最适合现在的句子。 目前大多数语音识别系统普遍采用统计语言模型,其中大部分是基于统计的n元语法(N-gram )模型及其变体。 (我认为也基于概率,但还是很好)发音词典/词汇表)发音词典包含系统可以处理的单词集合,并注明了其发音。 通过发音词典得到声学模型建模单元与语言模型建模单元之间的映射关系,将声学模型与语言模型结合起来,构成一个搜索的状态空间用于解码器的解码工作。解码器:解码器是语音识别系统的核心之一,它读取输入语音信号的特征序列,并从由声学模型、语言模型和发音词典生成的状态空间中解码出以最高概率输出该信号的单词序列。

我个人理解,基于统计模型的语音识别的流程如下。

语音的输入:语音——我是机器人。 mp3 (当然mp3不需要具体为这种格式)。

特征提取:提取特征向量并将数据改变为—— [ 123456…]

3358 www.Sina.com/: [ 123456 ]-woshijiqiren

声学模型:wo——我,巢…; shi——是时候…; ji——及机械…; 其、期、器…; ren——人…

字典:我: 0.0786,是的: 0.0546,我: 0.0898,机器: 0.0967,机器人: 0.6785;

语言模型:我是机器人。

3、深度学习,例如,在DNN-HMM、端到端深度学习模型中,从DNN到RNN、CNN、LSTM、GRU、TDNN、端到端深度学习模型二、端到端语音识别的传统机器学习往往包含多个独立的模块。 以NLP问题为例,——包括分词、标注、句法分析、语义等部分。 每个模块的输出好坏影响以下结果,而影响整个培训结果的不是端到端的; 另一方面,在E2E中只分为输入侧的声音特征和输出侧的文本信息。 输入一个RNN产生所需的文本信息(该步骤类似于传感器嵌入式计算),然后使用另一RNN从该向量解码所需的文本信息; 第一个进程称为编码,第二个进程称为解码。 不需要对整个模型进行字对齐,不需要其他语言模型。 这就是端到端; E2E将传统语音识别系统的——发音词典、声学模型、语言模型三大部分融合到一个E2E模型中,直接实现输入语音的文本化; 欧洲能源公司

oder-Decoder 模型虽然在结构上很简单且大部分序列到序列的预测问题,都可以使用该模型,这个序列甚至没有必要是语音,图像或者文字同样适用。

E2E模型通常包含以下的具体模型:

CTC:主要负责声学模型的训练(补充,引用微软亚洲研究院的资料,CTC是最早的端到端ASR模型);RNN-T:为了联合优化声学模型与语言模型,由于RNN-T是针对每帧输入特征进行预测输出,即不用等语音全部说完再出结果,因此可应用于流识别,特别是在嵌入式设备。Attention:主要负责声学部分训练;Transformer:并行计算的特征提取器(主要可用于提取声学特征)。

由于接下来的ESPNet模型中,主要使用了CTC和Attention来进行训练和解码,所以我会主要介绍这两部分:

1、CTC(连接时序分类) CTC算法全称叫:Connectionist temporal classification。hxdpw,是用来解决时序类数据的分类问题。在训练声学模型的时候,能够自动对齐输出标签和输入序列,不再像DNN-HMM模型那样需要对齐标注。

标注对齐与传统声学模型训练:

传统语音识别的声学模型训练,对于每一帧,需要知道对应的label才能进行有效的训练。而且,在训练数据之前需要做语音对齐的预处理,而对齐的过程需要进行反复多次的迭代,来确保对齐更准确,是一个比较耗时的工作;不对数据进行调整处理,那就意味着不能用一些简单方法进行训练,所以必须进行标注对齐操作;举例什么是对齐标注:如果我的发音为“你好”,第1,2,3,4帧对应n的发音,第5,6,7帧对应i的音素,第8,9帧对应h的音素,第10,11帧对应a的音素,第12帧对应o的音素。如图所示:

使用CTC训练声学模型:

与传统的声学模型相比,CTC可让网络自动学会对齐,适合语音识别和书写识别等任务;至于有关于CTC具体的原理,毕竟本文是介绍ESPNet的文章,同时CTC中涉及损失函数、前向后向算法等大量数学内容。篇幅有限,我在这里就不阐述了。

总而言之,CTC最核心的特点是

CTC中的前向后向算法可以令输出序列和输入序列自动按时间顺序对齐;但缺点是,为了提高效率,CTC做出了重要的独立性假设——不同帧的网络输出有条件地独立。同时从CTC模型中获得良好的性能,往往还需要使用外部语言模型;它和接下来介绍的Attention模型各有优点,最终会相互结合,并被ESPNet所使用。

2、Attention(注意力机制)

在介绍Attention之前,要简单介绍一下Encoder-Decoder,它是 NLP 领域里的一种模型框架(而不是特质某一类算法/模型),被广泛用于机器翻译、语音识别等领域。

Encoder是将输入的音频,转化为向量,方便之后的数学计算;Decoder是将数学化的数据,最终输出为我们最终的ASR目标——文字。

Attention模型:

而Attention 模型的特点是 Eecoder 不再将整个输入序列编码为固定长度的中间向量 ,而是编码成多个向量(或者说一个向量的序列),并为不同的向量根据实际需要赋予不同的权重,以此来影响输出结果;当然,以上Encoder和Decoder是为了引出Attention,Attention本身并不一定要在 Encoder-Decoder 框架下使用的,他是可以脱离 Encoder-Decoder 框架的。

3、Attention与CTC 首先这两个模型负责的都是声学部分的训练,和语言模型没有关系;相比于CTC模型,Attention模型的对齐关系没有先后顺序的限制,完全靠数据驱动得到;因此CTC和Attention模型各有优势,可把两者结合来,构建Hybrid CTC/Attention模型,采用多任务学习,通过CTC避免对齐关系过于随机,以加快训练流程。 三、ESPNet

介绍了很多基础知识,终于要讲到今天的正题——ESPNet了:

ESPNet是一套基于E2E的开源工具包,可进行语音识别等任务。从另一个角度来说,ESPNet和HTK、Kaldi是一个性质的东西,都是开源的NLP工具;引用论文作者的话:ESPnet[1]是基于一个基于Attention的编码器-解码器网络,另包含部分CTC组件;个人理解:在ESPNet出现之前,已经出现了CTC、Transformer等端到端ASR模型,ESPNet以这两种模型为核心,将这两个模型串了起来,利用二者优点,并外加了Kaldi等数据准备、特征提取的工具,最终封装成一个ASR的工具包,命名为ESPNet。 1、ESPNet 架构

ESPNet中使用了ATT+CTC的架构,其可分为两大部分[2]:

1、Shared encoder(共享编码器):

包括了VGG卷积网络和BLSTM(双向长短时记忆网络)层,来完成语音到向量的转化。

2、Joint Decoder(联合解码器):

联合解码器实现向量到最终文本结果的输出;联合解码器包括CTC(负责标签和序列的自动对齐)、Attention(为不同序列赋予不同权重)和RNN-LM(语言模型,生成最优字词句);其中CTC和Attention二者共同使用一个Loss来使模型收敛,最终的损失函数LossMTL为CTC损失函数和Attention损失函数的加权求和;联合解码中,使用one-pass beam search(剪枝搜索)方法来消除不规则的序列与标签的对齐。

2、ESPNet 实现ASR的具体流程

ESPNet实现ASR包含以下流程:

数据准备:下载数据与解压缩数据;

特征提取:使用Kaldi(Kaldi也是个开源ASR工具)来提取语音特征,输出为80维的FBank特征,加上3维的pitch特征,总共83维。然后进行均值归一化,让网络更容易对语音特征进行学习;

转换数据格式:将中间数据转化为JSON格式;

语言模型的训练:语言模型使用的RNN-LM模型,其中RNN-LM训练有无字的字符序列水平知识。尽管注意解码器暗含像等式中一样包含语言模型。 RNN-LM概率用于与解码器网络一起预测输出标签。基于注意力的解码器会先学会使用LM。此外,RNN-LM可以与编码器一起训练解码器网络

声学模型的训练:使用字典、训练集和测试集,基于CTC模型、Attention的架构和Transformer的解码器进行声学部分的训练;

识别与打分:联合Transformer模型、CTC模型和RNN语言模型进行打分:


参考文献

[1] xrpdjb Watanabe, Takaaki Hori, Shigeki Karita, Tomoki Hayashi, Jiro Nishitoba, Yuya Unno, Nelson Enrique Yalta Soplin, Jahn Heymann, Matthew Wiesner, Nanxin Chen, Adithya Renduchintala, and Tsubasa Ochiai, “ESPnet: End-to-End Speech Processing Toolkit,” Proc. Interspeech’18, pp. 2207-2211 (2018)
[2] Suyoun Kim, Takaaki Hori, and xrpdjb Watanabe, “Joint CTC-attention based end-to-end speech recognition using multi-task learning,” Proc. ICASSP’17, pp. 4835–4839 (2017)
[3]《语音识别:原理与应用》 厦门大学智能语音实验室
[4]《语音识别》,无私的寒风,pgdddp著,出版社:北京:电子工业出版社
[5] https://github.com/espnet/espnet(ESPNet的gitHub首页)
[6] https://www.msra.cn/zh-cn/news/features/e2e-asr-paper-list(微软亚洲研究院)
[7] 什么是端到端(end2end)的学习? https://blog.csdn.net/alawaka2018/article/details/80388808
[8] xrpdjb Watanabe, Takaaki Hori, Suyoun Kim, John R. Hershey and Tomoki Hayashi, “Hybrid CTC/Attention Architecture for End-to-End Speech Recognition,” IEEE Journal of Selected Topics in Signal Processing, vol. 11, no. 8, pp. 1240-1253, Dec. 2017

esp8266串口调试,stm32通过esp8266温度