Lower Frame Rate Neural Network Acoustic Models翻译

摘要

最近,使用连续时序分类(CTC)训练的神经网络声学模型被提出,作为传统的交叉熵训练的神经网络声学模型的替代方法,其中,交叉熵方法每10ms输出一帧。与传统模型相反,CTC联合声学模型一起学习对齐,并且除了传统声学状态单元外还输出空白符号。这允许CTC模型以低帧率运行,与传统模型中的10ms不同,其是每30ms输出一帧,从而提高了整体系统速度。在这项工作中,我们探索传统模型在低帧率下的行为。在一个大词汇量的语音搜索任务上,我们将证明,使用传统模型,与基于CTC的模型相比,我们可以将帧率降低到40ms,同时将WER相对提高3%。

1.介绍

传统的混合神经网络声学模型在每个帧(即10毫秒)上为每个内容相关(CD)状态的声学单元输出帧级预测。这些CD状态用作隐马尔可夫模型(HMM)的发射概率。当第一代使用深度神经网络(DNN)的混合系统出现时,更多的循环体系结构显示了混合系统的额外优势,这包括长短期记忆(LSTM)循环神经网络和卷积长短期记忆深度神经网络(CLDNN)。这些模型通常使用帧级交叉熵损失以及序列判别损失训练。传统模型的缺点之一是它们需要帧级对齐以进行交叉熵训练
  为了解决帧标签问题,提出了使用连续时序分类(CTC)训练的RNN架构。CTC提供了一种在将输入帧序列映射到输出标签序列时学习声学模型的机制。为了允许输出序列短于输入序列,除了常规模型中的常规声学单元之外,还使用空白输出符号。
  在[1]中表明,CTC-LSTM声学模型优于常规LSTM模型。为了加快CTC训练,这些CTC-LSTM模型使用了一种状态相关的音素(CD-Phones)[8]。具有CD-Phones的CTC的好处之一是,它允许模型每30ms输出一个符号,而不是传统的10ms。 这种低帧率减少了输入和输出序列的长度,从而减少了解码期间的计算成本,并改善了等待时间。另外,在训练时,此设置减少了每个输出序列可能的不同对齐的数量,进而减少了任务的难度,从而产生了有效的训练。
  尽管CTC不需要预先进行对齐,但它也有一些缺点。首先,[9]证明了CTC模型严重拟合训练数据,并且只有在训练超过40,000小时的数据后才能与传统模型的性能相匹配。其次,使用CTC损失的结果是,可以在其相应的输入事件之后任意延迟检测输出目标的时间。这意味着,经过CTC训练的模型无法对输入和输出序列进行准确的对齐。因此,由于输出延迟,可能会引入额外的延迟。为了克服等待时间问题,在[1]中,仅使用了与给定强制对齐相差不超过100毫秒的对齐。从随后的序列训练阶段中删除了此约束,并且所生成的模型的性能与未约束的模型一样好,但是与仅具有50ms延迟的常规模型相比,该系统的延迟约为150ms。第三,虽然在传统模型的[5]中显示了向LSTM体系结构中添加卷积层是有帮助的,但是[1]并未发现在使用CTC目标进行训练时附加层是有帮助的。
  本文的目的是探讨在使用低帧率和CD-Phones对传统LSTM型模型进行训练时的行为。我们将此模型称为低帧率(LFR)模型。使用标准交叉熵和序列训练损失训练这些模型。我们注意到,尽管也可以使用低帧率训练CTC模型,但我们使用术语LFR来指代传统模型,因为这是本文研究的重点。在一个大词汇量的语音搜索任务上,我们将证明LSTM LFR模型可以与CTC模型的性能相匹配,两者均以30ms帧率进行训练。此外,我们通过上述CTC模型解决了许多问题。首先,我们将证明与CTC相比,使用具有LFR的CLDNN可以额外获得3%的相对改进。其次,与LTC模型相比,我们可以将帧前进增加到40ms,而只有80ms的输出延迟,而使用CTC则需要30ms的帧速率和150ms的输出延迟。最后,与CTC相比,LFR模型对较小的数据集更健壮。
  本文的其余部分安排如下。在第2节中,我们描述了传统训练和CTC训练,以及在这项工作中探索的LFR模型。在第3节和第4节中,我们讨论实验和结果,最后在第5节中得出结论。

2.使用LSTM RNN的声学模型

在本节中,我们将介绍使用神经网络进行声学建模的各种方法。一旦选择了声学单元(即CD-states,CD-phones),就可以使用硬(Viterbi)或软(Baum-welch)对齐训练。此外,可以使用各种目标函数训练这些模型,包括交叉熵(CE),CTC和序列训练(ST)。我们将在以下部分描述这些不同的因素,包括我们提出的LFR模型。对于这些不同因素的更详细的总结,我们请读者参考[9]。

2.1 使用交叉熵训练的传统模型

将长度为TT发音输入序列表示为x=x1,,xT\pmb x=x_1,\dots,x_T,其中xtRNx_t∈\mathbb R^N是帧级特征向量(即log-mel特征),w\pmb w是输出单词序列。使用维特比可以近似将声音似然表示为:
p(xw)=t=1Tp(xtlt)p(ltlt1),p(\pmb x|\pmb w)=\prod^{T}_{t=1}p(x_t|l_t)p(l_t|l_{t-1}),
  这里l1,,lTl_1,\dots,l_T是通过将发音与单词序列w\pmb w强制对齐而计算出的标签序列,通常由预先存在的模型(例如GMM或神经网络)执行。在混合解码中,HMM的发射概率被定义为p(xtlt)=p(ltxt)p(xt)/p(lt)p(x_t|l_t)=p(l_t|x_t)p(x_t)/p(l_t),此处的标签后验概率由神经网络声学模型的输出给出,可以使用当前帧左边的LL帧和右边的RR帧的上下文进行计算 ,表示为p(ltxt)p(ltxtL:xt+R)p(l_t|x_t)≈p(l_t|x_{t-L}:x_{t+R}),当进行ltl_t的帧级预测时,这允许神经网络合并声学上下文。标签先验概率p(lt)p(l_t)是通过对强制对齐产生的标签频率进行计数而获得的。数据似然性p(xt)p(x_t)不依赖于标签,因此出于训练和解码目的可以忽略。
  给定输入序列x\pmb x和大小相等的相应帧级别对齐l\pmb l,首先训练神经网络声学模型,以使所有声学帧上的CE损失最大化,如下所示:
LCE=(x,l)t=1xlog p(ltxt).(1)\mathcal L_{CE}=-\sum_{(x,l)}\sum^{|x|}_{t=1}log~p(l_t|x_t).\tag{1}
这里的p(lx)p(l|x)是神经网络的softmax输出层之后的标签。该损失的缺点是每个标签是相互独立的,这可以通过使用序列判别损失进行其他训练来解决此问题,如下所述

2.1.1 传统建模

大多数ASR系统都假设语音信号可以在10毫秒的时间尺度上近似为分段平稳过程,从而导致前端每10毫秒产生局部移位不变表示(例如xtx_t是log-mel滤波器组)。随着音素以更长的时间规模出现,每个音素通常分为3个分段固定模型,其中对应的HMM拓扑是带有自环的3状态,从左到右的模型。训练无状态声学模型(例如GMM,DNN)以每10ms在HMM状态上提供分布p(xtst)p(x_t|s_t),从而匹配前端帧率。然后,使用经过训练的10ms模型提供的固定对齐方式,如上所述进行CE训练。

2.1.2 LFR建模

有状态的循环声学模型能够在发出预测之前处理更多的输入,因此无需假设信号平稳。因此,无需将音素分为多个子单元,而是HMM可以直接使用音素(例如CD-Phones)。这些修改使我们可以消除10ms的限制,并且在LFR建模中,我们以较低的帧速率或等效地以较高的帧前进(即20ms,30ms等)计算输出标签ltl_t尽管可以使用替代的前端,但在这项工作中,我们使用典型的10ms log-mel前端,但是将连续的帧堆叠在一起以弥补较低的速率,然后对帧进行二次采样以达到所需的帧速率,如[4]所示。软目标标签类后验是通过在所需帧频窗口中的10ms后验平均来创建的。

2.2 使用CTC训练的声学模型

连续时序分类(CTC)方法是诸如RNN之类的序列模型的训练标准,其中声学模型是与标签序列一起学习的。CTC模型与常规框架模型在两个方面有所不同。首先,CTC模型引入了一个额外的blankblank标签,以减轻网络在不确定时进行帧级标签预测的负担。其次,训练标准在序列级别进行操作,并优化状态序列的对数概率,而不是如等式1中那样优化独立输入帧的对数似然。
  CTC损失函数定义为每个训练样例正确标签的负对数概率之和:
LCTC=(x,l)lnp(zlx)(2)\mathcal L_{CTC}=-\sum_{(x,l)}lnp(z^{l}|x)\tag{2}
其中x\pmb x是声学帧的输入序列,l\pmb l是目标标签序列(例如说话的语音转录),zlz^lx\pmb xl\pmb l的所有可能对齐的编码表示,它允许存在重复标签,以及存在blankblank标签。
  可以使用以下公式估算正确标签p(zlx)p(z^l|x)的概率:
p(zlx)=πzltyπtt(3)p(z^l|x)=\sum_{\pi \in z^l}\prod_t y^t_{\pi_t}\tag{3}
其中ysty^t_s是符号ss在时间tt的softmax输出,而ππ枚举zlz^l中的所有路径。易处理的前向后向算法被用于计算路径概率的求和(有关更多详细信息,请参见[7])。从等式3可以看出,在网络内部状态给定的情况下,输出标签被认为是独立的,这阻碍了语言模型信息的合并。使用序列判别标准可以通过额外的训练来缓解这种弱点。

2.3 序列判别训练

完成CTC或CE训练后,通常使用序列级判别训练标准对模型进行再训练,该标准在目标函数上与ASR WER目标函数更加匹配。在实践中,已证明ST可以改善通过CE或CTC训练训练的神经网络模型。 在本文中,我们探索使用状态级最小贝叶斯风险(sMBR)标准训练所有模型。

3.实验设置

3.1 神经网络结构

用于所有实验的声学特征是每10毫秒在25毫秒窗口上计算的80维对数梅尔滤波器组能量。在当前帧tt处,这些特征以l=7l=7帧向左堆叠,并下采样得到所需的帧速率,以产生640维特征xt1:xtx_{t-1}:x_t。这与本文所有NN实验所使用的特征相同,并且与[4]中使用的特征类似。
  与[4]类似,用于CTC训练的LSTM模型由5个LSTM层组成,其中每层含有640个隐藏单元,并且没有投影层。总计约20M参数。用于LFR建模的CLDNN模型具有卷积层,LSTM和DNN层。首先,将8×80 time×frequency8\times 80~time\times frequency的log-mel特征带入具有8×158×15的滤波器大小和256256个特征映射的单个卷积层中。卷积后,我们在frequencyfrequency上使用窗口大小为6的非重叠最大池化。卷积层的输出传递到具有256个输出的线性映射层,然后传递给3个LSTM层(具有832个隐藏单元和512个投影单元)层。最后,我们将LSTM的输出传递给具有1024个隐藏单元的完全连接的ReLU层。同样,为了减少参数的数量,将softmax层分解为两个,中间是一个具有512个单元的线性低秩层。CLDNN模型还具有约20M参数。所有声学模型都有9,287个CD-phone输出目标。

3.2 训练过程

最初使用异步随机梯度下降(ASGD)优化的CE训练LFR模型。这些模型使用由现有的10ms CD-state模型生成的现有强制对齐。特征被提取并堆叠,我们保留每第n个特征帧(例如,n = 3表示30毫秒)并将其余部分丢弃。使用相同的前端配置对CTC模型进行了训练,每30ms生成一帧(有关更多详细信息,请参见[1])。对于LFR模型,我们通过平均n个1-hot目标标签来产生软目标,从而将CD-state映射到CD-Phones和子样本。所有LFR模型均采用1-state HMM进行训练。然后使用与[6]相似的设置,使用sMBR对模型进行序列判别训练。在训练期间,循环网络将展开20个时刻,以进行截断的反向传播(BPTT)训练。所有结果均在ST后进行测试。此外,输出状态标签会延迟kk帧,其中实验选择kk可以在准确性和延迟之间取得良好的平衡,如结果所示。

3.3 解码过程

所有声学模型都使用基于WFST的单程解码器进行解码,该解码器使用1亿n元语言模型和超过500万个单词的词汇表。 解码器执行集束搜索,并且在任何时间点仅保留7,000个活动弧。

热门文章

暂无图片
编程学习 ·

共识算法 POW/POS

POW/POS在区块链系统中,共识算法是区块链保持数据安全、不可篡改、透明性等特色的关键技术。共识机制是区块链的灵魂,是区块链建立信任的基础。一个区块链项目选择使用何种共识机制,决定了这个项目是否能建立起完善的激励机制,从而起到鼓励更多节点参与到项目中,进而增加系…
暂无图片
编程学习 ·

window.performance.navigation.type

performance.navigation.type(该属性返回一个整数值,表示网页的加载来源,可能有以下4种情况):0:网页通过点击链接、地址栏输入、表单提交、脚本操作等方式加载,相当于常数performance.navigation.TYPE_NAVIGATE。1:网页通过“重新加载”按钮或者location.reload()方法加…
暂无图片
编程学习 ·

vue or h5分享页面 唤起和下载app(苹果和安卓判断 及 微信浏览器和其他浏览器的判断)

题外话: 菜鸡是没有发言权的,导致即使不是前端的锅,也把它变成是你的锅。 哎!!!!!!!!!!!!!首先必须感谢我认识的大佬,一直在帮我解决问题(我关注的那个jamesluozhiwei 这位)步入正题: 1 。唤起和下载 用的框架 和 参考文档(重要,弄清原理啥的看这个)…
暂无图片
编程学习 ·

easyui datagrid deleteRow(删除行)的BUG

有时候想临时保存一些数据,等确定好后在批量一次提交,但EasyUI datagrid 用的时候添加可以正常,如果从中间删除那行号就全乱了。导致删除的时候有可能删除上一行数据。function addFileRow(){$(#FileTable).datagrid(appendRow,{ File_Name:"aaaa",File_Path:&qu…
暂无图片
编程学习 ·

LeetCode_Everyday:021 Merge Two Sorted Lists

LeetCode_Everyday:021 Merge Two Sorted Lists题目:示例:代码参考此外 LeetCode Everyday:坚持价值投资,做时间的朋友!!! 题目: 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:示例 1:输入:1->2->4, 1-…
暂无图片
中恒嘉业 ·

关于主从复制的超详细解析(全)

目录前言1. 主从复制1.1 方式2. Mysql的主从复制2.1 一主一从2.1.1 window和linux通讯2.1.2 linux和linux的通讯2.2 双主双从3. Redis的主从复制3.1 哨兵模式3.2 java代码结合前言 主要介绍mysql的主从复制以及redis的主从复制 能由浅入深的明白原理以及如何操作 再者&#xf…
暂无图片
郑州普通话 ·

ffmpeg音视频开发实战6,android应用案例开发大全

30岁之前:如何打好基础 我建议你做两件事。第一件,找准一个可以为之奋斗5年、 10年甚至更久的目标。这是一种最理想的状态。 因为一个清晰的目标,可以让你的职业成长围绕着一个点去积累经验,而这种日积月累的经验积累,也是你日后升职加薪的筹码。虽然经验并不一定与能力相…
暂无图片
郑州普通话 ·

PyQt 控件介绍

PyQt控件介绍一、常用组件介绍1、综合示例2、讲解二、深入研究组件1、标签1.示例代码2.讲解2、文本编辑框1.示例2.讲解本节介绍的组件在前面的讲解过程中已经使用过了,这里综合前面的布局和信号,做一个统一的示例讲解,并对其中重点组件讲解更…
暂无图片
代理记账 ·

在web应用中发送和接收Jakarta消息

Running the websimplemessage Example To Package and Deploy websimplemessage Using Maven _1、Make sure that GlassFish Server has been started (see Starting and Stopping GlassFish Server). _2、In a terminal window, go to: tut-install/examples/jms/websimp…
暂无图片
cgfy ·

C++学习日记2——函数、封装、对象特性

一、函数 1.1 函数默认参数 1.1.1 简介 在C中&#xff0c;函数的形参列表中的形参是可以有默认值的 1.1.2 语法 返回值类型 函数名 (参数 默认值) {} 1.1.3 代码 #include <iostream> using namespace std;// 函数的默认参数 int func(int a, int b 20, int c 30…
暂无图片
coreui ·

视频水印怎么去除?超简单 千万不要错过

小编在知乎看到很多大佬分享的视频去水印的方法&#xff0c;但是感觉都有点太复杂了&#xff0c;今天就来分享一下小编自己私藏的几个针对于视频去水印的软件和网站~建议大家收藏哦~ 1、爱给网-视频去水印小工具&#xff08;免费 在线&#xff09; 推荐点 1、在线操作&#…
暂无图片
coreui ·

Mac 安装 tomcat10

Mac 安装 tomcat10 1、下载tomcat tomcat官网&#xff1a;https://tomcat.apache.org/ 点击我下载的tomcat10&#xff1a; 2、下载解压,给bin下的*.sh文件添加可执行权限 3、修改webapps下的ROOT中的index文件查看效果
暂无图片
未来博客 ·

视频水印怎么去除?超简单 千万不要错过

小编在知乎看到很多大佬分享的视频去水印的方法&#xff0c;但是感觉都有点太复杂了&#xff0c;今天就来分享一下小编自己私藏的几个针对于视频去水印的软件和网站~建议大家收藏哦~ 1、爱给网-视频去水印小工具&#xff08;免费 在线&#xff09; 推荐点 1、在线操作&#…
暂无图片
未来博客 ·

Mac 安装 tomcat10

Mac 安装 tomcat10 1、下载tomcat tomcat官网&#xff1a;https://tomcat.apache.org/ 点击我下载的tomcat10&#xff1a; 2、下载解压,给bin下的*.sh文件添加可执行权限 3、修改webapps下的ROOT中的index文件查看效果
暂无图片
建站日记 ·

惠州实验室建设选址、勘察事项

惠州实验室建设选址、勘察事项&#xff0c;SICOLAB技术员带您从实验室建设启动前思考问题考虑如下&#xff1a;一、不同实验室建设选址要求 1.化学实验室 &#xff08;1&#xff09;清洁安静环境 &#xff08;2&#xff09;远离住宅、生活区 &#xff08;3&#xff09;锅炉房与…
暂无图片
建站日记 ·

NLP聊天机器人原理(seq2seq模型)

一、seq2seq模型 1.概念 seq2seq是一个Encoder-Decoder结构的网络&#xff0c;它的输入是一个序列&#xff0c;输出也是一个序列。Encoder中将一个可变长度的信号序列变为固定长度的向量表达&#xff0c;Decoder将这个固定长度的向量变成可变长度的目标的信号序列。这个结构最…
暂无图片
mfbz ·

惠州实验室建设选址、勘察事项

惠州实验室建设选址、勘察事项&#xff0c;SICOLAB技术员带您从实验室建设启动前思考问题考虑如下&#xff1a;一、不同实验室建设选址要求 1.化学实验室 &#xff08;1&#xff09;清洁安静环境 &#xff08;2&#xff09;远离住宅、生活区 &#xff08;3&#xff09;锅炉房与…
暂无图片
mfbz ·

全渠道会员通-天猫会员通3: 会员运营内容准备

在天猫会员通技术对接开发过程中&#xff0c;为了通知存量会员的通知工作&#xff0c;发挥会员通的优势&#xff0c;品牌需要做好以下事宜&#xff1a; 会员体系暂停公告&#xff1a;因会员通技术升级期间&#xff0c;会员服务将被暂停&#xff0c;店铺tab中会员入口将被下线&…
暂无图片
珊珊日记 ·

C# 执行Javascript脚本

c#教程https://www.xin3721.com/eschool/CSharpxin3721/ 前一阵子使用C#编写SCXML状态机&#xff0c;需要解析EMCScript表达式&#xff0c;使用了Jint库&#xff08;https://github.com/sebastienros/jint/)&#xff0c;当时感觉与C#之间的数据转换不是很方便。这两天有时间又关…
暂无图片
珊珊日记 ·

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛

A.大学期末现状 题目描述 作为一名大学生的你&#xff0c;现在又到了期末查成绩的时候&#xff0c;当你的成绩大于等于60时请输出“jige,haoye!”,否则输出"laoshi,caicai,laolao"。 输入描述: 一行&#xff0c;一个整数x代表你的成绩&#xff08;0<x<100&a…