用于语音转录的系统和方法转让专利

申请号 : CN201580052394.8

文献号 : CN107077842B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 阿维尼·汉奈卡尔·凯斯贾里德·卡斯帕布赖恩·卡坦扎罗格雷戈里·迪莫斯艾瑞克·艾乐森赖恩·普兰格桑吉夫·萨西斯桑古塔·舒布哈伯拉塔亚当·科茨安德鲁·恩吉

申请人 : 百度(美国)有限责任公司

摘要 :

本文中呈现了利用端到端深度学习开发的先进语音识别系统的实施方式。在实施方式中,模型架构显著地比传统语音系统更简单,传统语音系统依赖费力设计的处理管道;当在有噪声的环境中使用时,这些传统系统也往往表现不佳。相比之下,该系统的实施方式无需手工设计的部件来使背景噪声、混响或说话者变化模型化,而改为直接学习对这类效应具有稳健性的函数。既不需音素字典,也甚至不需“音素”的概念。实施方式包括:经良好优化的循环神经网络(RNN)训练系统,其可使用多个GPU;以及新数据集合的合成技术,其允许有效获得用于训练的大量变化的数据。该系统的实施方式还可比广泛使用、最先进的商业语音系统更好地处理具有挑战性的有噪声环境。

权利要求 :

1.用于训练转录模型的计算机实施方法,所述方法包括:针对话语集合中的每一话语:

将包括声谱图帧集合的话语与一个或多个声谱图帧的上下文输入到所述转录模型的第一层中,所述第一层评估来自所述声谱图帧集合的每一声谱图帧,其中,所述转录模型不使用长短期记忆电路;

从所述转录模型输出针对所述话语的预测字符或字符概率;以及计算损失以测量针对所述话语的预测错误;

给定地面实况字符,评估所述转录模型的预测输出的梯度;以及使用后向传播更新所述转录模型。

2.根据权利要求1所述的计算机实施方法,还包括:在输入到所述转录模型的第一层中之前,抖动所述话语集合中的至少一些话语。

3.根据权利要求2所述的计算机实施方法,其中,在输入到所述转录模型的第一层中之前,抖动所述话语集合中的至少一些话语的步骤包括:通过将话语的音频文件平移一个或多个时间值来针对所述话语生成话语的抖动集;

将话语的所述抖动集和所述话语转换成声谱图集合;

从所述转录模型或从转录模型的集合获得所述声谱图集合的输出结果;以及对所述声谱图集合的输出结果求平均以获得所述音频文件的输出。

4.根据权利要求3所述的计算机实施方法,还包括:针对用于在训练所述转录模型中使用的训练数据的集合生成一个或多个话语。

5.根据权利要求4所述的计算机实施方法,其中,针对用于在训练所述转录模型中使用的训练数据的集合生成一个或多个话语包括:在人录制话音时,使所述人佩戴耳机;

在所述话语的数据收集期间通过借助由所述人佩戴的耳机播放背景噪声来有意地诱导伦巴效应;以及经由麦克风捕获所述人的具有伦巴效应的话语,而不捕获所述背景噪声。

6.根据权利要求4所述的计算机实施方法,其中,针对用于在训练所述转录模型中使用的训练数据的集合生成一个或多个话语包括:添加从已认可的噪声剪辑片段的集合选择的一个或多个噪声剪辑片段以形成噪声轨迹;

调节所述噪声轨迹相对于音频文件的信噪比;

将经调节的噪声轨迹添加至所述音频文件以形成合成噪声音频文件;以及将所述合成噪声音频文件添加至所述训练数据的集合。

7.根据权利要求6所述的计算机实施方法,其中,通过执行以下步骤来生成所述已认可的噪声剪辑片段的集合,所述步骤包括:收集候选噪声剪辑片段的集合;以及

重复以下步骤,直到来自所述候选噪声剪辑片段的集合的每一噪声剪辑片段已被评估;

从所述候选噪声剪辑片段的集合选择候选噪声剪辑片段以用于评估;

响应于所述候选噪声剪辑片段在频带中的平均功率并非与在真实噪声记录中观测到的频带中的平均功率显著不同,将所述候选噪声剪辑片段添加至所述已认可的噪声剪辑片段的集合;以及响应于所述候选噪声剪辑片段在频带中的平均功率与在真实噪声记录中观测到的平均功率显著不同,丢弃所述候选噪声剪辑片段。

8.根据权利要求1所述的计算机实施方法,还包括,在训练所述转录模型中并入一次或多次优化,包括:并入一次或多次数据并行化;

并入模型并行化;以及

使输入跨入所述转录模型的第一层中。

9.根据权利要求8所述的计算机实施方法,其中,并入一次或多次数据并行化的步骤包括:在多个处理单元上使用所述转录模型的多个副本,其中每一处理单元处理单独小批量的话语;以及在每一迭代期间将来自处理单元的计算的梯度与其对等体组合。

10.根据权利要求8所述的计算机实施方法,其中,并入一次或多次数据并行化的步骤包括:通过将多个话语并置成单个矩阵来使每一处理单元并行地处理多个话语;以及将话语按长度分类以及将大小类似的话语组合成小批量,以及用静音填充话语使得给定小批量中的所有话语具有相同的长度。

11.用于转录语音的计算机实施方法,包括:从用户接收输入音频;

将所述输入音频归一化以使所述输入音频的总功率与用于对训练后的神经网络模型进行训练的训练样本的集合的总功率一致;

通过将所归一化的输入音频平移一个或多个时间值而从所归一化的输入音频生成音频文件的抖动集;

针对来自音频文件的所述抖动集的每一音频文件,其中所述抖动集包括所归一化的输入音频:针对每一音频文件生成声谱图帧集合;

将所述音频文件连同声谱图帧的上下文输入到训练后的神经网络中,其中,所述神经网络不使用长短期记忆电路;

从所述训练后的神经网络获得预测字符概率输出;以及使用从所述训练后的神经网络获得的所述预测字符概率输出来对所述输入音频的转录进行解码,其中所述训练后的神经网络受到将来自所述预测字符概率输出的字符串解译为一个字或多个字的语言模型的约束。

12.根据权利要求11所述的计算机实施方法,其中,针对每一音频文件生成声谱图帧集合的步骤包括:生成声谱图帧,其中每一声谱图帧包括线性隔开的对数滤波器组的集合,所述对数滤波器组是在以第二毫秒值为步幅的大小为第一毫秒值的窗口上计算的。

13.根据权利要求11所述的计算机实施方法,其中:将所述音频文件连同声谱图帧的上下文输入到训练后的神经网络中的步骤包括:将所述音频文件连同声谱图帧的上下文输入到多个训练后的神经网络中;以及从所述训练后的神经网络获得预测字符概率输出的步骤包括:组合来自训练后的神经网络的集合的预测字符概率输出以获得预测字符概率。

14.根据权利要求13所述的计算机实施方法,其中,组合来自所述训练后的神经网络的集合的预测字符概率输出以获得预测字符概率的步骤包括:通过使用以下步骤中的一个或多个来解决训练后的神经网络模型之间的时移,所述步骤包括:使用展现相同时移的神经网络模型;

检查神经网络模型的输出之间的对齐以及使所述输出中的一个或多个移位以使所述输出对齐;以及使输入移位到所述神经网络模型的一个或多个中以具有对齐的输出。

15.根据权利要求11所述的计算机实施方法,其中,使用从受到将字符串解译为一个字或多个字的语言模型约束的所述训练后的神经网络获得的预测字符概率输出来对所述输入音频的转录进行解码的步骤包括:给定来自所述训练后的神经网络的预测字符概率输出,执行搜索以根据所述预测字符概率输出和训练后的N元语言模型二者来寻找最有可能的字符序列,所述训练后的N元语言模型将来自所述预测字符概率输出的字符串解译为一个字或多个字。

16.根据权利要求11所述的计算机实施方法,其中,所述神经网络模型包括五层模型,所述五层模型包括:具有三个层的第一集合,所述三个层为非循环的;

第四层,为双向循环网络,所述第四层包括两组隐含单元,所述两组隐含单元包括具有前向循环的一组隐含单元和具有后向循环的一组隐含单元;以及第五层,为非循环层,所述第五层将来自所述第四层的前向单元和后向单元的输出看作输入并输出所述预测字符概率。

17.用于语音转录的装置,所述装置包括:

从用户接收输入音频的单元;

从音频文件生成声谱图帧集合的单元;

将所述音频文件连同声谱图帧的上下文输入到训练后的神经网络的集合中的单元,其中,所述神经网络不使用长短期记忆电路;

从所述训练后的神经网络的集合获得预测字符概率输出的单元;以及使用从所述训练后的神经网络的集合获得的预测字符概率输出对所述输入音频的转录进行解码的单元,所述训练后的神经网络的集合受到将来自所述预测字符概率输出的字符串解译为一个字或多个字的语言模型的约束。

18.根据权利要求17所述的用于语音转录的装置,其中,生成声谱图帧集合的单元包括:生成声谱图帧的单元,其中每一声谱图帧包括线性隔开的对数滤波器组的集合,所述对数滤波器组是在以第二毫秒值为步幅的大小为第一毫秒值的窗口上计算的。

19.根据权利要求17所述的用于语音转录的装置,其中,从所述训练后的神经网络的集合获得预测字符概率输出的单元包括:组合来自所述训练后的神经网络的集合的预测字符概率输出以获得预测字符概率的单元。

20.根据权利要求19所述的用于语音转录的装置,其中,组合来自所述训练后的神经网络的集合的预测字符概率输出以获得预测字符概率的单元包括:通过使用以下单元中的一个或多个来解决训练后的神经网络模型之间的时移,所述单元包括:使用展现相同时移的神经网络模型的单元;

检查神经网络模型的输出之间的对齐以及使所述输出中的一个或多个移位以使所述输出对齐的单元;以及将输入移位到所述神经网络模型的一个或多个中以具有对齐的输出的单元。

说明书 :

用于语音转录的系统和方法

[0001] 相关申请的交叉引用
[0002] 本申请要求2015年6月9日提交的标题为“SYSTEMS AND METHODS FOR SPEECH TRANSCRIPTION”的共同转让和共同未决的美国专利申请号14/735,002(案卷号28888-1910)的优先权权益,其将Awni Hannun、Carl Case、Jared Casper、Bryan Catanzaro、Gregory Diamos、Erich Elsen、Ryan Prenger、Sanjeev Satheesh、Shubhabrata Sengupta、Adam Coates和Andrew Y.Ng列为发明人,该申请根据35USC§119(e)要求共同转让和共同未决的以下专利文献的优先权:(1)2014年12月15日提交的标题为“DEEP SPEECH:
SCALING UP END-TO-END SPEECH RECOGNITION”的美国专利申请号62/092,251(案卷号
28888-1908P),其将Awni Hannun、Carl Case、Jared Casper、Bryan Catanzaro、Greg Diamos、Erich Elsen、Ryan Prenger、Sanjeev Satheesh、Shubho Sengupta、Adam Coates和Andrew Y.Ng列为发明人;以及(2)2014年12月17日提交的标题为“DEEP SPEECH:SCALING UP END-TO-END SPEECH RECOGNITION”的美国专利申请号62/093,057(案卷号28888-
1910P),其将Awni Hannun、Carl Case、Jared Casper、Bryan Catanzaro、Greg Diamos、Erich Elsen、Ryan Prenger、Sanjeev Satheesh、Shubho Sengupta、Adam Coates和Andrew Y.Ng列为发明人。上述专利文献中的每一个的整体内容通过引用并入本文中。

技术领域

[0003] 本公开涉及数据处理。更具体地,本公开涉及用于改进语音到文字的转录的系统和方法。

背景技术

[0004] 计算设备已变得越来越盛行。计算设备以不同方式、不同设置使用,且以不同形式因素出现。例如,计算设备用在电器(诸如,电视、冰箱和恒温器)和移动设备(诸如,智能电话和平板)以及可穿戴式设备(诸如,智能手表)中。
[0005] 计算设备的日益扩大的形式因素和用途也致使寻找更好的方式来与这些设备接合。当处理具有有限空间或有限输入/输出能力的计算设备时,接口问题尤为突出。
[0006] 此外,不管设备的接口能力如何,始终需要改进的接口。制作更容易或更自然的接口可以提供显著的竞争优势。受到越来越多的关注的一个接口领域是语音识别的领域。
[0007] 顶端语音识别系统通常依赖由多个算法和手工设计的处理阶段组成的复杂管道(pipeline)。传统语音系统使用许多设计复杂的处理阶段,包括专门的输入特征、声学模型和隐马尔可夫模型(HMM)。为改进这些管道,领域专家一般投入大量的精力来调节它们的特征和模型。深度学习算法的引入改进了语音系统性能(通常通过改进声学模型)。尽管此项改进是显著的,但深度学习在传统语音管道中仍仅起到有限的作用。因此,为改进诸如在有噪声的环境中识别语音的任务的性能,必须费力地设计系统的其余部分以实现稳健性(robustness)。
[0008] 因此,需要提供改进的语音到文字转换的系统和方法。

发明内容

[0009] 本申请的目的在与提供用于训练转录模型的计算机实施方法、用于转录语音的计算机实施方法以及用于语音转录的装置。
[0010] 根据本发明的一方面,提供了用于训练转录模型的计算机实施方法,所述方法可包括:针对话语集合中的每一话语,将包括声谱图帧集合的话语与一个或多个声谱图帧的上下文输入到所述转录模型的第一层中,所述第一层评估来自所述声谱图帧集合的每一声谱图帧,从所述转录模型输出针对所述话语的预测字符或字符概率,以及计算损失以测量针对所述话语的预测错误;给定地面实况字符,评估所述转录模型的预测输出的梯度;以及使用后向传播更新所述转录模型。
[0011] 根据本发明的另一方面,提供了用于转录语音的计算机实施方法,所述方法可包括:从用户接收输入音频;将所述输入音频归一化以使所述输入音频的总功率与用于对训练后的神经网络模型进行训练的训练样本的集合的总功率一致;通过将所归一化的输入音频平移一个或多个时间值而从所归一化的输入音频生成音频文件的抖动集;针对来自音频文件的所述抖动集的每一音频文件,其中所述抖动集包括所归一化的输入音频,以及针对每一音频文件生成声谱图帧集合,将所述音频文件连同声谱图帧的上下文输入到训练后的神经网络中,从所述训练后的神经网络获得预测字符概率输出,以及使用从所述训练后的神经网络获得的所述预测字符概率输出来对所述输入音频的转录进行解码,其中所述训练后的神经网络受到将来自所述预测字符概率输出的字符串解译为一个字或多个字的语言模型的约束。
[0012] 根据本发明的又一方面,提供了用于语音转录的装置,所述装置可包括:从用户接收输入音频的单元;从音频文件生成声谱图帧集合的单元;将所述音频文件连同声谱图帧的上下文输入到训练后的神经网络的集合中的单元;从所述训练后的神经网络的集合获得预测字符概率输出的单元;以及使用从所述训练后的神经网络的集合获得的预测字符概率输出对所述输入音频的转录进行解码的单元,所述训练后的神经网络的集合受到将来自所述预测字符概率输出的字符串解译为一个字或多个字的语言模型的约束。

附图说明

[0013] 将参考本发明的实施方式,实施方式的示例可在附图中示出。这些附图旨在是说明性的,而非限制性的。虽然一般是在这些实施方式的上下文中描述本发明,但应理解,并不旨在将本发明的范围限制于这些特定的实施方式。
[0014] 图1描绘根据本发明实施方式的用于训练神经网络模型或神经网络模型的集合的方法。
[0015] 图2以图形方式表示根据本发实施方式的神经网络模型。
[0016] 图3描绘根据本发明实施方式的用于在训练神经网络模型中使用抖动样本的方法。
[0017] 图4描绘根据本发明实施方式的用于组合神经网络模型的集合的方法。
[0018] 图5描绘根据本发明实施方式的利用语言模型对神经网络模型的输出进行约束的方法。
[0019] 图6描绘根据本发明实施方式的用于改进神经网络模型的性能的方法。
[0020] 图7A和图7B描绘根据本发明实施方式的用于数据并行化的方法。
[0021] 图8描绘根据本发明实施方式的用于模型并行化的方法。
[0022] 图9描绘根据本发明实施方式的用于跨越数据的方法。
[0023] 图10描绘根据本发明实施方式的用于收集噪声音频剪辑片段的集合的方法。
[0024] 图11描绘根据本发明实施方式的用于产生合成噪声样本的方法。
[0025] 图12描绘根据本发明实施方式的用于产生伦巴(Lombard)效应音频样本的方法。
[0026] 图13描绘根据本发明实施方式的用于使用训练后的神经网络模型或训练后的神经网络模型的集合的方法。
[0027] 图14描绘根据本发明实施方式的计算系统的简化框图。

具体实施方式

[0028] 在以下描述中,出于解释的目的,阐述了特定细节以便提供对本发明的理解。然而,对本领域技术人员而言,将明显的是,可以在没有这些细节的情况下实践本发明。此外,本领域技术人员将认识到,以下描述的本发明的实施方式可以以多种方式实施,诸如过程、装置、系统、设备或有形计算机可读介质上的方法。
[0029] 图中示出的部件或模块说明本发明的示例性实施方式且意在避免使本发明模糊。还应理解,全部论述中,可将部件描述为分开的功能元件(其可包括子单元),但本领域技术人员将认识到,各种部件或其部分可分成分开的部件或可集成在一起(包括集成在单个系统或部件内)。应注意,本文中所论述的功能或操作可实施为部件。部件可以以软件、硬件或其组合来实施。
[0030] 此外,图中各部件或系统之间的连接并非旨在限于直接连接。相反,这些部件之间的数据可通过中间部件修改、重新格式化或以其它方式改变。此外,可使用额外的或更少的连接。还应注意到,术语“联接”、“连接”或“通信地联接”应理解为包括直接连接、无线连接和通过一个或多个中间设备的间接连接。
[0031] 说明书中对“一个实施方式”、“优选实施方式”、“一实施方式”或“多个实施方式”的引述意指结合实施方式描述的特定特征、结构、特性或功能被包括在本发明的至少一个实施方式中以及可在一个以上的实施方式中。此外,上述短语在说明书各处的出现不必皆指代相同的一个或多个实施方式。此外,某些术语在说明书各处的使用是出于说明的目的,而不应解释为限制性的。本文中所使用的任何标题仅用于组织目的,而不应用来限制说明书或权利要求的范围。
[0032] 此外,应注意:(1)某些步骤可选择性地执行;(2)步骤可不限于本文中所陈述的特定顺序;(3)某些步骤可以以不同的顺序执行;以及(4)某些步骤可同时进行。
[0033] A.引言
[0034] 本文中呈现的是端到端语音系统的实施方式(本文中可称为“深度语音”),其中深度学习取代了先前方法的多个算法和手工设计的处理阶段。在实施方式中,这种与语言模型组合的方法在难的语音识别任务上比传统方法得到更高的性能,同时也更简单。在实施方式中,这些结果可通过使用多个图形处理单元(GPU)和数千小时的数据来训练大型循环神经网络(RNN)而得到。由于这种系统的实施方式直接从数据学习,所以不需要用于说话者自适应或噪声滤波的专门部件。事实上,在对说话者变化和噪声的稳健性至关重要的设置中,本发明的实施方式擅长:如本文中进一步论述,深度语音在Switchboard Hub5’00语料库上胜过先前公布的方法,达到16.5%错误率,且在有噪声的语音识别测试中表现的优于商业系统。
[0035] 然而,应注意,利用端到端深度学习的优点带来了几项挑战:(i)寻找创新的方式来构建大型的、带标签的训练集;以及(ii)寻找多种方式来训练足够大以有效地利用所有这种数据的网络。针对处理语音系统中的带标签的数据的一项挑战是寻找文字转录与输入语音的对齐。这个问题先前已解决,因此使得神经网络在训练期间能够容易消耗未对齐的、转录的音频。同时,提出了用于快速训练大型神经网络的方法,证明了多GPU计算的速度优势。在实施方式中,这些见解被用于基于大语音数据集和可扩展的RNN训练来实现可以胜过更复杂的传统方法的通用学习系统的愿景。这个愿景部分地受到以下工作的启发:应用早期非监督式特征学习技术来代替手工构建的语音特征。
[0036] 在实施方式中,专门开发了循环神经网络(RNN)模型是以很好地映射到GPU。以及,在实施方式中,可采用新的模型分割方案来改进并行化。另外,在实施方式中,开发了用于集成展现系统应学习处理的失真的大量带标签的语音数据的过程。利用收集到的数据与合成的数据的组合,本文中公开的系统的实施方式学习了对逼真的噪声和说话者变化(包括伦巴(Lombard)效应)的稳健性。构建至端到端语音系统的实施方式中的这些理念产生了比传统管道更简单然而在较难的语音任务上还执行的更好的系统。深度语音系统的实施方式在完整Switchboard Hub5’00测试集上达到16.5%的错误率——这是最好的公布结果。此外,在本发明人自身建构的新的噪声语音识别数据集上,深度语音系统的实施方式达到19.1%的字错误率,而最好的商业系统达到30.5%的错误率。
[0037] 本文中呈现了新颖语音识别系统和用于训练及用于使用该系统的新颖方法的实施方式。下文呈现的首先是循环神经网络模型和训练框架的实施方式,接着是对优化的实施方式和数据捕获及数据合成的实施方式的论述。最后呈现了用法和实验结果,其展示了深度语音系统的实施方式的先进性能。
[0038] B.循环神经网络(RNN)训练
[0039] 在实施方式中,训练循环神经网络(RNN)以获取语音声谱图(spectrogram)及产生英语文字转录。假设从训练集采样单个话语x和标签y:
[0040] x={(x(1),y(1)),(x(2),y(2)),…}
[0041] 每一话语x(i)是长度T(i)的时序(time-series),其中每一时间片是音频特征 的向量,t=1,…,T(i)。在实施方式中,可将声谱图用作特征,因此 表示音频帧中的第p个频率区间(bin)在时间t的功率。在实施方式中,RNN的目标是用 将输入序列(sequence)x转换成用于转录的字符概率的序列y,其中ct∈{a,b,c,…,z,空格,省略号,空白}。
[0042] 图1描绘根据本发明实施方式的用于训练神经网络模型或神经网络模型的集合的方法。在实施方式中,将包括声谱图帧x(t)的时序的话语x与C个帧的上下文输入(105)到循环神经网络(RNN)模型的第一层中,第一层评估声谱图帧中的至少一些,其中话语x具有相关联的地面实况标签或已知的标签y。
[0043] 在实施方式中,RNN模型可包括五(5)层隐含单元。对于输入x来说,层l处的隐含单元表示为h(l),其中约定h(0)是输入。在实施方式中,最初三个层是非循环的。对于第一层来说,在每一时间t,输出取决于声谱图帧xt连同C个帧的上下文,该C个帧的上下文可以是来自一侧或两侧的上下文。因此,在实施方式中,上下文可包括出现在某个声谱图帧前面、帧后面或既在声谱图帧前面又在帧后面的一个或多个声谱图帧。应注意,在实施方式中,如果声谱图帧xt位于剪辑片段(clip)的边缘处,则上下文可以是来自一侧,或可具有添加到缺失侧的数据。在实施方式中,帧的上下文可以是C∈{5,7,9},但可使用其它数目的帧。
[0044] 在实施方式中,RNN模型计算(110)遍及多个隐含层。例如,在实施方式中,剩余的非循环层针对每一时间步对独立数据进行操作。因此,对于每一时间t,通过下式来计算最初三个(3)层:
[0045]
[0046] 其中g(z)=min{max{0,z},20}是经剪辑的修正线性(ReLu)激活函数,且W(l)、b(l)分别是层l的权重矩阵和偏置(bias)参数。应注意,可采用其它激活函数。在实施方式中,ReLu单元经剪辑以使循环层中的激活免于爆发,在实践中该单元很少在上边界处饱和。
[0047] 在实施方式中,第四层是双向循环网络。在实施方式中,这个层包括两组隐含单元:一组具有前向循环(forward recurrence)的隐含单元h(f),一组具有后向循环(backward recurrence)的隐含单元h(b):
[0048]
[0049]
[0050] 应注意,在实施方式中,针对第i’个话语,从t=1到t=T(i)顺序地计算h(f),而从t=T(i)到t=1逆顺序地计算单元h(b)。
[0051] 在实施方式中,第五(非循环)层将前向单元和后向单元二者作为输入:
[0052] 其中
[0053] 在实施方式中,输出层是标准softmax函数,其针对每一时间片t和字母表中的字符k产生(115)预测字符概率:
[0054]
[0055] 此处, 和 分别表示权重矩阵的第k个列和第k个偏置。
[0056] 一旦计算出 的预测值(115),便计算损失(120)以测量预测中的错误。在实施方式中,可使用链结式时间分类(CTC)损失 来测量预测中的错误,但可采用其它错误测量技术。在训练期间,相对于给定的地面实况字符序列y的网络输出来评估梯度(125)。从这一点看,相对于所有模型参数来计算梯度可通过网络的剩余部分经由后向传播(130)进行。在实施方式中,可将Nesterov的加速梯度方法用于训练,但可采用其它技术。在实施方式中,可使用0.99的动量,且可在遍及数据的每一历元(epoch)之后通过经选择的用来产生最快速收敛的常数因子来锻炼(anneal)学习速率。
[0057] 图2中示出了完整RNN模型的实施方式。如在RNN模型的实施方式的图形表示中所示,模型205包括五个(5)层。最初三个层(第一层210、第二层215和第三层220)为非循环层,其中输入至第一层210的是声谱图帧xt 240连同C个帧的上下文(例如,C 245)。第四层225&230是双向循环网络,其包括一组具有前向循环的隐含单元h(f)225和一组具有后向循环的隐含单元h(b)230。最后,如图2中所示,第五层235为非循环层,其将第四层225和230的前向单元和后向单元两者的输出接收作为输入并输出预测字符概率。
[0058] 应注意,图2中所描绘的结构比其它神经网络模型简单得多——所描绘的实施方式已限制为单个循环层(其最难并行化),且该模型不使用长短期记忆(LSTM)电路。
[0059] LSTM元胞的一个缺点是它们需要在每一步骤计算并存储多个门控神经元响应。由于前向循环和后向循环是按顺序的,因此在实施方式中这种少量的额外成本可变成计算瓶颈。通过在实施方式中使用均相模型,循环激活的计算变得有效:计算ReLu输出仅涉及在GPU上的少数高度优化的基本线性代数子程序(BLAS)操作和单逐点非线性。
[0060] 1.正则化
[0061] 使用扩展数据集来训练模型的实施方式(本文中在第4节中论述了用于生成数据集和扩展数据集的方式的实施方式),但本文中所使用的循环网络的实施方式仍适合于拟合训练数据。在实施方式中,为进一步减小方差,可采用几种技术。在实施方式中,在训练期间,应用丢弃率(例如,5%)。在实施方式中,在前向反馈层中应用丢弃率但不将丢弃率应用于循环隐含激活。
[0062] 在网络评估期间计算机视觉中常用的技术是:通过平移或反射来随机抖动输入;通过网络来馈送每一抖动的版本;以及对结果投票或求平均值。然而,这在语音识别中不常见;发现以下做法是有益的:将原始音频文件向左和向右平移5毫秒(ms)(其代表本文中的实施方式中所使用的滤波器组步长大小的一半);前向传播经重新计算的特征;以及对结果求平均值。
[0063] 因此,本发明的实施方式包括生成和使用音频数据的抖动集。图3描绘了根据本发明实施方式的用于在训练模型中使用抖动样本的方法。在实施方式中,通过将音频文件平移一个或多个时间值来针对音频文件生成(305)音频文件的抖动集。例如,音频文件可在时间上向前和向后移动几毫秒(例如,5ms)。将音频文件的抖动集(包括相应原始音频文件)转换(310)成声谱图的集合,该声谱图的集合被输入到模型或模型的集合中。在实施方式中,从该模型或模型的集合获得(315)声谱图的集合的输出结果。将该声谱图的集合的输出结果混合(320)以获得相应音频文件的输出。在实施方式中,可通过求平均(例如,取平均值、中值或众数(mode))、加权平均法或投票来进行混合。
[0064] 在实施方式中,在测试时间,也可使用几个RNN的组合,该组合在解码之前对概率求平均。使用模型的组合可以达到更好的结果;然而,模型之间可能存在时移。图4描绘根据本发明实施方式的用于组合神经网络模型的集合的方法。如图4中所示,可使用以下方法中的一种或多种来解决当组合神经网络模型的集合的输出时神经网络模型之间的时移问题,这些方法包括:(a)使用(405)展现相同时移的神经网络模型;(b)使输入移位(410)到各种模型中以具有对齐的输出;以及(c)检查(415)模型的输出之间的对齐以及使输出中的一个或多个移位以使输出对齐。
[0065] 例如,应注意,RNN输出概率的朴素平均可能以微妙的方式失败。在实施方式中,CTC损失函数对于RNN输出的较小时移是不可知的,因此几个同样好的网络可以产生具有基本上相同输出概率的移位版本。在隔离中,这些网络表现优异,但对移位概率求平均不再对的估计产生任何方差减小,且实际上通常导致性能降低。为解决此问题,在实施方式中,仅将输出转录的起始点(onset)在同一时间开始的模型组合。尽管这可通过手动地使输出移位来实现,但足够的网络被训练成使得具有匹配移位的集合可用于实验。
[0066] 2.语言模型
[0067] 当从大量带标签的语音数据训练时,RNN模型的实施方式可以学习产生可读字符级转录。实际上对于许多转录来说,由训练后的RNN模型的实施方式预测的最有可能的字符序列在没有外部语言约束的情况下是完全正确的。由RNN产生的错误往往是英文字的语音学上可信的释译——表1示出了一些示例。
[0068] 表1:直接来自具有错误的RNN的实施方式的转录的示例(左),通过添加语言模型来修复错误的转录的示例(右)。
[0069]
[0070] 错误大多出现在训练集中很少或从不出现的字上。在实践中,这很难避免:从足够的语音数据训练以听到模型可能需要知道的所有字或语言结构是不切实际的。因此,模型的实施方式包括语言模型,或与语言模型整合在一起。在实施方式中,使用N元语言模型,因为容易从庞大的无标签文本语料库来训练这些模型。为进行比较,尽管我们的语音数据集通常包括高达3百万个话语,但用于第6节中的实验的N元语言模型是从2.2亿短语的语料库训练的,其支持495,000个字的词汇。
[0071] 图5描绘根据本发明实施方式的利用语言模型对神经网络模型的输出进行约束的方法。在实施方式中,获得(505)话语x的预测字符输出 在给定RNN模型的输出的情况下,执行搜索(510)以根据RNN输出和语言模型(其中该语言模型将字符串解译为字)二者寻找最有可能的字符序列c1,c2,…。在实施方式中,目的是寻找使组合目标最大化的序列c:
[0072]
[0073] 其中α和β是可调参数(通过交叉验证设置),该可调参数控制RNN、语言模型约束和句子长度之间的取舍。项 表示根据N元模型的序列c的概率。在实施方式中,使用束搜索算法来使这个目标最大化,其中典型的束大小在范围1000–8000内。
[0074] 3.优化
[0075] 在实施方式中,可采用一次或多次优化来加速模型的操作。图6描绘根据本发明实施方式的用于改进神经网络模型的性能的方法。在实施方式中,可实施一次或多次优化(605),包括:(a)一次或多次数据并行化;(b)模型并行化;以及(c)使输入跨入模型的第一层中。
[0076] 如先前所述,实施方式包括几种设计决策以使神经网络能够经得起高速执行并因此快速训练。例如,使用均相修正线性网络有助于执行速度,均相修正线性网络实施简单并依赖于仅少数高度优化的BLAS调用。当充分展开(unroll)时,该网络的实施方式包括用于典型话语的近50亿个连接,因此有效计算是重要的。在实施方式中,可使用多个GPU训练,但有效地进行可能需要一些额外的工作,如下文所解释。
[0077] a)数据并行化
[0078] 在实施方式中,为帮助有效地处理数据,可使用数据并行化的两个等级,其中可同时处理多个数据集。图7A和图7B描绘根据本发明实施方式的用于数据并行化的方法。
[0079] 首先,如图7A中所描绘,每一GPU可并行地处理(705)多个示例。在实施方式中,这可通过将多个示例并置(concatenate)在单个矩阵中来进行。例如,可通过计算WrHt来并行地执行多个工作,而不是在循环层中执行单个矩阵向量乘法Wrht,其中以及其中 与在时间t处的第i’个示例x(i)对应。在实施方式中,GPU
在Ht相对较宽时(例如,1000个示例或更多)最有效,因此,优选地,在一个GPU上处理尽可能多的示例(例如,达到GPU存储器的极限)。
[0080] 其次,当需要使用的小批量或数据集比单个GPU可以自身支持的小批量或数据集更大时,可使用遍及多个GPU的数据并行化,如图7B中所示出。
[0081] 如图7B中所示,在不同GPU上使用(715)模型的副本,其中每一GPU处理单独小批量的示例。然后,在实施方式中,每一GPU在每一迭代期间将其所计算的梯度与其对等体(peer)组合(720)。在实施方式中,通常本发明人将遍及GPU的2×至4×数据并行化用于实验。
[0082] 然而,当话语具有不同长度时,由于它们不能组合在单个矩阵乘法中,不容易实施数据并行化。在实施方式中,通过将训练示例按长度分类以及仅将大小类似的话语组合成小批量(在必要时用静音填充使得批量中的所有话语具有相同长度)来解决这个问题(710)。
[0083] b)模型并行化
[0084] 数据并行化为适度倍数的小批量尺寸(例如,2至4)产生训练加速,但可面临递减的返回,因为将更多示例批处理为单个梯度更新不能改进训练收敛速率。也就是说,在训练中,在多达2×GPU上处理多达2×示例并不始终产生2×加速。固定总的小批量尺寸但将示例扩展到多达2×GPU也可能是低效的:当每一GPU内的小批量减少时,大多数操作变得受存储器带宽限制。为进一步扩展,在实施方式中,可采用通过将模型进行分割的并行化(“模型并行化”)。
[0085] 由于循环层的顺序性质,对模型的一些实施方式进行并行化是具有挑战性的。由于双向层由独立的前向计算和后向计算组成,因此,可并行地执行该两种计算。不幸的是,在实施方式中,朴素地拆分RNN以将h(f)和h(b)置于分开的GPU上涉及在计算h(5)时的显著数据传输,其中h(5)取决于h(f)与h(b)两者。因此,在实施方式中,可选择对模型需要较少通信的工作的不同分割——模型可沿时间维度分为两半。
[0086] 图8描绘根据本发明实施方式的用于模型并行化的方法。在实施方式中,可沿时间维度轻松地分解所有层(循环层除外),其中时序的第一半部(从t=1到t=T(i)/2)被分配给一个GPU,第二半部被分配给另一GPU。在实施方式中,当计算循环层激活时,第一GPU开始计算(805)前向激活,而第二GPU开始计算(805)后向激活。在中间点(t=T(i)/2),两个GPU交换(810)中间激活 和 并互换角色。然后,第一GPU完成(815)h(b)的后向计算,以及第二GPU完成h(f)的前向计算。
[0087] c)跨越
[0088] 由于循环层最难并行化,因此本发明的实施方式可包括通过迈出“步子”(或步幅(stride))来设法减少RNN的实施方式的循环层的运行时间。图9描绘根据本发明实施方式的用于跨越数据的方法。
[0089] 如图9中所示,通过在原始输入中迈出步长尺寸为q时间片(例如,步长尺寸为2)的步幅以使得展开的RNN具有更少的步,可缩短对循环层的处理时间。这种方法类似于在第一层中具有步长尺寸为2的卷积网络。在实施方式中,cuDNN库(其为优化的低级原语(primitive)的集合,用于提高在由加州圣克拉拉的NVIDIA制造的 兼容GPU上的深度神经网络(DNN)的处理速度)可用来有效地实施这种卷积的第一层。
[0090] 4.训练数据
[0091] 大规模深度学习系统需要大量带标签的数据。为训练系统的实施方式,需要许多记录的话语和相应的英语转录,但很少存在足够规模的公共数据集。为训练模型的实施方式,收集由来自9600个说话者的5000个小时的朗读语音组成的广泛数据集。为进行比较,表2概述了可用的带标签的数据集。
[0092] 表2:用于训练深度语音的实施方式的数据集的概述。Wall Street Journal、Switchboard和Fisher语料库(见Language Resources and Evaluation Conference(语言资源与评估会议)(LREC)上的C.Cieri、D.Miller和K.Walker的“The Fisher corpus:a Resource for the Next Generations of Speech-to-text”,卷4,第69-71页,2004年,其整体内容通过引用并入本文中)皆由语言数据联盟公布。
[0093] 数据集 类型 小时数 说话者数WSJ 朗读 80 280
Switchboard 交谈 300 4000
Fisher 交谈 2000 23000
Baidu 朗读 5000 9600
[0094] 在实施方式中,通过亚马逊土耳其机器人来记录来自付费志愿者的语音数据。每一志愿者(“土耳其人”)被指示将一小段文本提示朗读到计算机麦克风中。将所记录的语音和匹配的文字转录添加到服务器上的数据集。由于以此方式产生的朗读语音听起来与在其它上下文中听到的自发性语音不同,所以土耳其人被指示尽可能自然地说话。单独的受信任的土耳其人的团队偶尔肩负质量控制的任务,验证所记录的话语与转录匹配。强制执行对志愿者的贡献的管制,以确保数据集包含多种说话者且并未被少数主要贡献者所淹没。在实施方式中,也通过土耳其人的计算机扬声器或耳机来播放噪声以诱导伦巴效应,这将在下文更详细地论述。
[0095] a)通过叠加合成
[0096] 在实施方式中,使用数据合成以进一步扩展潜在的训练数据。在实施方式中,目的是改进现有系统崩溃的有噪声的环境中的性能。然而,从有噪声的环境中捕获带标签的数据(例如,朗读语音)并不实际,因此本文中公开了发现的用于生成这种数据的其它方式。
[0097] 首先,通过源信号的叠加过程来生成音频信号。这个事实用来合成有噪声的训练数据。例如,在给定语音音频轨迹(track)x(i)和“噪声”音频轨迹ξ(i)的情况下,可由形成“有噪声的语音”轨迹以模拟在有噪声的环境中捕获的音频。在实施方式中,可将混响、回声或其它减震形式添加到x(i)、ξ(i)或两者的功率谱,然后将其加在一起以产生相当逼真的音频场景。
[0098] 然而,应注意,这种方法中存在一些风险。例如,为了获得1000个小时干净语音和产生1000个小时有噪声的语音,将通常需要跨度为大约1000小时的独特噪声轨迹。满足于大约10个小时的重复噪声并非优选的,因为循环网络也许变得有可能记住噪声轨迹并将它从合成的数据中“减去”。因此,取代使用具有长度为1000个小时的单个噪声源ξ(i)的做法是,在实施方式中,可改为使用大量更短的剪辑片段(其更容易从公共视频源收集到)并在将它们叠加之前将它们视为不同的噪声源:
[0099]
[0100] 图10描绘根据本发明实施方式的用于收集噪声音频剪辑片段的集合的方法。在实施方式中,收集(1005)候选“噪声”剪辑片段的集合,该候选“噪声”剪辑片段的集合可从多个源(诸如,互联网或其它数据集)中的任一个收集。
[0101] 当将从音频或视频剪辑片段收集的多个信号叠加时,可以得到与真实环境中所记录的噪声种类不同的“噪声”声音。为确保合成数据与真实数据之间的良好匹配,可舍弃其中每一频带中的平均功率与在真实有噪声的记录中观测到的平均功率显著不同的任何候选噪声剪辑片段。因此,在实施方式中,可从候选噪声剪辑片段的集合中选择(1010)一个候选噪声剪辑片段以用于评估。可作检查(1015)以确定该候选噪声剪辑片段在频带中的平均功率与在真实噪声记录中观测到的平均功率是否显著不同。如果该候选噪声剪辑片段在频带中的平均功率与在真实噪声记录中观测到的平均功率显著不同,则丢弃(1030)该剪辑片段。如果候选噪声剪辑片段在频带中的平均功率并非与在真实噪声记录中观测到的平均功率显著不同,则将其添加(1020)到已认可的噪声剪辑片段的集合。
[0102] 在实施方式中,确定(1025)是否存在待评估的更多候选噪声剪辑片段。如果存在待评估的一个或更多个候选噪声剪辑片段,则可重复过程(步骤1010-步骤1020)。然而,如果不再存在待评估的候选噪声剪辑片段,则过程结束(1035)。
[0103] 在给定已认可的噪声剪辑片段的集合的情况下,可产生合成噪声的集合。图11描绘根据本发明实施方式的用于产生合成噪声样本的方法。在实施方式中,可将从已认可的噪声剪辑片段的集合选择的一个噪声剪辑片段添加(1105)或多个噪声剪辑片段一同添加以形成噪声轨迹。在实施方式中,调节(1110)噪声轨迹相对于音频样本的信噪比。将经调节的噪声轨迹添加(1115)到音频样本以形成合成噪声样本,以及将该合成噪声样本包括(1120)在训练数据的集合中。在实施方式中,可重复(1125)这个过程直到产生令人满意的数目的样本,此时过程结束(1130)。
[0104] b)捕获伦巴效应
[0105] 语音识别系统在有噪声的环境中所遇到的一个挑战性效应是“伦巴效应”,其中说话者主动改变他们的声音的音高(pitch)或变音(inflection)以克服他们周围的噪声。由于语音数据集是在安静的环境中收集的,这种(无意识)效应并未在记录的语音数据集中显现。为确保在本文中的实施方式中所使用的训练数据中表现出该效应,在数据收集期间有意地诱导伦巴效应。图12描绘根据本发明实施方式的用于产生伦巴效应的音频样本的方法。
[0106] 如图12中所描绘,录制话语的人被指示佩戴(1205)耳机。然后,在数据收集期间通过在人录制话语时借助他们佩戴的耳机播放(1210)嘈杂的背景噪声来有意地诱导伦巴效应。噪声诱导说话者将他们的声音变音,从而允许在训练数据中捕获(1215)伦巴效应。应注意,也可通过扬声器来播放噪声(以及可将噪声从所捕获的音频中减去);然而,使用耳机具有捕获到不带背景噪声的“干净”记录的优势。干净记录允许其后添加其它合成噪声。
[0107] 5.用于使用训练后的模型的实施方式的示例方法
[0108] 图13描绘根据本发明实施方式的用于使用训练后的神经网络模型或训练后的神经网络模型的集合的方法。在实施方式中,从用户接收(1305)输入音频。如图13中所描绘,在实施方式中,可将输入音频归一化(1310)以使总功率与用来训练模型或模型的集合的训练样本的总功率一致。
[0109] 在实施方式中,可通过将经归一化的输入音频平移一个或多个时间值而从经归一化的输入音频生成(1315)音频文件的抖动集。例如,音频文件的抖动集可包括经归一化的输入音频和在时间上被向前移位几毫秒的音频文件以及在时间上被向后移位几毫秒的音频文件。
[0110] 在实施方式中,通过计算n个线性隔开的对数滤波器组的声谱图和的能量项来从音频文件的抖动集(包括经归一化的输入音频)生成(1320)声谱图帧的集合。在实施方式中,在以q毫秒(例如,10ms)为步幅的p毫秒(例如,20ms)窗口上计算滤波器组。
[0111] 在实施方式中,将来自声谱图帧的集合的每一声谱图帧x(t)输入(1325)到一个或多个训练后的神经网络中。在实施方式中,输入(1325)声谱图帧和C个帧(例如,9个帧)的上下文。帧的上下文可来自声谱图帧的一侧或来自两侧。
[0112] 在实施方式中,使用多个训练后的神经网络,以及可将针对被输入的声谱图帧的、来自训练后的神经网络的集合的预测字符概率输出结合(1330)或组合在一起。可使用上文参考图4描述的方法中的一种或多种来执行组合——但也可采用其它方法。
[0113] 最后,在实施方式中,通过使用所组合的预测字符概率输出对输入音频的转录进行解码(1335)。在实施方式中,解码处理可包括使用训练后的N元语言模型以将对所组合的预测字符概率输出的解码约束在字级。
[0114] 6.示例实验
[0115] 执行两组实验以评估模型系统的实施方式。在两种情况下,从对表2中的数据集的选择来训练如节B中所描述的模型的实施方式以预测字符级转录。然后,将预测概率向量和语言模型馈送到解码器中以产生字级转录,将字级转录与地面实况转录进行比较以产生字错误率(WER)。应注意,这些实验和结果是通过说明的方式提供,以及这些实验和结果是在特定条件下使用本发明的实施方式执行的;因此,这些实验和它们的结果都不应被用来限制本发明的范围。
[0116] a)交谈语音:Switchboard Hub5’00(完整)
[0117] 为将本发明的实施方式系统(其可在本文中称为深度语音实施方式、深度语音模型、深度语音网络、深度语音系统,或简单地称为深度语音)与先前研究进行比较,使用已接受的但具有高度挑战性的测试集Hub5’00(LDC2002S23)。一些研究者将此集合拆分成“易”(Switchboard)和“难”(CallHome)实例,常常仅报导与更容易部分相关的新成果。在本文中所呈现的实验中,使用完整集(其为最具挑战性的情况),以及报导整体字错误率。
[0118] 在仅300个小时Switchboard交谈式电话语音数据集上训练深度语音系统,以及在Switchboard与Fisher(FSH)(以与Switchboard类似的方式收集的2000个小时语料库)两者上训练训练深度语音系统。当在Hub5’00上进行测试时,许多研究者对用仅来自Switchboard交谈式电话语音的300个小时训练的模型进行评估。部分地,这是因为在完整的2000个小时Fisher语料库上进行训练在计算上是困难的。使用第3节中提到的优化技术,深度语音系统能够仅在几个小时内在2300个小时的数据上执行完整的推算(pass)。
[0119] 由于Switchboard和Fisher语料库是以8kHz的采样速率分布,因而计算80个线性隔开的对数滤波器组的声谱图和能量项。在步幅为10ms的20ms窗口上计算滤波器组。不评估更复杂的特征(诸如,梅尔刻度对数滤波器组或梅尔频率倒谱系数)。
[0120] 说话者自适应对于成功实现其它当前自动语音识别(ASR)系统来说是重要的,特别是当在300个小时Switchboard上训练时。对于在Hub5’00上测试的模型来说,通过在每一说话者的基础上将谱特征归一化来应用简单形式的说话者自适应。除此之外,不以任何方式修改输入特征。
[0121] 为进行解码,使用在Fisher和Switchboard转录上训练的具有30,000个词汇的4元语言模型。通过在保留的开发集合上的交叉验证来选择用于解码目标的超参数。
[0122] 所测试的深度语音SWB模型是具有5个隐含层的网络,每一隐含层具有在仅300个小时Switchboard上训练的2048个神经元。深度语音SWB+FSH模型是5个RNN的组合,每一RNN具有5个隐含层,隐含层具有在完整的2300个小时的组合语料库上训练的2304个神经元。在上下文的+/-9帧的输入上训练所有网络。
[0123] 表3中报导了结果。来自Vesely等人的模型(DNN-HMM sMBR)在使用了典型混合式DNN-HMM系统将训练集重新对齐之后,在DNN的顶部使用基于序列的损失函数。此模型在组合的Hub5’00测试集上的性能是先前公布的最佳结果。当在组合的2300个小时的数据上进行训练时,深度语音系统在此基线上改进了1.9%绝对WER和10.3%相对WER。来自Maas等人的模型(DNN-HMM FSH)当在Fisher 2000个小时语料库上进行训练时达到了19.9%WER。该系统是使用最先进水平的开源语音识别软件Kaldi构建的。这个结果被包括在内,以证明当在相当数量的数据上训练时深度语音可与最好的现有ASR系统竞争。
[0124] 表3:公布的在Switchboard数据集拆分上的错误率(%WER)。标记为“SWB”和“CH”的列分别是Hub5’00的易子集和难子集。
[0125]
[0126]
[0127] 参考文献A:K.Vesely、A.Ghoshal、L.Burget和D.Povey,“Sequence-Discriminative Training of Deep Neural networks”,Interspeech2013的会议记录,法国里昂,2013年8月,第2345-2349页(其整体内容通过引用并入本文中)。
[0128] 参考文献B:A.L.Maas、A.Y.Hannun、C.T.Lengerich、P.Qi、D.Jurafsky和A.Y.Ng,“Increasing Deep Neural network Acoustic Model Size for Large Vocabulary Continuous Speech recognition”,abs/1406.7806,2014年(可从//arxiv.org/abs/1406.7806获得)(其整体内容通过引用并入本文中)。
[0129] 参考文献C:F.Seide、G.Li、X.Chen、D.Yu,“Feature Engineering in Context-Dependent Deep Neural networks for Conversational Speech Transcription”,IEEE Workshop on Automatic Speech Recognition and Understanding(ASRU)的会议记录(美国夏威夷Waikoloa,2011年12月11日),第24–29页(其整体内容通过引用并入本文中)。
[0130] 参考文献D:B.Kingsbury、T.N.Sainath和H.Soltau,“Scalable Minimum Bayes Risk Training of Deep Neural network Acoustic models Using Distributed Hessian-free Optimization”,INTERSPEECH会议记录,2012年9月(其整体内容通过引用并入本文中)。
[0131] 参考文献E:T.N.Sainath、A.-R.Mohamed、B.Kingsbury和B.Ramabhadran,“Deep convolutional neural networks for LVCSR”,2013IEEE International Conference on Acoustics,Speech and Signal Processing,2013年(其整体内容通过引用并入本文中)。
[0132] b)有噪声的语音
[0133] 很少存在用于测试有噪声的语音性能的标准,因此构建具有来自10个说话者的100个有噪声的话语和100个无噪声的话语的评估集。噪声环境包括:背景无线电或TV;水槽中的洗碗碟;拥挤的餐厅;饭店;以及在雨中驾驶的汽车内部。话语文本主要来自搜索查询和文本消息以及新闻剪辑片段、电话交谈、互联网评论、公开语音和电影脚本。对有噪声的样本的信噪比(SNR)进行精确控制并不可能,但SNR比值目标在6dB与2dB之间。
[0134] 对于以下实验来说,在表2中列出的所有数据集(大于7000个小时)上训练RNN的实施方式。由于训练是针对15至20个历元并利用每一次推算中新合成的噪声,因此,模型从超过100,000个小时的新数据学习。此外,使用6个网络的组合,每一网络具有5个隐含层,隐含层具有2560个神经元。不将任何形式的说话者自适应应用于训练集或评估集。在每一话语的基础上将训练示例归一化以便使每一示例的总功率一致。特征是160个线性隔开的对数滤波器组(该对数滤波器组是在以10ms为步幅的20ms窗口上计算的)和能量项。在特征化之前,将音频文件重新采样到16kHz。最后,实验者从每一频率区间在训练集上移除全局均值并除以全局标准偏差,因此主要地,在训练的早期阶段输入得到了很好地扩展。
[0135] 如节B.2中所描述,将5元语言模型用于解码。在Common  Crawl(可从commoncrawl.org获得)的2.2亿短语上训练语言模型,该Common Crawl经选择使得每一短语的至少95%字符在字母表中。仅保持最普通的495,000个字,剩余部分被重新映射到“未知”符记。
[0136] 将深度语音系统的训练后的实施方式与以下几个商业语音系统相比较:(1)wit.ai;(2)Google语音API;(3)Bing语音;以及(4)苹果听写。应注意,wit.ai和Google语音各自具有基于HTTP的API;为测试苹果听写和Bing语音,使用内核扩展来将音频输出回送到音频输入和OS X听写服务以及Windows 8Bing语音识别API。
[0137] 测试被设计成用基准(benchmark)问题测试在有噪声的环境中的性能。这种情况为评估网络语音API带来了挑战:当SNR太低或在一些情况下当话语太长时,这些系统将根本给不出结果。因此,将比较限制于话语的子集(所有系统针对该子集返回非空结果)。这导致准确度比在API未能作出响应的情况下认为错误率是100%时将报导的准确度高得多。在测试文件上评估每一系统的结果显示在表4中。
[0138] 表4:在原始音频上评估的3个系统的结果(%WER)。用由所有系统给出的预测仅在话语上对所有系统计分。紧挨着每一数据集的括弧中的数字(例如,干净(94))是所计分的话语的数目。
[0139]系统 干净(94) 有噪声(83) 组合式(177)
Apple听写 14.24 43.76 26.73
Bing语音 11.73 36.12 22.05
Google API 6.64 30.47 16.72
wit.ai 7.94 35.06 19.41
深度语音 6.56 19.06 11.85
[0140] 为评估节B.4中所描述的噪声合成技术的功效,训练两个RNN的实施方式,一个是在5000个小时的原始数据上训练,另一个是在加上噪声的相同的5000个小时上训练。在100个干净话语上,两个模型表现得大约相同,干净训练后的模型和噪声训练后的模型分别为9.2%WER和9.0%WER。然而,在100个有噪声的话语上,有噪声的模型达到22.6%WER(胜过干净模型的28.7%WER)、6.1%绝对改进和21.3%相对改进。
[0141] c)结论
[0142] 本文中所呈现的实施方式的几个部分在先前结果的基础上扩展或受到先前结果的启发。在20世纪90年代初,神经网络声学模型和其它链结方法(connectionist approach)首先被引入到语音管道。这些系统(类似于深度神经网络(DNN)声学模型)仅替代语音识别管道的一个阶段。机械地,可认为本文中所呈现的系统的实施方式包括与用于从深度学习算法来构建端到端语音系统的其它努力的某些相似性。例如,Graves等人(A.Graves、S.Fernández、F.Gomez和J.Schmidhuber,“Connectionist temporal classification:Labelling unsegmented sequence data with recurrent neural networks”,第23届International Conference on Machine Learning(ICML)的会议记录,第369-376页,ACM(2006),其整体内容通过引用并入本文中)先前介绍了用于对由RNN产生的转录计分的链结式时间分类(CTC)损失函数,以及用长短期记忆(LSTM)网络先前已将这种方法应用到语音(见A.Graves和N.Jaitly的“Towards end-to-end speech recognition with recurrent neural networks”,第31届International Conference on Machine Learning(ICML)的会议记录,第1764–1772页,2014年,其整体内容通过引用并入本文中)。本文中所呈现的实施方式针对训练程序的一部分类似地采用了CTC损失,但使用更简单的循环网络和修正-线性激活。可认为循环网络的实施方式包括与由Hannun等人
(A.Y.Hannun、A.L.Maas、D.Jurafsky和A.Y.Ng,“First-pass large vocabulary continuous speech recognition using bi-directional recurrent DNNs”,The Computing Research Repository(CoRR)abs/1408.2873,2014(可从arxiv.org/abs/
1408.2873获得),其整体内容通过引用并入本文中)使用的双向RNN的某些相似性,但具有多个变化以提高其可扩展性(scalability)。通过关注于可扩展性,本文中的结果表明:即使没有更复杂的LSTM机械装置,更简单的网络仍可以是有效的。
[0143] 先前已考虑了为改进深度学习(DL)算法的性能的可扩展性,以及并行处理器(包括GPU)的使用已用在新近大规模DL结果中。DL算法到GPU的早期端口揭示了显著的速度提高。研究者也已开始选择很好地映射到GPU硬件的设计以获得更高的效率,包括卷积网络和局部连接网络,尤其是当可获得如cuDNN(见S.Chetlur、C.Woolley、P.Vandermersch、J.Cohen、J.Tran、B.Catanzaro和E.Shelhamer,“cuDNN:Efficient primitives for deep learning”CoRR,abs/1410.0759,2104(可从arxiv.org/abs/1410.0759获得),其整体内容通过引用并入本文中)和BLAS的优化库时。实际上,利用高性能计算架构,目前可使用GPU的集群来训练具有不止100亿个连接的神经网络。这些结果启发了本文中的至少一些实施方式的开发,这些实施方式通过在尝试设计算法和模型自身之前关注于选择可扩展设计以有效地利用多个GPU而开发。
[0144] 在具有训练大型模型的潜在性的情况下,也需要大型训练集。在其它领域(诸如,计算机视觉),大型带标签的训练集已使得它们在馈送越来越大的DL系统时在性能上实现了重大飞跃。然而,在语音识别中,这种大型训练集不常见,其中典型的基准具有范围从数十小时(例如,具有80个小时的Wall  Street Journal语料库)到几百小时(例如,Switchboard和Broadcast News)的训练集。更大的基准数据集(诸如,具有2000个小时转录语音的Fisher语料库)是罕见的并且仅在近年来被研究。为充分利用本文中所描述的网络的实施方式的表达能力,大型的带标签的话语集并非所依赖的唯一的数据集,而是还使用合成技术来产生新示例。在计算机视觉中类似方法是已知的,但发现,当进行得当时,合成的数据对语音训练来说会尤为方便且有效。
[0145] 应注意,本文中的新颖公开提供了相对于现有这些方法的新颖和显著的进步。本文中呈现的是用于产生、训练和使用基于端到端深度学习的语音系统的新颖系统和方法,该语音系统能够在以下至少两种具有挑战性的情况下胜过现有最先进的识别管道:干净、交谈式语音;以及在有噪声的环境中的语音。实施方式包括多GPU训练,以及还包括独特的数据收集和合成策略以构建展现出系统应当能够处理的失真(诸如,背景噪声和伦巴效应)的大型训练集。这些解决方案允许构建数据驱动的语音系统,其比现有方法表现得更好同时不再依赖阻碍进一步进展的复杂处理阶段。
[0146] C.示例性计算系统实施方式
[0147] 本专利文献的诸方面涉及计算系统。出于本公开的目的,计算系统可包括任何工具或工具的集合体,其可操作来核算、计算、确定、分类、处理、传输、接收、检索、发起、路由、存储、显示、通讯、表明、检测、记录、再现、处置或利用任何形式的信息、智能或数据以用于商业、科学、控制或其它目的。例如,计算系统可以是个人计算机(台式或膝上型)、平板计算机、移动设备(例如,个人数字助理(PDA)或智能电话)、服务器(例如,刀片式服务器或机架式服务器)、网络设备或任何其它合适的设备,以及可在大小、形状、性能、功能和价格上变化。计算系统可包括随机存取存储器(RAM)、一个或多个处理资源(诸如,中央处理单元(CPU),或硬件或软件控制逻辑)、ROM和/或其它类型的存储器。计算系统的额外部件可包括一个或多个磁盘驱动器、用于与外部设备通信的一个或多个网络端口以及各种输入和输出(I/O)设备(诸如,键盘、鼠标、触摸屏和/或视频显示器)。计算系统还可包括一个或多个总线,该总线可操作为在各种硬件部件之间传输通信内容。
[0148] 图14描绘根据本发明实施方式的计算系统1400的框图。将理解的是,对于计算系统1400,示出的功能可操作为支持计算系统的各种实施方式——但应理解,计算系统可以以不同方式来配置及包括不同部件。如图14中所示,计算系统1400包括提供计算资源及控制计算机的一个或多个中央处理单元(CPU)1401。CPU 1401可用微处理器等实施,以及计算系统1400还可包括一个或多个图形处理单元(GPU)1417和/或用于数学计算的浮点协处理器。计算系统1400还可包括系统存储器1402,系统存储器1402可呈随机存取存储器(ROM)、只读存储器(ROM)或两者的形式。
[0149] 计算系统1400中还可提供多个控制器和外围设备,如图14中所示。输入控制器1403表示与各种输入设备(1404)(诸如,键盘、鼠标或手写笔)的接口。还可存在扫描仪控制器1405,其与扫描仪1406通信。计算系统1400还可包括用于与一个或多个存储设备1408接合的存储控制器1407,其中每一存储设备1408包括存储介质(诸如,磁带或磁盘或光学介质),存储介质可用来记录操作系统的指令的程序、实用程序和应用程序,它们可包括实施本发明各方面的程序的实施方式。存储设备1408还可用来存储已处理的数据或根据本发明待处理的数据。计算系统1400还可包括用于向显示设备1411提供接口的显示控制器1409,其中显示设备1411可以是阴极射线管(CRT)、薄膜晶体管(TFT)显示器或其它类型的显示器。计算系统1400还可包括用于与打印机1413通信的打印机控制器1412。通信控制器1414可以与一个或多个通信设备1415接合,从而使得计算系统1400能够通过多种网络(包括互联网、以太网云、FCoE/DCB云、局域网(LAN)、广域网(WAN)、存储区域网络(SAN))中的任一个或通过任何合适的电磁载波信号(包括红外信号)来连接到远程设备。
[0150] 在示出的系统中,所有主要的系统部件可连接到总线1416,其中总线1416可表示不止一个物理总线。然而,各种系统部件可彼此物理接近或可不彼此物理接近。例如,可将输入数据和/或输出数据从一个物理位置远程传输到另一物理位置。另外,可通过网络从远程位置(例如,服务器)访问实施本发明多种方面的程序。可通过多种机器可读介质中的任一种来传送这种数据和/或程序,机器可读介质包括但不限于:磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM和全息设备;磁光介质;以及专门配置成存储或者存储并执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪存设备以及ROM设备和RAM设备。
[0151] 可用用于使一个或多个处理器或处理单元执行步骤的指令将本发明的实施方式编码在一个或多个非暂时性计算机可读介质上。应注意,一个或多个非暂时性计算机可读介质应包括易失性和非易失性存储器。应注意,替代性实现方式是有可能的,包括硬件实现方式或软件/硬件实现方式。硬件实现的功能可使用ASIC、可编程阵列、数字信号处理电路等来实现。因此,在任一权利要求书中,“手段(means)”旨在涵盖软件实现方式与硬件实现方式二者。类似地,如本文中所使用的术语“计算机可读介质”包括在其上实施有指令的程序的软件和/或硬件,或其组合。考虑到这些替代的实现方式,应理解,诸附图和相关描述向本领域技术人员提供用于执行所需处理而需要的用于撰写程序代码(即,软件)和/或制造电路(即,硬件)的功能信息。
[0152] 应注意,本发明的实施方式可进一步涉及具有非暂时性、有形计算机可读介质的计算机产品,其中非暂时性、有形计算机可读介质上具有用于执行多种计算机实施的操作的计算机代码。介质和计算机代码可以是出于本发明的目的而专门设计和建构的介质和计算机代码,或它们可以是相关领域技术人员所已知或相关领域技术人员可用的种类。有形计算机可读介质的示例包括但不限于:磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM和全息设备;磁光介质;以及专门配置成存储或者存储并执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑设备(PLD)、闪存设备以及ROM设备和RAM设备。计算机代码的示例包括机器代码(诸如,由编译器产生)和包含由计算机使用解译器执行的更高级代码的文件。本发明的实施方式可全部或部分地实施为机器可执行指令,机器可执行指令可以在由处理设备执行的程序模块中。程序模块的示例包括库、程序、例程、对象、部件和数据结构。在分布式计算环境中,程序模块可物理地位于本地设置、远程设置或二者中。
[0153] 本领域技术人员将认识到,计算系统或编程语言对于本发明的实践来说不是至关重要的。本领域技术人员还将认识到,上述多个元件可被物理地和/或功能地分成子模块或组合在一起。
[0154] 应注意,以上权利要求书的要素可按不同方式来排列,包括具有多种依赖性、配置和组合。例如,在实施方式中,各权利要求的主题可与其它权利要求组合。例如,权利要求4的主题可与权利要求1至3中的任一项的主题组合;权利要求6的主题可与权利要求4或5的主题组合;权利要求8的主题可与权利要求1至7的主题组合;权利要求10的主题可与权利要求8或9的主题组合;权利要求13的主题可与权利要求11或12的主题组合;权利要求15的主题可与权利要求11或14的主题组合;权利要求16的主题可与权利要求11至15的主题组合;以及权利要求19的主题可与权利要求17或18的主题组合。
[0155] 本领域技术人员将了解,前述示例和实施方式是示例性的且并不限制本发明的范围。其意图是,本领域的技术人员在阅读说明书及研究附图之后所显而易见的所有排列、提高、等效、组合及改进之处都包括在本发明的真实精神和范围内。