2017-10-20 14:45:35 weixin_34273481 阅读数 108
  • 2019Python全套视频教程

    2019千锋好程序员全新Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。 您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】

    14073 人正在学习 去看看 千锋

语音识别技术是人机交互技术的重要组成部分,而语音识别中的声学模型是语音识别技术中的核心所在,堪称重中之重。阿里巴巴iDST智能语音交互团队最新的LFR-DFSMN模型相对于之前的LFR-LCBLSTM模型可以达到训练加速3倍、识别加速2倍、识别错误率降低20%和最终模型大小压缩50%的效果,实现了语音识别的迭代速度、识别成本、服务质量的全面提升。

一、语音识别背景介绍  

语音识别技术一直都是人机交互技术的重要组成部分。有了语音识别技术,机器就可以像人类一样听懂说话,进而能够思考、理解和反馈。近几年随着深度学习技术的使用,基于深度神经网络的语音识别系统性能获得了极大的提升,开始走向实用化。基于语音识别的语音输入、语音转写、语音检索和语音翻译等技术得到了广泛的应用。阿里巴巴iDST智能语音交互团队一直以来也致力于语音识别技术的研究,同时注重技术的产品落地,在工业界大规模的问题上将技术真正发扬光大去解决实际的问题。

2016年年初iDST就在工业界第一次上线了基于Latency Controlled-BLSTM-DNN hybrid的语音识别系统,这也是BLSTM模型在工业界第一次进行实时语音识别服务。相对于早期基于DNN的声学模型,以及现在工业界大规模采用的基于LSTM的声学模型,iDST的这种声学模型既保持了BLSTM声学模型的高准确率的优点,又通过Latency Control设计避免了BLSTM声学模型带来的高延时的缺点,可谓是“一举两得(更多阅读请查阅之前的分享博客[1])。2016年底,通过结合Lower Frame Rate技术,iDST智能语音交互团队进一步优化了该声学模型,一举将解码时间加速了三倍以上,通俗点说就是把语音识别服务成本降低了三倍以上,为语音识别技术走入各行各业成为基础设施打下坚实基础。在刚刚结束的云栖大会上,提到了iDST智能语音交互团队关于语音识别声学模型的一个最新的技术进展,即LFR-DFSMN(Lower Frame Rate-Deep Feedforward Sequential Memory Networks)。本文将介绍这一声学模型的研究背景,以及我们的具体实现工作。

二、语音识别声学模型回顾                                                                                            

463dd42c8f99b5f1c088862f0ae1999777b55ae0

图 1. 基于DNN-HMM的语音识别系统框图


目前主流的语音识别系统普遍采用基于深度神经网络和隐马尔可夫(Deep Neural Networks-Hidden Markov Model, DNN-HMM)的声学模型,其模型结构如图 1所示。声学模型的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如 PLP, MFCC 和 FBK等。而模型的输出⼀般采用不同粒度的声学建模单元,例如单音素 (mono-phone)、单音素状态、绑定的音素状态 (tri-phone state) 等。从输入到输出之间可以采用不同的神经网络结构,将输入的声学特征映射得到不同输出建模单元的后验概率,然后再结合HMM进行解码得到最终的识别结果。

最早采用的网络结构是前馈全连接神经网路(Feedforward Fully-connected Neural Networks, FNN)。FNN实现固定输入到固定输出的一对一映射,其存在的缺陷是没法有效利用语音信号内在的长时相关性信息。一种改进的方案是采用基于长短时记忆单元(Long-Short Term Memory,LSTM)的循环神经网络(Recurrent Neural Networks,RNN)。LSTM-RNN通过隐层的循环反馈连接,可以将历史信息存储在隐层的节点中,从而可以有效的利用语音信号的长时相关性。进一步的通过使用双向循环神经网络(Bidirectional RNN),可以有效的利用语音信号历史以及未来的信息,更有利于语音的声学建模。基于循环神经网络的语音声学模型相比于前馈全连接神经网络可以获得显著的性能提升。但是循环神经网络相比于前馈全连接神经网络模型更加复杂,往往包含更多的参数,这会导致模型的训练以及测试都需要更多的计算资源。另外基于双向循环神经网络的语音声学模型,会面临很大的时延问题,对于实时的语音识别任务不适用。现有的一些改进的模型例如基于时延可控的双向长短时记忆单元(Latency Controlled LSTM,LCBLSTM )[2-3],以及前馈序列记忆神经网络(Feedforward Sequential Memory Networks,FSMN)[3-5]。去年我们在工业界第一个上线了基于LCBLSTM的语音识别声学模型。配合阿里的大规模计算平台和大数据,采用多机多卡、16bit量化等训练和优化方法进行声学模型建模,取得了相比于FNN模型约17-24%的相对识别错误率下降。

三、FSMN模型的前世今生

1.     FSMN模型

 e1524ba8ff9f220352418b922ff5803f155993ee 

2. FSMN模型结构以及和RNN的对比


FSMN是近期被提出的一种网络结构,通过在FNN的隐层添加一些可学习的记忆模块,从而可以有效的对语音的长时相关性进行建模。FSMN相比于LCBLSTM不仅可以更加方便的控制时延,而且往往也能获得更好的性能,需要的计算资源也更少。但是标准的FSMN很难训练非常深的结构,会由于梯度消失问题导致训练效果不好。而深层结构的模型目前在很多领域被证明具有更强的建模能力。因而针对此我们提出了一种改进的FSMN模型,称之为深层的FSMN(Deep-FSMN, DFSMN)。进一步的我们结合LFR(lower frame rate)技术构建了一种高效的实时语音识别声学模型,相比于去年我们上线的LCBLSTM声学模型可以获得超过20%的相对性能提升,同时可以获得2-3倍的训练以及解码的加速,可以显著的减少我们的系统实际应用时所需要的计算资源。

2.     FSMN到cFSMN的发展历程

最早提出的FSMN的模型[3]结构如图 2(a)所示,其本质上是一个前馈全连接神经网络,通过在隐层旁添加一些记忆模块(memory block)来对周边的上下文信息进行建模,从而使得模型可以对时序信号的长时相关性进行建模。记忆模块采用如图 2(b)所示的抽头延迟结构将当前时刻以及之前 N 个时刻的隐层输出通过一组系数编码得到一个固定的表达。FSMN的提出是受到数字信号处理中滤波器设计理论的启发:任何无限响应冲击(Infinite Impulse Response, IIR)滤波器可以采用高阶的有限冲击响应(Finite Impulse Response, FIR)滤波器进行近似。从滤波器的角度出发,如图 2(c)所示的RNN模型的循环层就可以看作如图 2(d)的一阶IIR滤波器。而FSMN采用的采用如图 2(b)所示的记忆模块可以看作是一个高阶的FIR滤波器。从而FSMN也可以像RNN一样有效的对信号的长时相关性进行建模,同时由于FIR滤波器相比于IIR滤波器更加稳定,因而FSMN相比于RNN训练上会更加简单和稳定。

根据记忆模块编码系数的选择,可以分为:1)标量FSMN(sFSMN);2)矢量FSMN(vFSMN)。sFSMN 和 vFSMN 顾名思义就是分别使用标量和矢量作为记忆模块的编码系数。sFSMN和vFSMN记忆模块的表达分别如下公式:

b4ed4bebbfda36e36d8370610707f7740c327476

以上的FSMN只考虑了历史信息对当前时刻的影响,我们可以称之为单向的FSMN。当我们同时考虑历史信息以及未来信息对当前时刻的影响时,我们可以将单向的FSMN进行扩展得到双向的FSMN。双向的sFSMN和vFSMN记忆模块的编码公式如下:

a3c39b5cd1987d7b6dd6d27955756b1385ad0f0f

这里N1和N2分别代表回看(look-back)的阶数和向前看(look-ahead)的阶数。我们可以通过增大阶数,也可以通过在多个隐层添加记忆模块来增强FSMN对长时相关性的建模能力。

4df9c3503840ad148b28e3afbd0bd2b21f1c07da

图 3. cFSMN结构框图


FSMN相比于FNN,需要将记忆模块的输出作为下一个隐层的额外输入,这样就会引入额外的模型参数。隐层包含的节点越多,则引入的参数越多。研究[4]结合矩阵低秩分解(Low-rank matrix factorization)的思路,提出了一种改进的FSMN结构,称之为简洁的FSMN(Compact FSMN,cFSMN)。如图3所示,是一个第l个隐层包含记忆模块的cFSMN的结构框图。对于cFSMN,通过在网络的隐层后添加一个低维度的线性投影层,并且将记忆模块添加在这些线性投影层上。进一步的,cFSMN对记忆模块的编码公式进行了一些改变,通过将当前时刻的输出显式的添加到记忆模块的表达中,从而只需要将记忆模块的表达作为下一层的输入。这样可以有效的减少模型的参数量,加快网络的训练。具体的,单向和双向的cFSMN记忆模块的公式表达分别如下:

31345763ac5b86423805c57ad69386f9d8d87081

四、LFR-DFSMN声学模型

1.     Deep-FSMN (DFSMN)网络结构

d55827e272b223c6d40bd6e5f52cdfbd42fcfbc2
如图 4是我们进一步提出的Deep-FSMN(DFSMN)的网络结构框图,其中左边第一个方框代表输入层,右边最后一个方框代表输出层。我们通过在cFSMN的记忆模块(红色框框表示)之间添加跳转连接(skip connection),从而使得低层记忆模块的输出会被直接累加到高层记忆模块里。这样在训练过程中,高层记忆模块的梯度会直接赋值给低层的记忆模块,从而可以克服由于网络的深度造成的梯度消失问题,使得可以稳定的训练深层的网络。我们对记忆模块的表达也进行了一些修改,通过借鉴扩张(dilation)卷积[6]的思路,在记忆模块中引入一些步幅(stride)因子,具体的计算公式如下:
951d476659e8c74093c2dab4d21506a2f13a6d7e
对于实时的语音识别系统我们可以通过灵活的设置未来阶数来控制模型的时延,在极端情况下,当我们将每个记忆模块的未来阶数都设置为0,则我们可以实现无时延的一个声学模型。对于一些任务,我们可以忍受一定的时延,我们可以设置小一些的未来阶数。相比于之前的cFSMN,我们提出的DFSMN优势在于,通过跳转连接可以训练很深的网络。对于原来的cFSMN,由于每个隐层已经通过矩阵的低秩分解拆分成了两层的结构,这样对于一个包含4层cFSMN层以及两个DNN层的网络,总共包含的层数将达到13层,从而采用更多的cFSMN层,会使得层数更多而使得训练出现梯度消失问题,导致训练的不稳定性。我们提出的DFSMN通过跳转连接避免了深层网络的梯度消失问题,使得训练深层的网络变得稳定。需要说明的是,这里的跳转连接不仅可以加到相邻层之间,也可以加到不相邻层之间。跳转连接本身可以是线性变换,也可以是非线性变换。具体的实验我们可以实现训练包含数十层的DFSMN网络,并且相比于cFSMN可以获得显著的性能提升。从最初的FSMN到cFSMN不仅可以有效的减少模型的参数,而且可以获得更好的性能[4]。进一步的在cFSMN的基础上,我们提出的DFSMN,可以更加显著的提升模型的性能。如下表是在一个2000小时的英文任务上基于BLSTM,cFSMN,DFSMN的声学模型性能对比。从下表中可以看到,在2000小时这样的任务上,DFSMN模型可以获得比BLSTM声学模型相对14%的错误率降低,显著提高了声学模型的性能。

Model

BLSTM

cFSMN

DFSMN

WER%

10.9

10.8

9.4


2.     基于LFR-DFSMN的语音识别声学模型

80606de5ad682b76cb6414cc3a1e612ef5bcb73b

5. LFR-DFSMN声学模型结构框图

目前的声学模型,输入的是每帧语音信号提取的声学特征,每帧语音的时长通常为10ms,对于每个输入的语音帧信号会有相对应的一个输出目标。最近有研究提出一种低帧率(Low Frame Rate,LFR)[7]建模方案:通过将相邻时刻的语音帧进行绑定作为输入,去预测这些语音帧的目标输出得到的一个平均输出目标。具体实验中可以实现三帧(或更多帧)拼接而不损失模型的性能。从而可以将输入和输出减少到原来的三分之一甚至更多,可以极大的提升语音识别系统服务时声学得分的计算以及解码的效率。我们结合LFR和以上提出的DFSMN,构建了如图 5的基于LFR-DFSMN的语音识别声学模型,经过多组实验我们最终确定了采用一个包含10层cFSMN层+2层DNN的DFSMN作为声学模型,输入输出则采用LFR,将帧率降低到原来的三分之一。识别结果和去年我们上线的最好的LCBLSTM基线比较如下表所示。通过结合LFR技术,我们可以获得三倍的识别加速。从上表中可以看到,在实际工业规模应用上,LFR-DFSMN模型比LFR-LCBLSTM模型可以获得20%的错误率下降,展示了对大规模数据更好的建模特性。

CER%

产品线A

产品线B

LFR-LCBLSTM

18.92

10.21

LFR-DFSMN

15.00(+20.72%)

8.04(21.25%) 


五、基于多机多卡的大数据声学模型训练

实际的语音识别服务通常会面对非常复杂的语音数据,语音识别声学模型一定要尽可能的覆盖各种可能的场景,包括各种对话、各种声道、各种噪音甚至各种口音,这就意味着海量的数据。而如何应用海量数据快速的训练声学模型并上线服务,就直接关系到业务相应速度。我们利用阿里的Max-Compute计算平台和多机多卡并行训练工具,在使用8机16GPU卡、训练数据为5000小时的情况下,关于LFR-DFSMN声学模型和LFR-LCBLSTM的训练速度如下表:

 

处理一个epoch需要的时间

LFR-LCBLSTM

10.8小时

LFR-DFSMN

3.4小时

相比于基线LCBLSTM模型,每个epoch DFSMN可以获得3倍的训练速度提升。在2万小时的数据量上训练LFR-DFSMN,模型收敛一般只需要3-4个epoch,因此在16GPU卡的情况下,我们可以在2天左右完成2万小时数据量的LFR-DFSMN声学模型的训练。

六、解码延时、识别速度和模型大小

设计更为实用化的语音识别系统,我们不仅需要尽可能的提升系统的识别性能,而且需要考虑系统的实时性,这样才能给用户提供更好的体验。此外在实际应用中我们还需要考虑服务成本,因而对于语音识别系统的功耗也有一定的要求。传统的FNN系统,需要使用拼帧技术,解码延迟通常在5-10帧,大约50-100ms。而去年上线的LCBLSTM系统,解决了BLSTM的整句延迟的问题,最终可以将延时控制在20帧左右,大约200ms。对于一些对延时有更高要求的线上任务,还可以在少量损失识别性能的情况下(0.2%-0.3%绝对值左右),将延迟控制在100ms,完全可以满足各类任务的需求。LCBLSTM相比于最好的FNN可以获得超过20%的相对性能提升,但是相同CPU上识别速度变慢(即功耗高),这主要是由模型的复杂度导致。

我们最新的LFR-DFSMN,通过LFR技术可以将识别速度加速3倍以上,进一步的DFSMN相比于LCBLSTM在模型复杂度上可以再降低3倍左右。如下表是我们在一个测试集上统计的不同的模型需要的识别时间,时间越短则表示我们所需要的计算功耗越低:

模型

整个测试集识别所需要的时间

LCBLSTM

956

DFSMN

377

LFR-LCBLSTM

339

LFR-DFSMN

142

关于LFR-DFSMN的解码时延问题,我们可以通过减小记忆模块滤波器的向未来看的阶数来减小时延。具体实验中我们验证了不同的配置,当我们将LFR-DFSMN的延时控制在5-10帧时,大致只损失相对3%的性能。 此外,相对于复杂的LFR-LCBLSTM模型,LFR-DFSMN模型具有模型精简的特点,虽然有10层DFSMN,但整体模型大小只有LFR-LCBLSTM模型的一半,模型大小压缩了50%。


参考文献

  • [1] https://yq.aliyun.com/articles/2308?spm=5176.100244.teamhomeleft.53.ifFpZn
  • [2] Yu Zhang, Guoguo Chen, Dong Yu, and Kaisheng Yao, ng Yao,  long short term memory RNNs for distant speech recognition, in IEEE International Conference of Acoustics,Speech and Signal Processing (ICASSP), 2016, pp. 5755-5759.
  • [3] Xue S, Yan Z. Improving latency-controlled BLSTM acoustic models for online speech recognition[C], Acoustics, Speech and Signal        Processing (ICASSP), 2016 IEEE International Conference on. IEEE. 2017.
  • [4] Zhang S, Liu C, Jiang H, et al. Feedforward sequential memory networks: A new structure to learn long-term dependency[J]. arXiv preprint arXiv:1512.08301, 2015.
  • [5] Zhang S, Jiang H, Xiong S, et al. Compact Feedforward Sequential Memory Networks for Large Vocabulary Continuous Speech         Recognition[C], INTERSPEECH. 2016: 3389-3393.
  • [6] Zhang S, Liu C, Jiang H, et al. Non-recurrent Neural Structure for Long-Term Dependency[J]. IEEE/ACM Transactions on Audio, Speech,  and Language Processing, 2017, 25(4): 871-884.
  • [7] Oord A, Dieleman S, Zen H, et al. Wavenet: A generative model for raw audio[J]. arXiv preprint arXiv:1609.03499, 2016.
  • [8] Pundak G, Sainath T N. Lower Frame Rate Neural Network Acoustic Models[C],INTERSPEECH. 2016: 22-26.

p[[

2018-06-12 10:55:06 lashawn0210 阅读数 303
  • 2019Python全套视频教程

    2019千锋好程序员全新Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。 您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】

    14073 人正在学习 去看看 千锋

职位名称:

语音识别声学模型

工作职责:
1. 负责语音识别、声纹识别声学模型核心算法的研发;
2. 跟进业务迭代和优化声学模型的设计,跟踪国内外最前沿的研究;
3. 对声学模型训练的pipeline进行优化和升级;
工作要求:
1. 一年以上声学模型训练或者设计的经验;
2. 熟练掌握常用语音声学模型,熟悉KALDI训练工具,熟悉或者使用过Tensorflow、Torch等工具;
3. 在国际上语音相关会议或者期刊发表过文章的优先考虑;

各位技术大侠,欢迎随时咨询和私信联系

qq:1186758459

2004-12-13 13:48:00 compiler 阅读数 1981
  • 2019Python全套视频教程

    2019千锋好程序员全新Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。 您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】

    14073 人正在学习 去看看 千锋

隐马尔柯夫模型(HMM)方法现已成为语音识别的主流技术,该方法在语音识别时识
别速度较快,并且有较高的识别率。在HMM中,又分为离散HMM(DHMM)和连续
HMM(CHMM)。由于CHMM直接以帧语音特征向量本身为观测序列,而不是像DH
MM那样先将语音特征向量经矢量量化为观测符号,因此CHMM有优于DHMM的识
别精度。然而,由于CHMM参数多,传统的训练方法采用迭代法,先假设初始值,
用语音信号的观测序列对该初始值进行训练,也即按照一定的方法对这些估值进行
提纯,对提纯了的估值要接着进一步的提纯,直到再没有改进的余地,达到某个局
部最佳值为止。传统的训练方法不保证训练得到全域最优解,而且训练所需要的时
间非常巨大。本文着重研究了基因算法[4,5],并按照CHMM的特点构造染色体,
用基因算法对CHMM进行训练。基因算法自身的特点使得训练结果趋向于全域最优
解。同时,由于只需要用Viterbi算法计算语音的观测序列对某一CHMM模型的相关
概率,用作基因算法的适应函数,故该算法可以提高CHMM的训练速度。


1算法的理论基础


基因是生物学概念,之所以将基因算法引入HMM的训练中,是因为HMM的训练过
程实际上是一个在特定范围内将HMM模型进行一次次的迭代提纯,选择最优模型
的过程。这和自然界物种间互相竞争、优胜劣汰的现象是相似的。
生物的遗传基因包含在染色体中,染色体总是成对的出现,父代生物的染色体各
自复制自己的基因传给子代,经过一定的交叉,基因重组形成下一代生物的染色
体,来自父代的基因特性能够在子代上体现并保持下去。而在遗传的同时,又有
一定的基因突变。基因突变造成生物体突变现象,打破了旧有的平衡,突破了旧
的基因的活动区域,对物种的进化有很大的影响。生物进化的动力来自于遗传和
选择,不论是正常的基因重新组合,还是突发的无方向性的基因突变,都可以控
制对子代基因中有害淘汰,而只将有益的保留下来,使生物向好的方向进化。将
较优的基因保留下来,一代又一代不断选择的结果使子代的基因收敛于某个单一
的基因形式,这个基因型就是在特定优化问题的最优解。从数学的角度解释,可
以简单地认为,基因重组使子代基因趋向于局部最优解,而基因突变使子代基因
突破局部的范围,经过很多代的遗传和选择,达到全域最优解。
传统的CHMM训练算法的实质是选择一个CHMM模型为初始值,也即选择初始状态
向量π。状态转移矩阵A和每个状态的输出概率密度函数bj(o)=∑cjk N(o,μjk,Ujk),
将其数值与观测序列一起运算,求出一个新的、优于旧CHMM的估计模型,反复迭
代,直到局部最优解。可以采用几个不同的初始值,希望能够到达更好的最佳值。
将基因算法引入CHMM的训练,就是基于将CHMM看作在特定域的有约束的寻找最
佳匹配点的问题。CHMM的状态转移矩阵A和输出概率密度函数中的混合系数c矩阵
的每一行向量之和为1.0,可看作是优化问题的约束条件。如果在选取CHMM的初始
值时,不是选取一个初始值,而是选取一组分布于不同区域的初始值,以某一种特
定的训练方法,使其趋向于全域最优解,那么最终也同样可以完成对CHMM的训练。


2基因算法的实现


在自然界中,生物进化的动力来自于遗传和选择。在基因算法中,主要的操作就
是模拟遗传的基因重组和基因突变,以及模拟自然选择的样本选择。
根据待优化问题的数学模型,定义适合函数F(ai)。其中ai是某一条染色体,则适
合函数F(ai)就是该染色体与目标函数的距离,或是判断该染色体优劣的依据。
对每一代基因,计算所有染色体的适合函数,进行排序选择一定数目较优秀的染
色体,作为生成下一代基因的父代样本。
自然界中染色体成对出现,交配时一对染色体分离、重组。图1为多点交叉重组的
示意图。多点交叉在实现时,可以设定交叉概率门限为ρc。染色体的长度为L,
对于随机数0≤rj≤1 (j=1,2,…,L),如果rj≥ρc,那么下一个变量属于另一条
基因,否则下一个变量与前一个变量属于同一条基因。
图1多点交叉示例
Fig.1Multi points crossover
最佳基因是在一代一代的基因重组和基因突变中形成的,是在选择的作用下最适
应的个体。基因突变有利于从局部最佳处跳出,防止算法的过早收敛。设定突变
概率门限为ρm,对于随机数0≤rj≤1 (j=1,2,…,L),如果rj≤ρm,那么染色体中
第j个变量有突变现象发生;否则,复制原染色体的第j个变量。
下面给出基因算法的具体实现步骤:
(1) 产生随机数,组成最初的染色体p0=(a1,a2,…,aL)。其中ai为一条染色体,由数
学模型中所有的参数按某一特定的排列方式组成。
(2) 计算各条染色体的适合函数F(ai)。并选其适合函数F(ai)进行排序,设定门限,
选取新的父代染色体p′t。
(3) 以随机方式选取染色体交叉。
(4) 在自然界的生物进化过程中,基因变异是很重要的。由于某一两个元素的突
变,可能导致子基因比父基因有较大的适应能力。表现在基因算法中,染色体以
比较小的突变率进行小单位的变异。
(5) 计算各子代基因的适应函数,是否达到结束的条件,否则转到(2)进行下一步
的运算。


3基因算法训练CHMM


HMM是用一个有限状态系统作为语音特征参数的生成模型,每个状态能产生连续
的输出特征。HMM实际上是一个特征参数发生器,依据其产生的参数与观察到的
语音参数的比较,从而识别语音。在识别时的判决依据是HMM模型的生成概率。
在将基因算法引入CHMM训练的过程中,首先要解决的是染色体的构造问题。将
CHMM模型的所有参数排列成一串,构成染色体.对于语音识别,采用自左向右的
HMM模型,本文中为5状态自左向右只含一阶跳转的CHMM模型。CHMM模型中
参数由初始状态向量π,状态转移矩阵A和每个状态的输出概率密度函数组成。
向量π共含5个元素,在A矩阵中,共有元素5×5=25个,其中不为0的参数为12个。
较为复杂的是各状态的输出概率密度函数bj(o)=∑cjkN(o,μjk,Ujk)。其中:j代
表第j个状态;cjk为混合系数;N()为高斯函数;μjk为平均矢量;Ujk为协方差
矩阵。语音信号由微机Sound Blaster声霸卡录音采样获得,生成wav文件采样频
率为11.025 kHz.分析帧长为256点,每帧帧移为128点。采用10阶LPC倒谱,选取
bj(o)为5个高斯概率密度函数的混合。将向量π、短阵A和混合系数矩阵c的参数
共5+12+25=42个按行组成一串,形成染色体的前一部分,将平均矢量μ和协方差
矩阵U共5×5×(10+10×10)=2 750个参数按行组成一串,形成染色体的后一部分。
在CHMM模型中,染色体前一部分的行向量之和均为1。也就要求在产生染色体时,
需对其进行一定的控制。在生成每一代染色体时,对这一部分行向量所对应的每
一段染色体进行归一化,则可以满足CHMM的约束条件。
Viterbi算法在通常的CHMM语音识别中是作为识别算法的,换句话说,使观测序
列与CHMM模型经Viterbi算法的运算结果最大即为优化目标.基于这样的思想,基
因算法的适合函数为:所有该CHMM对应的观测序列用Viterbi算法求其观测概率
之和,运算结果越大,则该染色体越优秀。
在实验中染色体的前一部分依概率进行二点或多点交叉,而后一部分染色体只进
行多点交叉,多点交叉概率ρc=0.8。染色体前一段的基因突变概率ρm=0.1;而
对于染色体的后一部分,取ρm1=0.01,对应于以一个参数为单位发生基因突变;
ρm2=0.08,以行向量为单位发生基因突变。经基因交叉或基因突变后,对染色体
的前一部分需要进行各行向量的归一化处理。每一代基因的数目为300,从中选出
60条优秀的染色体作为新的父代基因,经基因重组和基因突变生成240条染色体,
共同组成新一代染色体。CHMM模型的训练问题已转化为求其对观测序列适应概
率最大值的问题,用基因算法求解。
表1语音识别系统测试结果
Tab.1Recognition rate of speech recognition system
0123456789
Ne1211312312
Nr49484949474948474948
R(%)98969898949896949896


4实验结果及讨论


实验在微机上完成,由3名实验者作小字库语音识别。实验中选取0~9十个数字
作为待识别语音,训练数据取自3人(A、B、C),训练时对每个字音A读40遍,B、
C各读30遍。表1列出了系统的识别能力测试结果。其中,对每个字音A、B各测试
20次,C测试10次。在表中,Nr、Ne分别代表正确、错误的次数,R%表示识别率。
由表1可见,总的平均识别率为96.6%。在同样的实验条件下,用传统的CHMM训练
方法,得到的识别率为93.0%,可见,用基因算法训练CHMM可在一定程度上提高
识别率。这是基因算法训练时收敛于全域最优点的缘故。
在实验中,达到以上的识别率,GA算法所用训练时间只是传统训练算法的1/5。这
是因为,传统的HMM训练方法中要以每一观测序列为训练单位进行大量迭代的矩阵
运算。在传统的HMM训练方法中,用某一观测序列进行训练时,首先需要计算对每
一时间点的前向递推概率αt(i)和后向递推概率βt(i),该过程是迭代进行的。而后求
出辅助概率函数γt(i,j),对应于状态i在t时间的第j个混合概率函数。最后还要经过大
量的矩阵运算才能分别求出所有的HMM模型参数。而在GA算法中,由于只需要匹配
概率,用Viterbi算法求出各观测序列对应匹配概率的log值相加即可,变乘法运算为
加法运算;同时,训练是批量进行的,GA算法需要更多的内存以储存一些中间值,
以存储量换取速度,因此,该算法可以节省训练时间。
参考文献
1Bahl L R, Jelinek F, Mercer R L. A maximum likelihood approach to cont inuous speech recognition. IEEE Trans on PAMI, 1983,5(2):179~190
2Bourlard H, Wellekens C J. Links between markov models and multilay er perceptrons. IEEE Trans on PAMI,1990,12(12):1167~1178
3Lee K F, Hon H W. Speekerindependent phone recognition using hidden markov models. IEEE Trans on ASSP,1990,37(11):1641~1648
4Hung S L, Adeli H. A parallel genetic/neural network learning algorith m for MIMD shared memory machines. IEEE Trans on Neural Networks,1994,5(6):900~ 909
5Maniezzo V. Genetic evolution of the topology and weight distribution of neural networks. IEEE Trans on Neural Networks,1994,5(1):39~53

2019-05-13 21:46:41 weixin_40820983 阅读数 234
  • 2019Python全套视频教程

    2019千锋好程序员全新Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。 您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】

    14073 人正在学习 去看看 千锋

开始看《深入浅出强化学习——原理入门》,由于时间有限,做个简要的笔记。

“深度学习如图像识别和语音识别解决的是感知问题,强化学习解决的是决策问题,人工智能的终极目标就是经过感知进行智能决策。”

1、区分有模型 无模型: 状态转移概率Pss'已知,是有模型的强化学习;

2、(有模型的强化学习)值函数是怎么来的:高斯赛德尔迭代,用前一次的值计算后一次的值,直到收敛!

以下是高斯赛德尔迭代求值函数内容:

 

 

 

 

 

2019-05-06 11:31:00 qq_42372980 阅读数 396
  • 2019Python全套视频教程

    2019千锋好程序员全新Python教程,深入浅出的讲解Python语言的基础语法,注重基本编程能力训练,深入解析面向对象思想,数据类型和变量、运算符、流程控制、函数、面向对象、模块和包、生成器和迭代器。 您观看课程学习后 免费入群领取【超全Python资料包+17本学习电子书】

    14073 人正在学习 去看看 千锋

0-Abstract

本文构建了有关语音识别的定向语音对抗样本,给定任意音频波形,可以产生99.9%相似的另一个音频波形,且可以转录为所选择的任何短语。作者将基于白盒迭代优化攻击应用于DeepSpeech模型(端到端语音识别),实验显示,它具有100%的成功率。

1-Introduction

1.1Existing work

当前对对抗样本的研究大多基于图像空间,包括图像分类、图像生成模型、图像分割、面部检测等,而在音频空间研究较少,其中最常见的是自动语音识别。其中最先进的定向语音识别攻击是一种名为Houdini的新型方法,它只能构建和语音对抗样本语音相似的短语

1.2Contributions

在本文中,作者通过攻击DeepSpeech模型证明了定向对抗样本攻击存在于音频空间。通过给定任意自然波形x,能够构造几乎听不见的扰动δ,但是x +δ被识别为任何期望的短语。由任意声波开始,通过把语音嵌入不被识别为语音的音频中,通过选择silence作为目标,可以实现隐藏音频到语音to文本系统中

2-Background

2.1Neural Network & Speech Recogniton

将音频视为N维向量x,每个元素xi是一个有符号的16位值,MFC将音频分为50帧每秒,并且将每帧映射到频域。

标准的神经网络分类模型采用一输入并在所有输出标签上产生一个概率密度输出,而语音to文本系统中,有指数级可能的标签,这是计算上不可行的。因此,语音识别系统通常使用递归神经网络,将音频声波映射到单个字符概率分布序列,而不是整个短语。

2.2Connectionist Temporal Classication

Connectionist Temporal Classication是在输入和输出序列之间的比对未知时训练序列到序列神经网络的方法。

X:输入域——单帧的输入

Y:范围(字母a-z,空格,ε)

f:神经网络  f:X^N-->[0,1]^(N·|Y|)以N帧x∈X的序列作为输入,并在每个帧的输出域上返回概率分布。

:xi∈X,其标签j属于Y的概率

p:代表一个短语,一系列的字符<pi>,其中pi属于Y

定义:

1)去除所有连续重复的字母

2)去除所有的ε

e.g. 序列 a a b ε ε b将被处理为 a b b

同时,我们可以得到

从而,

用于训练网络的损失函数是所需短语的负对数概率:

最后,为了将矢量y解码为短语p,我们搜索最适合y的短语p:

即找到一个p使Pr(p|y)最大。

而由于要运算C(x)需要搜索指数级的空间,它通常按照以下两种方式被估算:

(1)Greedy Decoding。它搜索最可能的对齐,并减少这个对齐从而获取转录的短语。

(2)Beam Search Decoding。它同时评估多个对齐的概率,然后选择最可能的短语p

2.3Adversarial Examples

对于任意一个x,它产生一个和x相似的x',但C(x)≠C(x')

2.4Targeted Adversarial Examples

定向对抗样本攻击是一种更有力的攻击方式:不仅x和x'的分类结果不同,神经网络还必须选择一个特定的标签(由对手确定的)给x'。

3-Audio Adversarial Examples

3.1Threat Model & Evaluation Benchmark

3.1.1Theat Model

给定音频波形x和目标转录y,我们的任务是构造另一个音频波形x'=x+δ,使得x和x'听起来相似,但实际上C(x')=y。只有当神经网络的输出和目标短语完全匹配才算成功。

在之前的研究中,我们假定了一个白盒测试,其对手完全了解它的模型和参数。在之后的研究中,我们尝试将攻击延展到黑盒攻击中。同时,我们假定对抗样本是被直接分类而没有引入任何噪声。

3.1.2Distortion Metric

应该如何量化引入扰动后的失真呢?

用分贝来测量失真:一个对数指标,用于测量音频样本的相对响度:

可以简化为:

因为引入的扰动比原始信号更安静,所以失真是负数,其值越小表示越安静的失真。

3.1.3Evaluation Benchmark

为了评估攻击的有效性,作者在Mozilla Common Voice数据集的前100个测试实例上构建了有针对性的音频对抗样本。对于每个样本,针对10个不同的不正确转录,随机选择,使得(a)转录不正确,以及(b)理论上可以达到该目标。

3.2An Initial Formulation

这里将构建对抗性样本的问题表达为一个优化问题:给出一个自然的例子x和任何目标短语t,我们只需要求得一个最小的dBx(δ),使得:

在之前的工作中,已经将该式转化为,其损失函数被构造称  l(x'.t)≤0 <==>C(x')=t,参数c协调了对抗性和保持接近原始样本的相对重要性。

两个问题:

(1)使用CTC损失函数:l(x',t)=CTC-Loss(x',t)。对于这个损失函数,某个方向可能成立(  l(x',t)≤0 => C(x')=t  )但反之不然。但这也意味着结果也是对抗性的,只是可能不是最小的扰动。

(2)当使用l∞ 作为失真的尺度时,优化过程通常在结果附近摆动而不集中。我们将转化为求,其中τ足够大。当获得了部分结果δ*后,减小τ,恢复最小化,重复上述过程知道找不到结果。

最后,通过使用Adam 优化器,设置学习率为10,最大迭代次数为5000,解决了最小化问题。

3.2.1Evaluation

我们能够生成有定向对抗样本,每个源 - 目标对成功100%,平均扰动为-31dB,它大致是在一个安静环境下周围的声音和一个人说话的声音的对比。

同时,目标短语越长,定向的难度越大:每个额外的字符大约会增加0.1dB的扰动;源短语越长,越容易成为给定转录的目标。这两者之间可以相互抵消。

3.3Improved Loss Function

以下内容针对于Greedy decoding:

为了最小化CTC损失,优化器使转录短语的每个方面都更类似于目标短语。尽管已经具有该标签,但是将物品分类为更强烈的物品作为所需标签的效果导致设计更有效的损失函数:

一旦y的概率大于任何其他东西,优化器就不再通过使用该标签对其进行更强烈的分类来减少损失。

将该损失函数应用到音频域:

由于某些字符转录识别困难,为了使它们也被转录,选择一个足够大的c,它必须比所需的更大。

因此将上式转换为

其中,Li(x,πi) = l(f(x)^i,πi)

为了计算这个损失函数,需要选择一个对齐π ,采用以下两步攻击:

(1)x0:使用CTC损失的对抗样本。提取由x0引起的对齐π (通过运算π = arg maxi f(x0)^i)用于第二步

(2)固定对齐π ,使用上述改进了的损失函数产生一个较小失真的对抗样本x',采用梯度下降的方式,δ=x0-x进行运算。

3.3.1Evaluation

生成的对抗性示例现在只能保证对Greedy decoder有效

(视觉无法区分)

3.4Audio Information Density

3.5Starting from Non-Speech

我们不仅可以将一个人的语音转录为不正确的文本,也能将任意非语音音频样本转换为任意目标短语。

为了评估这种攻击的有效性,采用来自不包含语音的古典音乐的五秒剪辑和Common Voice数据集中包含的目标短语。但这种攻击需要更多的计算工作(我们执行20,000次迭代下降迭代),总失真略大,平均为-20dB

3.6Targeting Silence

增加DeepSpeech无法转录的对抗性噪声来隐藏语音。

虽然执行此攻击而不进行修改(仅通过空短语)是有效的,但如果我们将silence定义为仅重复空格字符的任意长度序列,则可以略微改进。

为了获取这个silence,我们让:

我们发现定位silence比定位目标短语更容易:当失真小于原始信号低于-45dB,我们可以将任何短语变为静音。这也解释了为什么音频越长,构建对抗样本更容易:长的短语包括耕读的声音,对手可以使不需要的声音silence,从而获得与目标几乎匹配的子序列,而短的则需要合成以前不存在的新字符。

4-Audio Adversarial Example Properties

4.1 Evaluating Single-Step Methods

Goodfellow等人认为,由于神经网络的局部线性特性,对抗性的例子在很大程度上是有效的。

FGSM证明它在图像空间是适用的。FGSM在损失函数的梯度方向上采用:给定具有损失函数l的网络F,通过计算对抗性样本。对于图像中的每个像素,此攻击询问“我们应该在哪个方向上修改此像素以最大限度地减少损失?”然后同时在每个像素的该方向上迈出一小步。此攻击可以直接应用于音频,更改单个样本而不是像素。

然而,由于计算MFCC时引入的固有非线性,以及多轮LSTM的深度,在输出中引入了很大程度的非线性,我们发现这种单步攻击的方式在音频对抗样本领域却并不是高效的。

在图3中,我们比较了在已知对抗性示例的方向上行进时CTC损失的值与在快速梯度符号方向上行进相比的值。虽然最初(靠近源音频样本),快速梯度方向在减少损失函数方面更有效,但它快速平稳并且之后不会减小。另一方面,使用基于迭代优化的攻击找到最终导致对抗性示例的方向。 (只有当CTC损失低于10时,该短语才能正确转录。)

4.2Robustnss of Adversarial Examples

构建对各种形式的噪声具有鲁棒性的对抗样本是可能的。

4.2.1Robustness to pointwise noise

给定对抗样本x0,将逐点随机噪声σ添加到x0并返回C(x +σ)将导致x0失去其对抗性标记,即使失真σ足够小以允许正常示例保留其分类。

我们生成一个高置信度的对抗性样本x0,并利用Expectation over Transforms生成一个对抗这个合成-30dB噪声的对抗性样本,当我们这样做时,对抗性扰动增加大约10dB。

4.2.2Robustness to MP3 compression

我们利用straight-through estimator来构建对MP3压缩具有鲁棒性的对抗样本。假设MP3压缩的梯度是恒等函数,通过计算CTC-Loss的梯度,我们生成对抗样本x0,使得C(MP3(x 0))被分类为目标标签。虽然单个梯度步骤可能不正确,但总体而言,梯度平均值变得有用。这使我们能够生成具有大约15dB较大失真的对抗性示例,这些失真对于MP3压缩仍然很稳健。

5-Open Questions

  • Can these attacks be played over-the-air?

本文中构建的音频对抗性示例在通过空中播放后不会保持对抗性,因此存在有限的现实世界威胁

  • Do universal adversarial perturbations exist?

在图像的空间上,可以构造单个扰动δ,当应用于任意图像x时,将使其分类不正确。这些攻击在音频上会很强大,并且会对应于可以播放的扰动,以使任何其他波形识别为目标短语。

  • Are audio adversarial examples transferable?

给定音频样本x,是否可以生成单个扰动δ,使得对于多个分类器fi,fi(x +δ)= y。
可转移性被认为是神经网络的基本属性[34],使构建强大的防御变得非常复杂,并且允许攻击者进行黑盒攻击。

  • Which existing defenses can be applied audio?

对抗性样本的所有现有防御仅在图像域上进行了评估。如果防御者的目标是产生一个强大的神经网络,那么它应该提高对所有领域的对抗性例子的抵抗力,而不仅仅是对图像的抵抗力。

6-Conclusion

证明了定向音频对抗样本在自动语音识别方面是有效的。通过基于优化的攻击被应用到端到端,我们能够通过仅添加轻微失真将任何音频波形转换为任何目标转录,并获得100%的成功。同时,可以使音频每秒最多转录50个字符(理论上的最大值),使音乐转录为任意语音,并隐藏语音不被转录。

我们提出初步证据表明音频对抗性示例与图像上的对象具有不同的属性,表明线性不适用于音频域。

没有更多推荐了,返回首页