吴俣作者

带你读论文 | 端到端语音识别模型

编者按:过去十年,得益于人工智能与机器学习的突破、算法与硬/软件能力的进步,以及拥有既多样又大量的语音数据库,用以训练多参数的、大规模的语音识别与合成模型,使得语音处理技术获得飞跃性进展。

随着端到端神经网络机器翻译、语音生成等方面的进展,端到端的语音识别也达到了和传统方法可比的性能。不同于传统方法将语音识别任务分解为多个子任务(词汇模型,声学模型和语言模型),端到端的语音识别模型基于梅尔语谱作为输入,能够直接产生对应的自然语言文本,大大简化了模型的训练过程,从而越来越受到学术界和产业界的关注。

本文将通过六篇论文,从建模方法、响应时间优化、数据增强等不同方面讲解端到端语音模型的发展,并探讨不同端到端语音识别模型的优缺点。

端到端语音识别建模

在讲述语音识别建模之前,首先明确端到端语音识别的输入和输出。

输入:目前端到端语音识别常用的输入特征为 fbank。fbank 特征的处理过程为对一段语音信号进行预加重、分帧、加窗、短时傅里叶变换(STFT)、mel 滤波、去均值等。一个 fbank 向量对应往往对应10ms的语音,而一段十秒的语音,即可得到大约1000个 fbank 的向量描述该语音。除了 fbank,MFCC 以及 raw waveform 在一些论文中也被当做输入特征,但主流的方法仍然采用 fbank。

输出:端到端的输出可以是字母、子词(subword)、词等等。目前以子词当做输出比较流行,和 NLP 类似,一般用 sentence piece 等工具将文本进行切分。

Seq2Seq

参考论文:Listen, Attend and Spell: A Neural Network for Large Vocabulary Conversational Speech Recognition. ICASSP 2016(William Chan, Navdeep Jaitly, Quoc V. Le, Oriol Vinyals)

给定序列 X,输出 Y,最直白的一种办法就是延伸在机器翻译中所使用的 Seq2Seq 模型。Seq2Seq 模型由两部分组成:编码器和带有注意力机制的解码器。在解码每个词语的时候,注意力机制会动态计算每个输入隐状态的权重,并通过加权线性组合得到当前的注意力向量。在此处的语音识别任务中,Seq2Seq 模型与机器翻译中的 Seq2Seq 模型异曲同工,可以使用不同的模型作为编码器和解码器,例如 RNN、Transformer 模型等。

图1:Listen, attend and spell 模型结构图

为了训练更好的 Seq2Seq 语音识别模型,一些优化策略也被提出:

  • 引入增强学习策略,将最小词错率(minimum word error rate)当作模型训练的奖励函数,更新模型参数

  • 由于语音的输入和输出有着单调性,并不存在机器翻译的调序问题,所以使用单调注意力策略,在一些实验中可以提升语音识别的性能。

  • 引入覆盖(coverage)机制,缓解语音识别的漏词问题。

  • 与 CTC 联合训练以及联合解码,可大幅提升 Seq2Seq 模型性能。

CTC

参考论文:Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks. ICML 2006(AlexGraves, SantiagoFernández,FaustinoGomez)

除了简单易懂的 Seq2Seq 模型之外,还需要关注另一个经典之作 CTC 模型。CTC 模型是端到端语音识别的开山始祖,提出时间远早于 Seq2Seq 模型,其建模思想也与 Seq2Seq 模型相去甚远。CTC 模型可以看作自动学习输入 X 与 Y 的对齐,由于 Y 的长度远小于 X,所以 CTC 引入空和 y_i 的重复来让 X 和 \{y}_hat 一一对应。

图2:CTC 输入音频与文本对应关系

例如,在图2中,CTC 引入空和重复使得句子 THE CAT (Y)和输入音频(X)做对齐。这种对齐方式有三个特征:

(1)X 与 Y 映射是单调的,即如果 X 向前移动一个时间片,Y 保持不动或者也向前移动一个时间片。

(2)X 与 Y 的对齐是多对一的。一个 X 可以有很多种方式和 Y 进行对应。

(3)X 的长度大于 Y 的长度。

为了求得该映射,需要最大化后验概率 P(Y|X)

这里 A 是一条合法的 x 和 y 的对应路径,a_t 代表 t 时刻 X 所对应的输出。如有兴趣可参见 https://distill.pub/2017/ctc/ 了解更多的推导细节。

在训练中 CTC 与 Seq2Seq 模型相比,CTC 模型有如下不同:

  • CTC 在解码时,对于每一帧都可以生成一个对应的子词,因此 CTC 比 Seq2Seq 可以更好地支持流式语音识别

  • CTC 的建模并没有直接建模 Y 中不同词语之间的依赖关系,所以生成的文本从语言模型的角度来看质量较差。为了解决这个问题,CTC 往往要和外部的语言模型一起进行解码才可以生成更好的结果。

Transducer

参考论文:Sequence Transduction with Recurrent Neural Networks. arXiv 2012(Alex Graves)

由于 CTC 模型无法显示建模 Y 中词与词的依赖关系,Transducer 模型在2012年被提出。Transducer 可以被看作是 CTC 模型的延伸,由文本预测网络(text prediction network)来建模语言模型,弥补了 CTC 的缺点。之后语言模型的隐状态和语音编码器的隐状态传递给联合网络(joint network),以预测当前时刻的输出。

图3:Transducer 结构图

值得注意的是,Transducer 的状态转移矩阵和 CTC 稍有不同,在 CTC 中一个词连续出现两次会在后处理时被合并,而 Transducer 不支持这种表示,其主要原因为 Transducer 对语言模型进行了建模,每输出一个词它的 prediction network 的隐状态就会变化一次。并且 Transducer 支持同一帧对应多个输出单元,而 CTC 不支持。因为 CTC 和 Transducer 都是逐帧解码,语音结束解码过程结束,他们也被称作是帧同步(frame synchronized) 模型。与之相反的是 Seq2Seq 模型是逐词解码,直到出现 EOS 才结束,所以被称作词同步(word synchronized)模型。

图4:Transducer 转移矩阵
端到端语音识别优化

有了大致的模型结构之后,科研人员们又从不同的方面对端到端模型进行了优化。

数据增强

参考论文:SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition. INTERSPEECH 2019(Daniel S. Park, William Chan, Yu Zhang, Chung-Cheng Chiu, Barret Zoph, Ekin D. Cubuk, Quoc V. Le)

由于端到端模型需要大规模数据训练,而很多场景并没有那么多的数据,因此数据增强算法在端到端语音识别系统里最近被多次研究。其中最著名的数据增强算法为 Spec Augmentation。该方法简单实用,可以被看作是一种用于频谱的增强方法,来帮助神经网络学习有用的特征。为了使模型更加鲁棒,研究者采用了3种方法,对数据进行增强:

  • Time-warp: 可通俗理解为在梅尓谱中沿着时间轴把任意一帧向左或向右扭曲随机距离。

  • Frequency mask:添加在频率 f 的连续梅尔谱上,将 [f0, f0+f]mask。其中 f是一个统一的0到 F 的参数,f0 是选自 [0,v-f] 中的。v 则代表了梅尔频谱图的通道数量。

  • Time mask:添加在 t 的连续时间上,将谱图 [t0,t0+t] 全部掩盖掉。t 是一个0到 T 的均匀分布。

这其中 Time mask 和 Frequency mask 对模型鲁棒性的贡献最大。

延迟优化

参考论文:Towards Fast and Accurate Streaming End-to-End ASR. ICCASP 2019(Bo Li, Shuo-yiin Chang, Tara N. Sainath, Ruoming Pang, Yanzhang He, Trevor Strohman, Yonghui Wu)

端到端模型由于模型小,不需要额外的语言模型,所以很容易部署到移动设备之上。而在移动设备上的语音场景往往需要一个延时非常小的语音识别模型。例如,当用户说完“请为我查找歌曲晴天”时,系统应该尽可能快的进行响应,压缩延迟。迄今为止,有一系列工作对压缩 Transducer 的延迟展开了研究。其中比较著名的是 Google 所提出的 Endpointer 和其对应的关于延迟的惩罚。Endpointer 可以当做 Transducer 模型的句子结束符 EOS,研究员们希望这个 EOS 可以尽早出现,然而过早的出现可能导致删除错误,所以 Google 的研究员提出了 Early and Late Penalties 去建模 EOS 出现位置。

在公式中,首先需要知道 EOS 所出现的真实时刻,之后如果 EOS 早出现或者晚出现(允许晚 t_buffer)都要进行相应的惩罚。然而,此种方法往往会带来对精度的损失,在语音识别任务中,往往更好的延迟会以牺牲精度为代价。

端到端语音识别对比

参考论文:On the Comparison of Popular End-to-End Models for Large Scale Speech Recognition. InterSpeech 2020(Jinyu Li, Yu Wu, Yashesh Gaur, Chengyi Wang, Rui Zhao, Shujie Liu)

在今年的 InterSpeech 的论文中,微软亚洲研究院和微软 Azure Speech 团队的研究员们对比了主流的 E2E 模型,其中包括 Transformer 和 RNN 的结构对比,以及在流式场景下 Transducer 和流式 S2S 的框架对比,所有试验均在超大规模数据集上进行。实验的结论为,Transformer 模型比 RNN 模型效果稍好,而 Transducer 模型在流式场景下要好于流式的 S2S 模型。在此之后,研究员们在论文“Developing Real-time Streaming Transformer Transducer for Speech Recognition on Large-scale Dataset”中又探讨了 RNN 和 Transformer 模型在 Transducer 的优劣比较,实验结果表明,Transformer 在精度上要好于 RNN,在允许几百毫秒的延迟时从精度、速度上都要好于 RNN。然而 Transformer 模型在0延迟时计算代价要远远大于 LSTM,需要良好的计算设备才能支持实时运行。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

入门语音识别
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面、智能多媒体、大数据与知识挖掘、人工智能、云和边缘计算、计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的创新,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

后验概率技术

在贝叶斯统计中,一个随机事件或者一个不确定事件的后验概率是在考虑和给出相关证据或数据后所得到的条件概率。同样,后验概率分布是一个未知量(视为随机变量)基于试验和调查后得到的概率分布。“后验”在本文中代表考虑了被测试事件的相关证据。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

傅里叶变换技术

傅里叶变换(法语:Transformation de Fourier、英语:Fourier transform)是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,在物理学和工程学中有许多应用。因其基本思想首先由法国学者约瑟夫·傅里叶系统地提出,所以以其名字来命名以示纪念。实际上傅里叶变换就像化学分析,确定物质的基本成分;信号来自自然界,也可对其进行分析,确定其基本成分。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

语言模型技术

统计式的语言模型是借由一个几率分布,而指派几率给字词所组成的字串。语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。

推荐文章
暂无评论
暂无评论~