语音识别中的End2End模型: CTC, RNN-T与LAS

自动语音识别(Automatic Speech Recognition,简称ASR)是一项将机器学习与实际需要紧密结合的领域,应用场景如语音助手,聊天机器人,客服等等。今天就来比较一下比较流行的几种End-to-End的ASR模型。

经典语音识别系统

在了解End-to-End模型之前,我们先来看看经典的语音识别系统是怎样工作的以及为什么需要End-to-End模型。

经典语音识别系统通常有如下几个组成部分:特征提取,如利用输入的waveform提取MFCC特征,然后再经过三个独立的模型再求得它们概率的乘积得到总的概率:

1. acoustic model 即根据之前提取的特征预测每个对应的音素(phoneme),传统上用GMM Gaussian Mixture Model。

2. pronunciation model即根据音素组合成词语的发音, 传统上用一些pronunciation table。

3. language model即根据发音预测对应的文本, 传统上用一些n-gram model。

神经网络技术发展后,特征提取又可用CNN来做,其他部分也可用DNN或一些RNN结构如LSTM来做。

但是这三部分模型还是相互独立训练的,这使得训练过程异常复杂,我们希望能用一个end-to-end的模型来包含所有的步骤:可输入语音或其频谱而直接产出文本从而简化训练过程。以下我们来比较一下三种常见的end-to-end模型的原理及优缺点。

CTC

CTC全称是Connectionist Temporal Classification,主要是为了解决利用RNN训练时需要目标label与输入的每一帧需要alignment的问题,即我们需要知道哪几帧输入对应输出的哪个字符并且知道如何分割不同输出字符对应的输入帧的边界,而且有的时候这种边界较为模糊,这种需要逐帧对应的标记的数据相较于只是需要简单的文字输出的人力要求要高很多。

假设输入的语音为 [公式],而对应的label为 [公式] ,其输出空间为 [公式] ,对于ASR,通常 [公式] ,为解决alignment问题,CTC规定了额外的空格标记blank symbol,假设用标记<b>来表示。我们利用 [公式] 来代表所有的长度为T的输出序列,且每一个元素均属于 [公式] 的集合,并且经过把所有相连的重复字母合并且除去所有blank symbol的操作后与原label [公式] 相同。举个例子,假设我们输入的语音有八帧,并且其对应的文字是cat仅有三个字符,如何使输出与输入对应呢,我们可以是cc<b>aa<b>t<b>,也可以是c<b><b>aa<b>t<b>,或者是c<b>aaa<b>t<b>等等,这些分割都可以经过上述操作对应到最终的文字输出cat上,这就省去了我们需要带有alignment的标记的需要,而 [公式] 就可以表示成以上各种分割的概率的求和形式 [公式] 。对于输入向量,我们可用RNN作为encoder,得到一系列的隐藏向量 [公式] ,并通过softmax layer来得到每个时刻的输出的类别的概率,其总类别个数为 [公式] ,并且我们可以利用gradient ascent来求得使 [公式] 最大化的参数。

该模型可用下图表示:

RNN-T

RNN-T全称是Recurrent Neural Network Transducer,是在CTC的基础上改进的。CTC的缺点是它没有考虑输出之间的dependency,即 [公式] 与之前帧的 [公式] 没有任何关联,而RNN-T则在CTC模型的Encoder基础上,又加入了将之前的输出作为输入的一个RNN,称为Prediction Network,再将其输出的隐藏向量[公式] 与encoder得到的 [公式] 放到一个joint network中,得到输出logit再将其传到softmax layer得到对应的class的概率。

整体模型结构如下

相较于传统模型,RNN-T模型训练较快,模型也较小,并且能够有可比拟的准确率,最近谷歌也是将该模型压缩后deploy到了语音输入Gboard上,详情可参见Google AI Blog https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html

LAS

LAS,全称Listen Attend and Spell,与CTC/RNN-T思路不同,它利用了attention机制来进行有效的alignment。关于attention机制可参考之前的文章

川陀学者:Attention机制详解(一)——Seq2Seq中的Attention​zhuanlan.zhihu.com图标

LAS模型主要由两大部分组成:1. Listener即Encoder,利用多层RNN从输入序列提取隐藏特征,2. Attend and Spell,即Attention用来得到context vector,decoder利用context vector以及之前的输出来产生相应的最终的输出,其模型结构如下:

LAS模型由于考虑了上下文的所有信息,所以它的精确度可能较其他模型略高,但是同时由于它需要上下文的信息所以没法进行streaming的ASR,另外输入的语音长度对于模型的准确度也有较大的影响。

总结

这里仅仅简单的介绍与比较了几种常见的end-to-end的ASR模型,实际应用中还有很多的trick,比如是选择grapheme还是wordpiece model,要不要和external language模型做fusion,如何考虑user context等等,希望end-to-end模型能够不断改进,达到更好的效果。

 

参考资料

斯坦福CS224N 2017 Speech Recognition视频https://youtu.be/3MjIkWxXigM,讲义https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1174/lectures/cs224n-2017-lecture12.pdf

CTC 论文:Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks https://www.cs.toronto.edu/~graves/icml_2006.pdf

RNN-T论文:Sequence Transduction with Recurrent Neural Networks https://arxiv.org/pdf/1211.3711.pdf

LAS论文:Listen, Attend and Spell https://arxiv.org/pdf/1508.01211.pdf

A Comparison of Sequence-to-Sequence Models for Speech Recognition https://ai.google/research/pubs/pub46169

 

编辑于 2019-04-18

### 科大讯飞语音识别模型及其主流框架 科大讯飞作为全球领先的智能语音技术公司之一,其语音识别系统经历了长期发展和技术积累。当前的语音识别领域主要依赖于深度神经网络(Deep Neural Networks, DNN),并在此基础上不断引入新的架构和算法改进。 #### 一、科大讯飞语音识别的核心技术 科大讯飞采用了一种名为 **Hybrid-DFCNN** 的全新语音识别框架[^2]。这一框架通过对传统卷积神经网络(Convolutional Neural Network, CNN)进行优化,显著提升了语音特征提取的能力。相比于传统的 RNN 或 LSTM 模型,该框架能够更高效地捕捉时间序列上的局部特征,并减少计算复杂度。 此外,科大讯飞还开发了 Hyper-CNN 新引擎,预计可使通用语音识别准确率相对提升约 15%。这种新引擎不仅增强了普通话的识别能力,还在中英文混合输入、方言支持(如粤语)、以及标点符号预测方面表现出色。 #### 二、主流语音识别框架概述 现代语音识别通常分为以下几个阶段:音频预处理、特征提取、声学建模、语言建模和解码器设计。以下是几种常见的语音识别框架: 1. **DNN-HMM (Deep Neural Network - Hidden Markov Model)** 这是一种经典的组合方法,其中 HMM 负责描述音素的时间变化特性,而 DNN 则用于提高状态分类的准确性。尽管这种方法较为成熟,但在面对大规模数据集时仍存在一定的局限性[^5]。 2. **RNN 和 LSTM** 循环神经网络(Recurrent Neural Network, RNN)及其变体长短时记忆网络(Long Short-Term Memory, LSTM)被广泛应用于语音识别任务中。它们擅长捕获长时间跨度内的上下文关系,但由于结构复杂性和训练难度较高,在实际部署过程中可能会遇到性能瓶颈。 3. **Transformer 架构** Transformer 是近年来兴起的一种新型注意力机制驱动的模型,它摒弃了循环操作,转而利用自注意力层实现高效的全局信息交互。相比传统 RNN/LSTM 方法,Transformers 可以更快收敛且具备更好的泛化能力[^3]。 4. **端到端模型 End-to-End Models** 端到端模型试图直接从原始波形映射至文字输出,无需显式的声学/语言模块划分。代表性工作包括 Listen Attend Spell (LAS)[^3] 和 Connectionist Temporal Classification (CTC) 技术。这类模型简化了流水线流程,同时也提高了整体效率。 #### 三、应用场景举例 科大讯飞的技术成果已成功落地多个场景,例如智能家居设备中的语音助手功能、视频会议软件里的实时翻译服务[^4],还有教育行业里针对学生口语练习提供反馈意见的产品等等。这些应用充分展示了先进语音识别技术对于改善用户体验的重要性。 ```python import tensorflow as tf from tensorflow.keras.layers import Input, Conv1D, Dense, GRU, TimeDistributed def hybrid_dfcnn_model(input_shape): inputs = Input(shape=input_shape) # Feature extraction using convolution layers conv_layer_1 = Conv1D(filters=64, kernel_size=3, activation='relu')(inputs) conv_layer_2 = Conv1D(filters=128, kernel_size=5, strides=2, activation='relu')(conv_layer_1) # Recurrent layer for temporal modeling rnn_output = GRU(units=256, return_sequences=True)(conv_layer_2) # Output probability distribution over characters or phonemes outputs = TimeDistributed(Dense(output_dim=vocab_size, activation="softmax"))(rnn_output) model = tf.keras.Model(inputs=inputs, outputs=outputs) return model ``` 以上代码片段展示了一个简单的 Hybrid-DFCNN 结构实现方式,结合了卷积运算门控循环单元(GRU),适用于多种语音信号分析场合。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值