CN113270091B - 音频处理系统和方法 - Google Patents
音频处理系统和方法 Download PDFInfo
- Publication number
- CN113270091B CN113270091B CN202010093128.2A CN202010093128A CN113270091B CN 113270091 B CN113270091 B CN 113270091B CN 202010093128 A CN202010093128 A CN 202010093128A CN 113270091 B CN113270091 B CN 113270091B
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- network architecture
- audio
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013528 artificial neural network Methods 0.000 claims abstract description 211
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 123
- 230000000306 recurrent effect Effects 0.000 claims abstract description 93
- 230000006870 function Effects 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 36
- 230000009467 reduction Effects 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 13
- 238000010606 normalization Methods 0.000 claims description 10
- 238000011176 pooling Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 5
- 230000006403 short-term memory Effects 0.000 claims description 4
- 239000013598 vector Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000013507 mapping Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 238000003062 neural network model Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000013518 transcription Methods 0.000 description 5
- 230000035897 transcription Effects 0.000 description 5
- 238000013506 data mapping Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 235000017399 Caesalpinia tinctoria Nutrition 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000388430 Tara Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 230000001054 cortical effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 230000002739 subcortical effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种音频处理系统和方法。该音频处理系统包括:卷积神经网络架构,用于处理音频数据,其中卷积神经网络架构包括串联布置的多个卷积组,其中多个卷积组中的至少一个卷积组包括并联布置的至少两个数据映射的组合;递归神经网络架构,用于至少处理从卷积神经网络架构的输出得到的数据;以及前馈神经网络架构,用于至少处理从递归神经网络架构的输出得到的数据,其中前馈神经网络架构被配置为输出与语音相关联的多个声音单元的分类分数,该分类分数指示在音频数据中一个或多个声音单元的存在情况。
Description
技术领域
本技术属于语音处理领域。某些示例涉及用于确定语音中声音单元的存在情况的神经网络架构。
背景技术
计算的最新进展已经提高了实现许多长期寻求的语音控制应用的可能性。例如,统计模型的改进(包括用于有效神经网络架构的实用框架)极大地提高了先前语音处理系统的精度和可靠性。随之而来的是广域计算机网络的兴起,这提供了可以使用应用程序编程接口进行简单地访问的一系列模块化服务。语音正迅速成为提供用户界面的可行选择。
由于语音是人类交流的自然方式,因此语音控制比传统用户界面(诸如键盘和鼠标,或者最近的电容式触摸屏)具有许多优势。使用语音控制设备使用户能够执行多任务,诸如安全地操作机动车辆或重型机械或做饭。语音控制设备因此在家庭中变得流行起来,在家庭中,语音控制设备通常用于提问、播放音乐和设置提醒。语音控制也是汽车系统设计中活跃的研究领域。
尽管有这些进步,但用户经常报告说,当前的系统缺乏人类水平的响应能力和智能。将空气中的压力波动转换为解析的命令非常困难。语音处理通常涉及复杂的处理流水线,其中任何阶段的错误都可能破坏成功的机器解释。这些挑战中的许多挑战对能够在无意识的情况下使用皮质和亚皮质结构处理语音的人类而言没有立即显现。然而,在该领域工作的工程师很快就意识到人的能力与现有技术的机器处理之间的差距。
在语音处理中,声学模型可以输出概率矢量,该概率矢量指示在一小部分语音中存在一组语言特征中的哪些。语言特征可以包括音段(senone)、音位、字素、字符、字母、单词和子单词单元中的一个或多个。在语音处理中,可以确定一段时间内的音位序列,然后可以将其映射到一组单词。
Sainath,Tara N.等人在他们的论文“卷积长短时记忆全连接的深度神经网络”(“Convolutional,long short-term memory,fully connected deep neural networks”,2015IEEE International Conference on Acoustics,Speech and Signal Processing(ICASSP),IEEE,2015)(通过引用的方式并入本文中)中描述了一种用于处理音频数据的神经网络模型,该神经网络模型将卷积神经网络(CNN)、长短时记忆(LSTM)和深度神经网络(DNN)结合到一个统一的架构中。与其他LSTM模型相比,该统一架构在字错误率方面提供了适度的4-6%的改进。
然而,Sainath提出的神经网络模型是在学术背景下开发的,研究人员可以使用足够的计算资源进行训练和预测。因此,挑战在于提供一种能够在实时应用中处理音频数据并且能够在包括便携式和嵌入式设备在内的各种计算环境中实现的神经声学模型。与诸如高斯混合模型之类的较早方法相比,还希望神经声学模型来提供改进的语音处理。
发明内容
根据本发明的一个方面,一种音频处理系统包括:卷积神经网络架构,所述卷积神经网络架构用于处理音频数据;递归神经网络架构,所述递归神经网络架构用于至少处理从卷积神经网络架构的输出得到的数据;以及前馈神经网络架构,所述前馈神经网络架构至少处理从所述递归神经网络架构的输出得到的数据,其中所述前馈神经网络架构被配置成输出与语音相关联的多个声音单元的分类分数,所述分类分数指示在所述音频数据中一个或多个声音单元的存在情况。所述卷积神经网络架构包括:串联布置的多个卷积组,一个卷积组包括并联布置的两个数据映射的组合。
多个卷积组的使用提供了一种高效实现方式,该实现方式在分类中维持低错误率,同时允许在各种计算设备上进行实时或接近实时的处理。卷积组提供了一种机制来减小(输入)音频数据在一个或多个频率和时间维度上的尺寸,例如,以有效地提取可被馈送到递归神经网络架构以供时间建模的特征。具有并行数据映射的卷积组还允许应用小卷积,这可以帮助减少乘法次数,并且因此允许在运行时更快地执行。
根据本发明的各个方面,两个数据映射中的第一个具有比两个数据映射中的第二个更大量的卷积操作,并且两个数据映射中的第二个包括降维操作。因此,并行数据映射可以被看成是对残差函数的形式进行建模,例如,其中两个数据映射中的第一个尝试对原始映射(即,在没有并行路径的情况下通过第一数据映射执行的映射)减去两个数据映射中的第二个的结果进行建模。由于操作更少,两个数据映射中的第二个可以允许梯度项更好地向后传播。这可以改善训练和参数收敛。
根据本发明的各个方面,由所述降维操作输出的数据张量具有与通过对所述两个数据映射中的第一个数据映射的一组卷积操作而输出的数据张量匹配的尺寸。所述卷积操作可以减小音频数据在时间和频率维度中的至少一个维度上的尺寸。在这种情况下,降维操作则允许两个数据映射的输出具有相同的尺寸,并且因此可以通过逐元素相加进行组合。所述降维进一步减少所述音频处理系统的参数数量,因此允许利用更少的资源进行更快的操作。
根据本发明的各个方面,所述降维操作包括切片操作(slice operation)以丢弃所述两个数据映射中的第二个数据映射内的一个或多个维度上的数据元素。已经发现,能够在不显著降低精度的情况下丢弃与由音频处理系统处理的时间窗口的外边缘有关的数据。
根据本发明的各个方面,两个数据映射中的第一个具有两个卷积操作,并且两个数据映射中的第二个不具有卷积操作或具有一个卷积操作。
根据本发明的各个方面,音频数据包括具有至少两个维度的数据张量:表示时间特征的第一维度和表示频率特征的第二维度。例如,音频数据可以包括针对多个音频帧的一组频率信息,多个音频帧以当前音频帧(例如,在时间域内的音频数据窗口)为中心。多个卷积组中的至少一个可以包括对两个数据映射两者进行卷积操作,该卷积操作在第二(频率)维度上的步幅(stride)大于1(但是这样的操作可能不是存在于所有卷积组中的)。在其它示例中,步幅可以等于或大于1。这可以进一步减小所处理的数据的尺寸,从而允许更快的计算并提供实时操作的可能性。实际上,在某些示例中,时间和频率维度中的特征被提取并沿着另一维度进行投影,该维度最初表示音频数据的不同帧(例如,针对不同时间段)或与这些帧有关的不同通道。在某些方面,卷积神经网络架构还包括初始卷积操作,初始卷积操作在第二(频率)维度上的步幅大于1。这可以看作是在应用卷积组之前减小数据在第二(频率)维度内的尺寸的初始预处理操作。这将来自相邻频率的信息有效地压缩为较低维数表示。在不使用池化(pooling)操作的情况下,可以在卷积组内减小所述第一维度和所述第二维度中的至少一个的尺寸。例如,经由卷积操作和/或经由切片或其他选择操作(例如,将填充设置为0)而导致的尺寸减小可以避免实施池化层的需要,因此再次降低了复杂度并且避免了许多计算以加速操作。
根据本发明的各个方面,卷积组还包括针对输入到卷积组的数据的批量归一化(batch normalization,BN)作为预处理操作。这可以帮助稳定训练。
根据本发明的各个方面,所述递归神经网络架构包括串联布置的多个递归神经网络层,并且前馈神经网络架构包括串联布置的多个前馈神经网络层。因此,递归神经网络架构和前馈神经网络架构包括能够对复杂非线性函数建模的“深度”神经网络。所述至少一个递归神经网络层包括单向长短时记忆(LSTM)或门控递归单元(GRU)。单向LSTM或GRU可以具有比双向LSTM少的参数。在用于音频模型的对比递归神经网络架构中通常建议双向LSTM。然而,在本申请的情况下,由于过去和未来的时间信息是通过馈送到卷积神经网络架构的加窗音频数据处理的,因此不需要双向LSTM。
根据本发明的各个方面,所述音频处理系统还包括用于音频数据内的当前音频帧的跳跃连接,该跳跃连接允许当前音频帧绕过卷积神经网络架构。这允许递归神经网络架构结合卷积神经网络架构在较长时间窗口上执行的特征提取来处理当前音频帧的相对集中或短期的信息(例如,较短时间段的当前音频帧以及过去和/或未来的音频帧)。在该上下文中的音频帧可以包括由梅尔滤波器组输出的频率特征的一维矢量和/或可以包括可辅助音频处理的附加特征值。
根据本发明的各个方面,在所述卷积神经网络架构与所述递归神经网络架构之间设置至少一个前馈神经网络层。该至少一个前馈神经网络层提供一维数据张量作为递归神经网络架构的输入,例如,使得卷积神经网络架构的多维输出能够被展平(例如,经由连续元素的级联)并且转换成尺寸较小并且适于递归神经网络架构处理的一维数据张量。它可以提供一种用于训练以压缩卷积神经网络架构输出的相关特征的瓶颈形式。
根据本发明的各个方面,所述分类分数包括由所述前馈神经网络架构的softmax激活函数输出的概率值。这些概率值可以表示可在语音处理流水线的后续阶段中使用的音段或音位概率。softmax激活函数确保分数总和为1,并且因此反映出概率度量。
根据本发明的各个方面,在所述卷积神经网络架构、所述递归神经网络架构和所述前馈神经网络架构中的一个或多个内设置至少一个关注层(attention layer)。所述至少一个关注层可位于所述卷积神经网络架构的两个数据映射中的至少一个内。在这种情况下,所述两个数据映射之一可以具有较少的卷积操作,并且所述至少一个关注层可以包括所述数据映射上具有较少卷积操作的关注层,所述关注层被配置为输出数据张量,所述数据张量在一个或多个维度上的尺寸比输入数据张量的尺寸小。可替代地或另外,所述关注层可以位于所述卷积神经网络架构和所述递归神经网络架构之间,位于在所述递归神经网络架构和所述前馈神经网络架构之间,和/或在绕过所述卷积神经网络架构的针对音频数据的跳跃连接上。应用关注可以提高分类的精度。在某些情况下,关注层还可以用作选择机制以同样降低数据的维数。在这些情况下,可以在训练期间学习关注层的参数,这可以通过减少对选择操作进行手动建模的需求来提高精度。
根据本发明的各个方面,帧选择部件可以位于所述卷积神经网络架构之前以从多个可用音频帧中选择多个音频帧以用作输入到卷积神经网络架构的所述音频数据。类似地,帧选择部件可以另外或可替代地位于所述卷积神经网络架构之前以选择音频数据的频带子集以包括在所述音频数据中。在频率和时间维度的一个或多个中应用选择机制可以减少提供音频处理系统所需的参数数量,并且因此允许在更广泛的各种计算设备上进行更快的计算。频率选择可能是特别有利的,因为它可以使不同的频带能够被处理,例如,可以并行地独立选择并处理低频和高频频带。如果音频数据具有连续的频率范围,则这是可能的。它也不同于对比图像处理实现方式,在这些对比图像处理实现方式中,在空间维度之一中提取频带会导致较差的性能(因为图像特征可能会被拆分)。
根据本发明的另一方面,一种处理音频数据的方法包括:利用卷积神经网络架构处理所述音频数据;使用递归神经网络架构至少处理所述卷积神经网络架构的输出;并且使用前馈神经网络架构至少处理递归神经网络架构的输出以确定与语音相关联的多个声音单元的一组分类分数,分类分数指示在音频数据中一个或多个声音单元的存在情况,其中利用卷积神经网络架构处理所述音频数据包括:使用多个串联布置的卷积组来处理所述音频数据,包括在一个卷积组中组合两个并联布置的数据映射。
这个方面可以提供类似于第一方面的有益效果。
根据本发明的各个方面,使用多个串联布置的卷积组来处理所述音频数据包括使用在所述一个或多个维度上应用的多个卷积操作来减小所述音频数据在与时间和频率相关联的一个或多个数据维度上的尺寸。例如,所述多个卷积操作中的至少一个可以在与时间相关联的数据维度上具有大于1的步幅。这可以帮助减少参数数量以允许更快的实际实现方式。
根据本发明的另一方面,一种训练音频处理系统的方法包括:获得训练数据集,所述训练数据集包含成对的音频数据和标准真值(ground truth)分类,其中,所述标准真值分类指示在所述音频数据中存在一个或多个声音单元中的哪些,所述一个或多个声音单元与语音相关联;将所述音频处理系统应用于所述训练数据集内的音频数据以确定预测的分类分数,其中,所述音频处理系统包括多个神经网络架构,所述多个神经网络架构包括通信地串联耦合的卷积神经网络架构、递归神经网络架构和前馈神经网络架构,其中,所述多个神经网络架构具有关联的多个可训练参数,其中,所述卷积神经网络架构包括串联布置的多个卷积组,一个卷积组包括两个并联布置的数据映射的组合;并且将所述预测的分类分数与所述训练数据集内的标准真值分类进行比较,以确定通过所述音频处理系统反向传播的多个可训练参数的更新,其中,所述应用和所述比较相对于所述训练数据集被迭代以训练所述多个可训练参数。
这个方面可以允许在训练操作期间学习用于第一方面的音频处理系统的合适的参数值。
根据本发明的其他方面,可以提供一种存储指令的非暂时性计算机可读存储介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行上述方法之一。
附图说明
图1是示出根据示例的音频处理系统的示意图。
图2是示出根据另一个示例的音频处理系统的示意图。
图3A和3B是示出不同示例性卷积组的示意图。
图4是示出根据示例的频谱图的示意图。
图5是示出根据示例的帧选择部件的示意图。
图6A是示出根据示例的频率选择部件的示意图。
图6B是示出利用图6A的频率选择部件分离不同频带的示例的示意图。
图7是示出根据示例的具有关注层的音频处理系统的示意图。
图8A和8B是示出不同示例性的具有关注层的卷积组的示意图。
图9是示出根据示例的处理音频数据的方法的流程图。
图10是示出根据示例的训练神经网络模型的方法的流程图。
图11是示例性服务器设备的示意图。
图12是示出图11的示例性服务器设备的部件的示意图。
具体实施方式
介绍
以下描述了说明各种感兴趣方面的本技术的各种示例。通常,示例可以以任何组合方式使用所描述的方面。本文中阐述原理、方面和示例的所有陈述旨在涵盖其结构和功能上的等同物。另外,意图是这些等同物既包括当前已知的等同物,又包括将来开发的等同物,即,执行相同功能而与结构无关的所开发的任何元件。
要注意的是,如本文中使用的,单数形式“一种”或“一个”或“所述”包括复数指代,除非在上下文中的其他地方清楚地指出。在整个说明书中对“一个”、“一种”、“某些”、“各种”和“情况”、“示例”或类似语言的引用意味着结合该示例描述的特定方面、特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个说明书中出现短语“在一种情况下”、“在至少一个示例中”、“在一个示例中”、“在某些情况下”和类似语言的可以但不是必须地全部指相同或相似的实施例。此外,本文描述的本发明的方面和示例仅是示例性的,并且不应被理解为对本领域技术人员所理解的本发明范围或精神的限制。在包括本文描述的任何新颖方面的任何示例中有效地制造或使用了所公开的发明。此外,在具体实施方式和权利要求书中使用术语“包含”、“包括”、“具有”、“有”、“带有”或其变型,这些术语旨在以与术语“包括”相似的方式表示包容性。在示出多个相似元件的示例中,即使使用单独的附图标记,某些这样的示例也可以与实现多个相似元件的作用的单个元件一起工作。
本文描述的某些示例涉及音频处理系统。音频处理系统可以用作自动语音识别系统或其他语音处理流水线中的声学模型。音频处理系统可用于帮助将录制的语音转换为文本或机器可处理的命令。音频处理系统可以是声学模型,该声学模型接收音频数据作为输入并输出指示被确定为存在于音频数据内的声音单元的数据。这些声音单元可以被视为与语音(例如人或机器语音)有关的语言特征。这些声音单元可以包括音段(senone)、音位、字素、字符、字母、单词和子单词单元中的一个或多个。音频处理系统的输出可以由下游语音处理部件(诸如语言模型)使用。这些下游语音处理部件可以使用由音频处理系统输出的数据来确定在音频数据内说出的一组单词。
在本文描述的示例中,音频处理系统包括多个神经网络架构。术语“神经网络架构”是指被配置为执行特定的数据处理任务的一个或多个人工神经网络的集合。例如,“神经网络架构”可以包括一种或多种神经网络类型的一个或多个神经网络层的特定布置。神经网络类型包括卷积神经网络、递归神经网络和前馈神经网络。卷积神经网络涉及一种或多种卷积操作的应用。递归神经网络涉及在输入序列期间进行更新的内部状态。因此,递归神经网络被视为包括递归或反馈连接的形式,由此使用前一时间(例如t-1)的递归神经网络的状态来更新时间(例如t)的递归神经网络的状态。前馈神经网络涉及没有反馈的变换操作,例如,从输入到输出以单向顺序应用操作。前馈神经网络有时简单地称为“神经网络”、“完全连接的”神经网络、或“密集”、“线性”或“深层”神经网络(后者在包含多个串联的神经网络层时使用)。
通常在机器学习编程工具和库中定义的“神经网络层”可以被视为将输入数据映射到输出数据的操作。“神经网络层”可以应用一个或多个权重以将输入数据映射到输出数据。也可以应用一个或多个偏置项(bias item)。可以使用一个或多个多维阵列或矩阵来应用神经网络层的权重和偏置。通常,神经网络层具有多个参数,这些参数的值影响该层如何将输入数据映射到输出数据。这些参数可以通过优化目标函数以被监管的方式进行训练。这通常涉及使损失函数最小化。卷积神经网络层可以应用指定的卷积操作。递归神经网络层可以应用一系列操作来更新递归状态并转换输入数据。递归状态的更新和输入数据的转换可能涉及先前递归状态和输入数据中的一个或多个的转换。可以通过展开建模的递归单元来训练递归神经网络层,这可以在机器学习编程工具和库中应用。尽管递归神经网络(诸如长短期记忆(LSTM)或门控递归单元(GRU))可以被视为包含若干(子)层以应用不同的门控操作,但大多数机器学习编程工具和库都将递归神经网络的应用作为一个整体称为“神经网络层”,并且这里将遵循此约定。最后,前馈神经网络层可以将一组权重和偏置中的一个或多个应用于输入数据以生成输出数据。该操作可以被表示为矩阵操作(例如,其中可以通过将值1附加到输入数据上来包括偏置项)。可替代地,可以通过单独的加法操作来应用偏置。
为了对复杂的非线性函数进行建模,如上所述的神经网络层之后可以是非线性激活函数。常见的激活函数包括S形函数、双曲正切函数和整流线性单元(RELU)。存在许多其他激活函数并且可以应用。可以应用softmax激活来将一组分对数(logit)或分数转换为总和为1的一组概率值。可以基于测试和偏好来选择激活函数。激活函数可以在某些环境下被省略,和/或形成神经网络层的内部结构的一部分。
在本文描述的示例中,音频处理系统包括多个神经网络架构,其中每个神经网络架构主要包括给定神经网络类型的一组神经网络层。在示例中,音频处理系统包括卷积神经网络架构、递归神经网络架构和前馈神经网络架构。不同的神经网络架构至少在通信上串联耦合。每个神经网络架构可以包括多个神经网络层,其中大多数神经网络层具有所指示的类型。例如,卷积神经网络架构可以包括构成该架构中使用的大多数层的多个卷积神经网络层,但是其他类型的神经网络层可以用作更广泛的架构的子部件,例如前馈神经网络层可以用作卷积神经网络架构内的关注层等。
本文所述的某些示例提供了对Sainath在前述论文中提出的卷积长短时记忆全连接深度神经网络模型的调适。这些调适加快了总体操作时间,从而允许更快的训练和/或推断,并且还允许在多种计算硬件上实现包括多个神经网络架构的声学模型(例如,避免需要数百个图形处理单元(GPU)或张量处理单元(TPU))。
在某些示例中,音频处理系统内的卷积神经网络架构被特别适配为以有限数量的计算操作提供高精度。为了实现这一点,卷积神经网络架构被配置有多个串联布置的卷积组。在这些示例中,卷积组包括并联布置的两个数据映射的组合。数据映射可以包括神经网络层或其他数据处理操作的应用。两个数据映射中的至少一个包括卷积神经网络层,例如以执行卷积操作。可以说卷积组实现残差映射,由此两个数据映射的组合基于并行第二数据映射的输出来适配第一原始映射。卷积组之所以这么被称为卷积组是因为它包括数据的输入和输出并应用至少一个卷积操作,其中在某些示例中,可以在两个并行数据路径中的一个或多个中应用多个卷积操作。
本文描述的音频处理系统的示例被配置为使用被称为反向传播的方法来训练。提供了一个由输入和输出数据对组成的训练集。在示例中描述的多个神经网络架构通信地耦合以形成计算图,其中音频处理系统可以被整体地训练(有时称为“端对端”训练)。输出数据通常称为“标准真值(ground truth)”标签,因为它代表输出应当什么。在语音处理中,这可以是一段语音记录的一个或多个带标签的声音单元。在反向传播期间,构成每个神经网络架构的神经网络层被初始化(例如,利用随机权重),然后用于通过使用来自训练集的一组输入数据(例如,所谓的“前向”传递)来进行预测,该训练集被应用于音频处理系统的输入。将预测与来自训练集的相应“标准真值”输出数据进行比较,并计算误差。该误差可构成损失函数的一部分。如果使用梯度下降法,则使用该误差来确定损失函数相对于音频处理系统参数的梯度(gradient),然后使用梯度以通过多个神经网络架构反向传播对参数值的更新。通常,根据神经网络层的权重的导数来传播更新。例如,可以确定损失函数相对于神经网络层的权重的梯度,并将其用于确定使损失函数最小化的权重的更新。在这种情况下,可以使用诸如梯度下降、随机梯度下降、Adam等的优化技术来调整权重。链规则和自动微分函数可以应用于高效地计算损失函数的梯度,例如从音频处理系统的输出开始,依次反向遍历每个神经网络架构的神经网络层。
因此,本文所述的示例可以提供一种高效声学模型,该声学模型可以以被监管的方式端对端地进行训练并且可以允许实时或接近实时的应用(例如在推断期间)将音频数据映射到与语音相关联的一组声音单元的分数或概率。
示例性音频处理系统
图1示出了示例性音频处理系统100。音频处理系统100对输入到系统的音频数据110进行操作。在本示例中,音频数据110包括多个音频帧,其中每个音频帧与不同的时间段相关联。例如,音频帧可以包括一维阵列,该一维阵列表示在定义的时间窗口(例如,短的5ms或10ms的窗口)内确定的频率特征。因此,多个音频帧可以共同包括一个二维阵列,该二维阵列表示在不同的短时间段内的梅尔频率滤波器组的频谱图或输出,例如,其中二维阵列表示更长的时间段(例如125或250ms)。梅尔滤波器组可以处理原始(例如时间序列)音频数据的滤波器组窗口以生成每个音频帧(即,二维数据中的每个频率特征集或列)滤波器组窗口可以是25ms。在图1的示例中,多个音频帧涉及以当前时间tc为中心的多个相应的离散时间段。可以从上游预处理电路接收音频数据110,该上游预处理电路将原始音频数据映射到音频帧。在某些情况下,音频数据110可以包括经处理的音频数据、或者经处理的音频数据和原始音频数据的混合(例如,除了经处理的音频数据之外,某些原始音频数据特征可以被通过,这可以提高针对一些配置的准确度)。例如,可以以100Hz的速率(即每秒100帧)计算音频帧。在这种情况下,多个音频帧可以包括预定义时间段的音频数据,诸如代表四分之一秒的时间段的25个帧,每个帧代表与10ms单位相关的频率输出。如果多个音频帧对应于时间窗口,则它们可以包括针对未来和过去时间段中的一个或多个时间段的音频帧。可以通过在处理之前将音频数据110延迟短时间段来获得未来时间段的音频帧,例如,如果时间窗口包含与120ms的录制音频有关的12个“未来”帧,则可以将音频处理系统100的音频数据110延迟120ms,使得与时间tc有关的“当前”帧在过去的120ms和130ms之间。由于延迟很小,因此可以添加延迟,并且延迟仍然允许音频处理流水线以被认为是实时的方式做出响应,即没有明显的延迟。可以根据实现方式来配置形成音频数据110的过去和未来的音频帧110的数量。在某些稍后的示例中,可以动态选择音频帧以加快处理速度。在图1的示例中,存在k个未来的音频帧和l个过去的音频帧,其中k对于对称时间窗而言可以等于l或者可以不同,例如,l可以大于k以减少所应用的延迟。在本示例中,可以将处理视为涉及两个不同的时间窗口–第一较短时间窗口涉及音频帧(可以在5ms或10ms的量级),并且第二时间窗口涉及多个音频帧,例如,在100ms至300ms量级的较长的时间段。
本文所述的频率特征可以涉及由傅立叶变换的形式所得到的复数项的大小和/或被配置为确定给定频率范围内的频率幅度的滤波器组的输出。在某些情况下,可以忽略相位项,因为可以在不考虑相位信息的情况下获得良好的性能。然而,在某些变型中,如果发现相位信息可以提高精度,则可以将其作为附加通道而提供。尽管在一个通道输入的上下文中描述了图1的示例,但是音频数据110也可以被扩展为具有两个以上的维度,例如,在某些情况下,可能存在代表不同通道的第三维度,该第三维度可以被视为二维输入的堆叠集。
音频处理系统100包括卷积神经网络(CNN)架构120、递归神经网络(RNN)架构130和前馈神经网络(FFNN)架构140。这三种架构在通信上串联耦合,使得前一个架构的结果由链中的下一架构处理(例如,利用或不利用附加数据)。音频处理系统100的输出包括针对与语音相关联的多个声音单元的一组分类分数(CS)150。分类分数指示在音频数据110中一个或多个声音单元的存在情况。例如,分类分数可以指示在当前时间tc是否存在特定的音段或音位。如果以FHz的速率生成音频帧,则分类分数可以指示在当前1/Fs时间段(例如,与时间tc相关的0.01s或10ms的时间段)内一个或多个声音单元的存在情况。音频处理系统100可以被配置为以高速率(以F Hz)迭代地应用,以便输出多个离散时间点的分类分数150。下游语音处理部件可以处理时间上的分类分数150,以将音频数据110转换为机器可用数据,诸如表示语音命令的文本或机器可解析数据集。在一种情况下,声音单元可以包括音段、音素和音位中的一个或多个,并且分类分数150可以包括代表多个可能声音单元的概率值的概率矢量(例如,可能声音单元的预定义字典)。在这种情况下,分类分数150可以代表给定音频数据110情况下声音单元的后验概率(也被称为后验概率),隐式马尔可夫模型(HMM)可以使用音频数据以在话语的时间段上输出音位转录。
在图1的音频处理系统100中,卷积神经网络架构120包括多个卷积组160。可以有串联布置的n个这样的卷积组160。卷积组160可以在功能和配置上不同。在图1中,卷积组160包括并联布置的两个数据映射的组合。第一卷积组160-1具有与第二数据映射164-1并联布置的第一数据映射162-1。第n卷积组160-n还具有与第二数据映射164-n并联布置的第一数据映射162-n。每个数据映射接收从公共卷积组输入得到的数据。如求和部件166-1和166-n所示,在求和部件166处组合第一和第二数据映射的输出。求和部件166的输出用于得到卷积组的输出。当卷积组160串联布置时,第一卷积组(诸如图1中的166-1)的输出形成后续卷积组(诸如图1中的166-n)的输入。卷积组160的数量可以基于(除别的以外)音频数据110的性质、对声音单元的映射的期望精度、可用的计算资源和/或期望的计算速度进行选择。来自最后一个卷积组(诸如图1中的166-n)的输出用于得到卷积神经网络架构120的输出。
递归神经网络架构130可以包括一个或多个递归神经网络层。例如,递归神经网络架构130可以包括一个或多个递归单元,诸如LSTM或GRU。通常,递归单元可以是单向的,例如,在正向时间方向上而不是在双向上应用变换。这表示与优选使用双向递归单元的某些音频处理的对比架构有所不同。使用单向递归神经网络可以帮助减少参数数量并允许更简单的架构,更简单的架构更容易训练并且执行推断的速度也更快。此外,使用递归神经网络架构引入更少的架构延迟,因为不需要等待未来的帧来进行向后时间方向计算,在利用双向LSTM架构的情况下需要这些未来的帧。递归神经网络架构130可以包括串联的多个递归神经网络层(即,诸如LSTM的递归单元),即,包括“深度”递归神经网络架构。
前馈网络架构140可以包括例如具有相应的非线性激活函数的一个或多个前馈神经网络层。为了便于说明,图1的示例示出了示意性的通信耦合。在变型中,神经网络架构可以具有图1中未示出的附加输入和/或部件。将参考后面的示例描述这些变型中的一些。
另一个示例性音频处理系统
图2示出了第二示例性音频处理系统200。该音频处理系统200是图1的音频处理系统100的变型。音频处理系统200接收音频数据210作为输入。这可以包括参考图1描述的音频数据。音频数据210在图2中显示为多维数组,按照机器学习编程库的约定,在本文中将其称为数据张量。在该示例中,音频数据210包括具有至少两个维度的数据张量:表示时间特征的第一维度和表示频率特征的第二维度。数据张量可以具有其他维度,例如,代表音频通道或来自多个麦克风的输入。数据张量的通道可以例如表示音频输入的不同形式,例如作为一组梅尔滤波器组特征的经调整形式可得到的IMCRA特征。数据张量因此可以具有尺寸(T×FREQ×C)。频率特征可以包括一组梅尔滤波器组的输出和/或来自原始音频波形数据的傅立叶变换的频率幅度值(包括合并或汇总的值)(例如,通过对时间序列波形测量结果(诸如,脉冲编码调制(PCM)音频)应用快速傅立叶变换生成的)。不同的特征混合可以作为输入被提供,例如原始音频数据和经处理的音频数据、时间和频率域信息等的混合,神经网络架构能够通过训练处理来适应这些不同。在一种情况下,一组梅尔滤波器组的输出可以与诸如改进的最小控制递归平均(IMCRA)特征之类的附加数据进行组合。尽管在这些示例中描述了频率特征,但第二维度也可以涉及时间域内的原始音频幅度(即,具有时间维度和幅度或强度维度的时间序列数据)。在这种情况下,向频域的转换可以隐式地或显式地被应用,作为数据处理流水线的一部分,或者可以在原始音频数据上训练神经网络架构(并且因此可以学习应用与从时域变换到频域的那些函数类似的函数)。应当注意的是,维度的顺序并不重要,只要数据处理操作被一致地配置即可,例如,数据张量因此可以具有(FREQ×T×C)或(C×T×FREQ)的尺寸。
类似于图1的示例,图2的音频处理系统200包括卷积神经网络架构220、递归神经网络架构230和前馈神经网络架构240。卷积神经网络架构220包括多个卷积组260,一个卷积组具有两个并行的数据映射,这些映射被组合以生成该组的输出。这又类似于图1所示的卷积组160。在本示例中,音频处理系统200包括串联布置的四个这种卷积组。尽管数据映射在图2中显示为M1和M2,但是应当注意的是,每个卷积组内的特定第一和第二数据映射可能不同,例如,与第二卷积组260-2中的M1相比,第一卷积组260-1中的M1可以实现一组不同的数据映射。第一和第二数据映射可以包括一个或多个数据处理操作,包括卷积神经网络层。较少数量的卷积组(例如2-10个的范围)可能与需要大量(例如64以上)串联的卷积操作的对比图像处理卷积神经网络架构不同。
当与图1的示例相比时,图2的音频处理系统200还包括许多附加特征。这些附加特征可以提高精度和/或允许更快的处理。在卷积神经网络架构220中,存在初始卷积神经网络层215,该初始卷积神经网络层在卷积组260之前应用初始卷积操作。初始卷积操作被配置为在第二维度(即频率特征维度)上具有大于1的步幅(stride)。与卷积组260内使用的卷积操作相比,初始卷积操作可以具有相对较大的内核尺寸,例如,初始卷积操作在时间和频率维度上的内核尺寸可大于卷积组260内的卷积操作在时间和频率维度上的内核尺寸。例如,初始卷积操作在时间和频率维度上可以具有9×7尺寸的内核,而在卷积组260内的卷积操作可以具有3×3及以下的内核尺寸。通过使用大于1的步幅,初始卷积神经网络层215可以学习合并多个频率元素上的频率特征的参数,例如学习提取可以从相邻频率元素压缩得到的常见变化模式。在一个测试示例中,对于初始卷积神经网络层215,使用时间维度上的步幅1和频率维度上的步幅4,其中在频率维度而非时间维度上应用填充(例如0×3的填充)。根据实现方式,可以在时间和频率维度上应用不同的步幅。初始卷积神经网络层215(即,如所描述的初始卷积操作的应用)可以帮助减小频率和时间维度中的一个或多个的输入数据张量的维数(例如,同时在附加维度中扩展)。这可以帮助减少例如在卷积组260内的其他卷积操作内在频率和时间维度上应用的后续乘法次数,因此加快了计算速度和/或允许在更广泛的各种计算平台上实现(即,包括那些具有较少计算资源的平台)。
音频处理系统200还包括位于卷积神经网络架构220和递归神经网络架构230之间的前馈神经网络层225。该前馈神经网络层225可用于将由卷积神经网络架构220的输出构造的一维数据张量的尺寸转换为适合于输入到递归神经网络架构230的尺寸。前馈神经网络层225还可以充当音频处理系统200内的瓶颈形式,以压缩和合并由卷积神经网络架构220输出的特征。如果前馈神经网络层225减小一维数据张量的尺寸(即,通过加权数据映射),则这可以进一步减小后续递归神经网络架构230中神经网络层的所需尺寸。如果前馈神经网络层225接收的输出是多维的,则在应用前馈神经网络层225的前馈神经网络之前,该输出可以被展平(例如,布置成一维)。
同样,在递归神经网络架构230之前,音频处理系统200包括跳跃连接(skipconnection)235,跳跃连接用于绕过卷积神经网络架构220。跳跃连接235在不需要卷积神经网络架构220的处理的情况下将数据从音频数据210传递到递归神经网络架构230。通过还将与音频数据210相关联的“原始”特征传递到递归神经网络架构230,可以帮助提高精度。在一种情况下,跳跃连接235可以被配置为将数据从当前音频帧(例如,类似于与tc相关联的图1中的音频帧-这可以是40个频率特征的矢量)传递到递归神经网络架构230。图2的音频处理系统200使用串联部件245将前馈神经网络层225的输出(即从卷积神经网络架构220得到的输出)与沿跳跃连接235传递的数据进行组合。在一种情况下,如果数据包括二维阵列或矩阵,则可以将数据展平(即,通过使帧光栅化而将其转换为一维形式),使得串联部件245连接两个一维阵列。
尽管跳跃连接235被显示为绕过卷积神经网络架构220,但是在其他情况下,或者另外,可以提供另一个跳跃连接,该跳跃连接绕过递归神经网络架构230,例如,该递归神经网络架构将从卷积神经网络架构220得到的输出提供给前馈神经网络架构240和/或将音频数据210提供给前馈神经网络架构240。这也可以实现精度的提高。
递归神经网络架构230可以包括两个或多个LSTM单元。可以基于实现方式要求(例如,可用的存储器和计算资源)来选择用于这些单元的参数的数量。一个测试实现方式使用两个串联的LSTM,它们的隐藏层尺寸为1024,输出尺寸为512,其中第一LSTM的输入长度为296,第二LSTM的输入尺寸等于第一LSTM的输出尺寸。如前所述,可以替代地使用其他类型的递归单元,诸如GRU。
前馈神经网络架构240可以包括多个前馈(即线性)神经网络层。在一个测试实现方式中,将具有RELU激活函数的两个前馈神经网络层与具有softmax激活函数的另一个输出前馈神经网络层串联以输出概率矢量。可以基于要分类的声音单元的数量(例如,取决于实现方式和/或被建模的声音单元的类型,可以有数十、数百或数千个声音单元)来配置输出前馈神经网络层的输出尺寸。在测试实现方式中,前两个前馈神经网络层的输出尺寸为1024。由于softmax激活函数,前馈神经网络架构240输出的分类分数250可以被视为在可能的声音单元的空间上的概率矢量,其中概率矢量的元素总和为1。在训练期间,可以将音频处理系统250的分类分数与独热矢量(one-hot vector)进行比较,该独热矢量表示被认为存在于音频数据210(或更具体地,与该数据相关联的当前帧)中的标准真值声音单元。在某些情况下,标准真值数据可以不一定指示某种分类,例如,可能存在一些样本,其中标准真值分类分数具有多个非零值。声音单元可以是音段。
卷积组
图3A和3B示出了卷积组(诸如图1和2中的组160和260)的不同示例性配置。在两个示例性配置中,两个数据映射中的第一个具有比两个数据映射中的第二个更多数量的卷积操作。在图3A和3B中,两个数据映射中的第一个被显示为上方数据路径,两个数据映射中的第二个被显示为下方数据路径(但是可以切换数据映射的上下顺序,功能效果不变)。在图3A和3B的示例中,两个数据映射中的第一个具有两个卷积操作,而两个数据映射中的第二个没有卷积操作或具有一个卷积操作。图3A和3B中的两个数据映射中的第二个包括降维操作。降维操作被配置为减小输入数据张量的尺寸。这可以通过丢弃某些数据元素来实现。
转到图3A,第一卷积组300具有第一数据映射310和第二数据映射320。第一数据映射310包括两个卷积神经网络层312和314。第二数据映射320包括卷积神经网络层322和降维操作324。在这些示例中,降维操作包括“切片”操作,该操作选择输入数据张量的子集并丢弃一个或多个维度中的数据元素(例如,类似于省略前x个数组元素和后y个数组元素的伪代码操作[x:-y])。在图3A中,降维操作324丢弃时间维度中的外围元素(例如,T×FREQ×C数据张量的外围行),使得第二数据映射320的输出具有与第一数据映射310的输出匹配的尺寸。第一数据映射310和第二数据映射320两者的输出由求和部件330组合,该求和部件实现两个输入数据张量的逐元素相加。求和部件330的输出然后被提供作为第一卷积组300的输出。
第一卷积组300还包括批量归一化(BN)部件340,该批量归一化部件被配置为在将该数据传递到第一和第二数据映射310、320之前提供第一卷积组300的输入的批量归一化。批量归一化部件340可以缩放预定尺寸的输入数据的批量,以使得经变换的输入数据具有零均值和单位方差(即方差1)。
图3B示出了第二卷积组350。第二卷积组350具有包括两个卷积神经网络层362和364的第一数据映射360。这是与第一卷积组300相同的布置(尽管各层的超参数可以不同)。然而,第二数据映射370的特征不含卷积操作,而仅包括降维操作372。因此,第二数据映射370可以被视为具有针对第一数据映射360的尺寸减小或跳跃或旁路连接形式的标识映射(identity mapping)。与第一卷积组300相似,求和部件380对第一和第二数据映射360、370的输出进行求和,该求和部件将输出提供给第二卷积组350。类似于第一卷积组300,第二数据映射370中的降维操作372起到匹配第一数据映射360的输出的尺寸的作用。
第二卷积组350还包括批量归一化部件390,该批量归一化部件被配置为提供对第一卷积组300的输入的批量归一化。然而,由于第二数据映射370不包括任何卷积操作,因此批量归一化部件390在第一卷积神经网络层362之前位于第一数据映射360的数据路径上。
与对比的仅递归神经网络架构(例如,深度LSTM系统)相比,可以用更少的参数来定义卷积神经网络层(即,在卷积组300和350中)的使用。与其他形式的架构相比,这使得本文所述的卷积神经网络架构具有相对较高的存储器效率。然而,卷积神经网络层通常需要大量的乘法,这至少会减慢推断阶段的速度。例如,可能存在kernel_size*n_output_nodes个乘法,其中kernel_size表示输入维度的数量,而n_output_nodes反映输出维数。根据卷积内核的所选择尺寸和/或输入和输出的尺寸,这意味着尽管有上述潜在的存储器效率,但是与对比的仅递归神经网络架构相比,某些对比的卷积神经网络架构实际上可能增加乘法的数量。
如本文示例中所示的卷积组的使用解决了这个问题,并且提供了卷积神经网络架构的存储器高效实现方式,同时还使乘法数量保持相对较低。这可以大大地提高推断速度,从而允许系统从实验室和学术环境推进到现实环境应用。卷积神经网络架构用于语音是相对实验性的,因为卷积神经网络架构通常被设计为处理图像。在本示例中,已经发现它们可适用于多维音频数据,并且可以发现类似于频谱图的输入(例如,给定时间窗口内的频率特征)中的关系。然后,这可以提高当前音频帧的分类精度,当前音频帧通常被设置为时间窗口内的预定义位置。
现在将描述一些示例性神经网络层配置。这些仅作为示例提供,并且不应视为限制。
在一个示例性实现方式中,按照图3A的卷积组300配置第一、第三和第四卷积组260-1、260-3和260-4。第三和第四卷积组260-3和260-4可以具有用于三个卷积神经网络层312、314和322的共同内核、步幅和填充设置。在一种情况下,在图3A的第一数据映射310中针对第三和第四卷积组260-3和260-4的第一和第二卷积神经网络层312和314可以具有3×1的内核尺寸和1×1的步幅(在相应的时间和频率维度上)。可以不应用填充(例如0×0的填充)。这些组的图3A中的第二数据映射320中的卷积神经网络层322在两个维度上可以具有尺寸1和步幅1(即,1×1)。在其他示例中,卷积神经网络层322可以被前馈或线性神经网络层代替。第一卷积组260-1可以按照图3A布置,但是具有不同的内核、填充和/或步幅设置。在一种情况下,第一卷积组260-1的第一数据映射310中的第一卷积神经网络层312可以具有3×3的内核尺寸、1×2的步幅尺寸和0×1(即,在频率维度中为1)尺寸的填充。第一卷积组260-1的第一数据映射310中的第二卷积神经网络层314可以具有3×1的内核尺寸、1×1的步幅尺寸并且没有填充(即,0×0)。
在以上的示例性实现方式中,第二卷积组260-2可以按照图3B的卷积组350进行配置。第二卷积组260-2的第一数据映射360中的第一卷积神经网络层362可以具有3×3的内核尺寸、1×1的步幅尺寸和0×1(即,在频率维度中为1)尺寸的填充。第二卷积组260-2的第一数据映射360中的第二卷积神经网络层364可以具有3×1的内核尺寸、1×1的步幅尺寸并且没有填充(即,0×0)。
通过使用如上所述的初始卷积神经网络层215和卷积组260配置,25×40×1的初始单通道输入(按T×FREQ×C维度)可以依次在通道维度上被扩展并且在时间和频率维度上被减少(例如在第一卷积组260-1之后为13×5×64,在第二卷积组260-2之后为9×5×64)。尽管在示例中将音频数据描述为一个通道,但在其他情况下,音频数据可以是多通道的,其中通道(C)可以涉及(除别的以外):不同的录制音频通道、不同的麦克风(例如,经常使用四个定向麦克风)、原始音频(例如,WAV或时间序列数据)以及类似于频谱图的输入和/或不同形式的预处理(例如,一个通道可以包括另一通道或原始输入的降噪版本)。本配置能够适应这些变化。此外,尽管参考了时间和频率维度,但是应当理解,尽管在处理数据时可以在神经网络架构的输入处看到对应关系,但是这些作为简写使用以指代相同的第一维度和第二维度,并且这些维度中的特征可以涉及时间和频率两者以及随着数据处理所产生的其他抽象特征。
在诸如上述第二卷积组350的情况下,第二数据映射370提供将数据从输入传递到求和部件380的标识映射或跳跃连接,而第一数据映射360应用一组卷积操作。因此,第二数据映射370提供了梯度更新的更好的反向传播,并且因此促进了训练。求和部件380意味着第一数据映射360学习到目标输出的映射减去第二数据映射370的输出。这可以被视为残差的形式,因此第一数据映射360可以被视为残差数据映射。
如上面描述的第一和第二卷积组300和350的一些示例性配置所示,第一和第二数据映射可以提供与跳跃连接的标识映射不同的输入-输出数据映射。这些示例示出了操作数量比第一数据映射少的第二数据映射,这提供了用于更新传播的一些有益效果,如利用标识映射所实现的。以这种方式,尽管第一和第二数据映射是根据比较简单的标识映射情况进行修改的,但仍可以认为它们提供了一种残差数据映射和跳跃连接的形式。在这些情况下,由第一数据映射提供的残差映射是从目标输出减去第二数据映射而形成的残差。与标识映射的情况相比,这仍然可以提供一些稳定性有益效果并改善训练,但是附加的操作可以帮助减小数据张量尺寸,因为其通过卷积神经网络架构来处理以实现快速推断。
应当注意,在这些示例中,在不使用池化操作的情况下,在卷积组内的第一和第二维度(例如,时间和频率)的至少一个中减小了数据张量输入的尺寸。去除在对比卷积神经网络架构中发现的池化操作可以减少计算数量并提高音频处理速度。例如,图2所示的多个卷积组中的至少一个在两个数据映射上都进行卷积操作,该卷积操作在第二维度上的步幅大于1,并且某些卷积操作被描述为利用低填充或无填充。这是与对比卷积神经网络架构的进一步的区别,对比卷积神经网络架构通常被教导为将卷积组的输入和输出维持在相同的尺寸(例如,通过使用“相同”样式的卷积操作,这些卷积操作应用填充和步幅1)。已发现,与常规图像输入相反,利用语音输入,数据处理对于丢弃时间和/或频率特征更鲁棒。这与图像处理中通常发现的情况相反。对于语音,在本文的特定示例中,可以减少或去除输入填充,并且可以在第二数据映射中丢弃与较长输入时间窗口的外围部分有关的特征(例如“多余的”时间元素),使得第一数据映射的输出尺寸等于第二数据映射的输出尺寸,并且两个输出都小于卷积组的输入。
应当注意,卷积组的数量和配置可以在卷积神经网络架构内根据可用的计算资源和期望的精度水平而改变(例如,更多的组可以提高精度,但是会降低处理速度)。因此,可以根据音频处理系统的应用规范来进行适当的权衡。
频谱图
图4示出了示例性频谱图400,该频谱图可以被视为图1和2中的音频数据110和210的可视化表示。频谱图400表示具有表示时间轴的第一维度410和表示频率特征的第二维度420的数据元素的二维阵列。整个频谱图可以代表时间窗口430,例如如上所述的四分之一秒。在一种情况下,频谱图可以是T×FREQ阵列。在测试情况下,T可以等于25,FREQ可以等于40,从而代表具有40个不同滤波器的滤波器组的输出,每个滤波器覆盖不同的频率范围。在这些情况下,每个数据元素的值可以代表在特定时间处特定频率或频率范围的幅度。数据元素的值可以经过预处理,例如被归一化或转换为对数刻度。
帧和频率选择
在某些示例中,本文所述的音频处理系统(例如,图1和2中的系统100或200)可以进一步包括位于卷积神经网络架构之前的帧选择部件。帧选择部件可以用作预处理器的形式,以修改由音频处理系统的神经网络架构处理的音频数据。在一种情况下,帧选择部件可以在卷积神经网络架构之前减小音频数据的维数,以便减少该架构执行的计算数量。
图5示出了帧选择部件505的示例500。帧选择部件505接收多个音频帧510。这些音频帧形成原始的或第一组音频数据。这些音频帧代表一组可供选择的音频帧。它们可以共同代表如图4所示的类似于频谱图的输入。帧选择部件505被配置为选择多个音频帧505的子集以用作卷积神经网络架构的音频数据。这可以被认为是从图4的频谱图400中选择某些列或较短的时间窗口。帧选择部件505的输出被示为音频帧530,其中省略了第二和第四帧535。因此,时间维度的维数从5减小到3。
选择帧可以允许跳过某些输入音频帧(即音频数据的阵列)。这可以减少推断时的乘法次数,并提高用于实时或接近实时操作的处理速度。可以跳过对与其先前帧只有很小差异的音频帧的处理。例如,在长元音和非语音的区段中,与较早的帧相比,较晚的帧中几乎没有额外的信息。希望不跳过太多连续的帧,因为例如,如果一个长元音逐渐过渡到另一个长元音,则可能需要某些中间帧来识别这两者(例如,以区分单词“loo”和“luau”)。
图6A和6B示出了类似的过程,由此通过频率选择来减小频率维度中的维数。图6A示出了位于本文描述的卷积神经网络架构之前的频率选择部件605的示例600,该频率选择部件用于选择要包括在音频数据中的频带的子集。类似于帧选择部件505,频率选择部件605接收原始音频数据610,在这种情况下,原始音频数据610在时间和频率维度上具有类似于图1的音频数据110的程度。频率选择部件605选择原始音频数据610内与频带的子集有关的数据元素的子集。然后将它们作为经修改的音频数据630而输出,经修改的音频数据在频率维度上具有减少的维数。
图6B示出了如何通过诸如图6A中所示的频率选择部件将类似于图4中所示的频谱图形式的音频数据分成两个频带。这里示出了两个频带作为简单示例,但是实际的实现方式可以分成大量的频带(例如10或100个频带),并且通过选择这些频带的子集来选择频率,例如通过步幅参数控制来选择每隔一个频带。这里,频谱图被分成代表高频特征的第一部分650和代表低频特征的第二部分655。频率选择部件605可以将两个部分输出为两个不同的数据流,或者可以使用并行部件来输出每个部分。在某些情况下,可能更高效的是,将较小的神经网络模型并行地应用于两个部分,然后组合输出分类分数。例如,元音和辅音可以具有主要位于频谱的不同区域的特征。这标示出与对比图像处理系统的区别,在对比图像处理系统中,通常不可能以这种方式分开二维数据的频带(因为对象可能在图像中的各种方向和位置)。当处理语音时,在某些示例中在频带上操作可能是有利的,例如以便捕获共振峰。
频率选择还可以通过在卷积操作期间(例如,在本文所述的卷积神经网络层内)增加频率维度上的步幅长度来实现。这可以看作是在交替的频率组之间的频率选择。例如,在频率维度上的步幅长度1将导致卷积内核的重叠应用,但是在频率维度上将步幅长度增加为大于1会减少这种重叠。通过在频率维度上配置步幅,可以实现精度和实现速度之间的权衡。
关注
在本文描述的示例性音频处理系统的某些变型中,可以使用一个或多个关注层。关注层可以是被配置为施加神经关注(neutral attention)的神经网络层。神经关注可以被认为是一种得到一组关注权重的机制,这组关注权重可以用于对一组输入特征进行加权。关注权重可以作为输入数据张量的函数来确定,其中该函数可以包括一组可训练参数,其中这些参数可以与音频处理系统的其他参数一起训练。因此,关注层可能具有两组输入:通常被视为关注层的输入的第一组要加权重的值,以及用于确定关注权重的第二组数据。在一种情况下,音频数据或该数据内的当前音频帧可以用作输入数据张量以得到关注权重。在另一示例中,关注层的输入既可以用于得到关注权重(例如,经由神经网络层),也可以用作要加权的输入。可以通过使用逐元素乘法和/或作为加权总和或平均值来应用一组关注权重。例如,可以使用点积关注的形式(例如类似于转换器(Transformer)架构中使用的)。在这种情况下,可以通过以下方式来计算关键和/或查询值:将关键和/或查询矩阵与输入相乘,并获得点积的softmax以得到被用作关注权重的权重或分数。或者,可以使用看起来像完全连接的网络的附加关注机制,但是这种机制可能比点积关注要慢。关注层可以用于卷积神经网络架构、递归神经网络架构和前馈神经网络架构中的一个或多个内的一个或多个位置处。一个或多个关注层的位置和形式可能取决于特定实现方式、可用系统资源和操作规范。
图7示出了示例性音频处理系统700,该音频处理系统是图2的示例性音频处理系统200的变型。音频处理系统700指示可以应用关注层的多个位置。在图7、图8A和图8B的以下示例中,例如,如果没有明确指示,则可以假设来自图2、图3A和图3B的示例的细节可以被应用于对应的特征。
音频处理系统700像音频处理系统200一样接收音频数据710,并将其传递给卷积神经网络架构720。卷积神经网络架构720包括初始卷积神经网络层715(类似于图2中的层215)和串联耦合的四个卷积组760。卷积神经网络架构720在卷积神经网络架构220上的额外变化在于:在前两个卷积组760-1、760-2之后但在最后两个卷积组760-3、760-4之前应用降维操作765。例如,这可以在频率维度上执行切片操作以去除外围数据元素集。如果第二卷积组760-2的输出是尺寸为9×5×64(T×FREQ×C维度)的数据张量,则切片操作可以丢弃频域中的第一列和最后一列,例如得到尺寸为9×3×64的数据张量。这可能导致瓶颈形式,此瓶颈形式迫使初始卷积神经网络层和第一和第二卷积组760-1、760-2内的卷积神经网络层将特征集中在数据张量的中心(例如,并且帮助忽略无信息的高低频特征,例如可能与人类语音范围之外的范围有关的特征)。该附加的降维操作765也可以应用在图2的音频处理系统200中。
另外,以类似于音频处理系统200的方式,音频处理系统700包括递归神经网络架构730和前馈神经网络架构740,并且前馈神经网络架构740输出一组分类分数750。
图7的示例示出了至少一个关注层的三个可能位置。在图7中,第一关注层725位于卷积神经网络架构720与递归神经网络架构730之间。在该示例中,第一关注层725代替图2中的前馈神经网络层225;在其他示例中,第一关注层725还可以设置在除了图2的前馈神经网络层225之外的类似位置处。当将卷积神经网络架构720的最终输出投影到可由递归神经网络架构730处理的扁平结构时,可以使用第一关注层725。例如,第一关注层725可以计算由卷积神经网络架构720输出的多维数据张量的加权总和,从而为递归神经网络架构730提供一维(即矢量)输入。
在图7中用虚线示出了至少一个关注层的第二和第三位置。在实践中,根据实现方式和配置,一个或多个关注层可以设置在所指示的位置中的相应一个或多个处。第二关注层750位于针对音频数据710的跳跃连接735上,该跳跃连接绕过卷积神经网络架构720。在这种情况下,代替被传递到与第一关注层725的输出级联的级联部件745的当前音频帧,第二关注层750可以接收从音频数据710(可能包括音频数据710本身)得到的多维数据张量作为输入,并且输出用于级联的单维(即矢量)数据张量。
第三关注层770被示出为位于递归神经网络架构730与前馈神经网络架构740之间。第三关注层770可以接收来自递归神经网络架构730的多个输出(例如,与多个时间步进(time step)有关),并且利用一组关注权重对这些输出进行加权以生成一维数据张量输出,以供前馈神经网络架构740处理。如果形成递归神经网络架构730的一部分的最后一个LSTM单元输出长度为1024的矢量,则第三关注层770可以将1024×N的数据张量映射到1024长度的数据张量,其中N等于从最后一个LSTM单元输出的缓冲时间步进的数量。例如,关注权重可以用于针对1024行中的每一行计算N列的集合的加权总和,实际上在短的最近时间段(例如,最后N个时间步进)内关注不同的特征。
在图7的示例中,第一至第三关注层725、750和770可以类似的方式起作用,例如,可以将一组关注权重应用于多维数据张量输入以输出单维数据张量输出。可以根据应用于从音频数据710得到的数据或作为关注层的输入而接收的数据的一组学习参数来确定关注权重。
图8A和8B示出了关注层的另外两个可能的位置。在这些示例中,一个或多个关注层位于一个或多个卷积组760内。因此,图8A和图8B对应于图3A和图3B的添加了关注的变型。
图8A和8B示出了示例,其中至少一个关注层位于卷积神经网络组800和850的两个数据映射中的至少一个内。在图3A中,第一数据映射810(如图3A所示)具有两个卷积神经网络层812和814。这两个数据映射也同样通过求和部件830求和。在第二数据映射820中,存在如图3A所示的第一卷积神经网络层822。然而,在该示例中,图3A中的降维操作324被关注层824代替。类似地,在图8B中,第一数据映射860(图3B所示)具有两个卷积神经网络层862和864以及经由求和部件880生成的卷积组850的输出。然而,图3B的第二数据映射870中的降维操作372也被关注层872代替。关注层824和872可以被配置为应用一组关注权重并提供具有与输入不同尺寸的输出,例如以匹配第一数据映射810和860的输出。在这些情况下,关注层824和872可以针对输出维度生成输入的不同关注加权的组合。在这些示例中,两个数据映射之一具有较少的卷积操作,并且在具有较少卷积操作的数据映射上应用关注层以输出在一个或多个维度上的尺寸小于输入数据张量的数据张量。
图8A和8B还示出了另一个可能应用关注的位置:在第一和第二数据映射的卷积操作之前,例如在图8A和8B中的位置840和890处。在这些示例中,关注层被提供作为批量归一化的一部分,但是可替代地,可以单独地和/或在第一和第二映射中的一个或多个内提供关注层。第一和第二数据映射内或之前的关注层可以用于例如以与初始卷积神经网络层215和715相似的方式进一步减小初始多维数据张量的尺寸。
尽管针对两个卷积组800和850示出了关注层,但是应当注意,可以根据图3A或3B配置卷积组760中的某一些,并且可以根据图8A或图8B配置卷积组760中的某一些。类似地,可以将类似于图8A的示例的关注层与图3B的示例一起使用,并且对于图3A和8B亦是如此。
处理音频的方法
图9示出了处理音频数据的方法900。该方法可以在任何先前描述的音频处理系统(例如图1、2和7中的100、200和700)上实现。该方法可以替代地通过在一个或多个处理器上执行计算机程序代码来实现。方法900可以代表先前描述的音频处理系统的推断操作(例如,与可以如图10所示执行的训练操作对照)。
在块910处,利用卷积神经网络架构来处理音频数据。如上所述,可以从原始音频数据(例如,WAV数据)、一个或多个频谱图和梅尔滤波器组的输出中的一个或多个得到音频数据。如子块915所示,块910涉及使用串联布置的多个卷积组顺序地处理音频数据。可以沿着包括卷积组的卷积神经网络架构的数据处理流水线来处理音频数据,其中某些卷积组被应用于前一个卷积组的输出。子块915包括在卷积组内组合并联布置的两个数据映射。例如,可以使用图1、图3A、图3B、图8A或图8B中的求和部件166、330、380、830或880来执行该组合。卷积组可以不同,并且给定卷积组的配置可以基于图1、图3A、图3B、图8A或图8B中所示的卷积组之一。
在块920处,使用递归神经网络架构至少处理卷积神经网络架构的输出。在某些情况下,递归神经网络架构还经由跳跃连接来处理音频数据的至少一个子集(其中,跳跃连接可以应用与卷积神经网络架构不同的一个或多个数据映射)。递归神经网络架构可以包括多个递归单元,诸如串联的多个LSTM单元或GRU。
在块930处,方法900包括使用前馈神经网络架构来至少处理递归神经网络架构的输出,以确定与语音相关联的多个声音单元的一组分类分数。分类分数指示在音频数据(例如,可以包括概率矢量)中一个或多个声音单元的存在情况。声音单元可以包括音段、音素和/或音位。
在某些情况下,子块915可以包括通过使用在一个或多个维度上应用的多个卷积操作来减小音频数据在输入的数据维度中的一个或多个(例如,与时间和频率相关联的维度)中的尺寸。例如,卷积神经网络层可以在至少一个维度(例如时间)中不使用填充,并且在同一维度(或多个维度)中使用尺寸大于1的卷积内核。在使用3×1卷积内核(在相应的T×FREQ维度中)并且在两个维度中都不应用填充的情况下,相应卷积操作的输出的尺寸可以在时间维度上减小2。由于在多个卷积组中重复与此相似的卷积,因此可以减小正在处理的数据张量的维数。另外,或可替代地,可以在诸如卷积组260-1或760-1的第一卷积组中使用大于1的步幅。在这种情况下,卷积神经网络层312、322或812、822可在频率维度上具有大于1(例如2或更大)的步幅。可以应用或不应用填充。这可以减小频率维度中的特征尺寸。
在某些实现方式中,分类分数可以被其它的神经网络架构使用,以便确定存在于所记录的音频数据中的话语的文本转录。例如,本文描述的音频处理系统可以用作较大的连接时间分类(CTC)神经模型的一部分以提供转录和/或命令转换。在其他实现方式中,分类分数可以涉及一组音段,并且可以用作混合神经-HMM声学模型的一部分以确定一组音位分数,其中,HMM使用分类分数作为音段的后验概率。HMM的输出或另外的神经模型可被提供给语言模型以执行所记录的音频数据的转录。可以在涉及所捕获的语音的一部分的多个时间段(例如,以来自用户的话语为特征的几秒钟或几分钟)上重复方法900,以将所记录的音频数据转换为代表语音内容的机器或人类可用的数据。当重复方法900时,被输入到音频处理系统的音频数据例如随着时间窗口在时间上向前移动而改变,可以生成不同的多维数据张量作为输入。
训练音频处理系统
图10示出了训练音频处理系统的方法1000。在本文描述的示例中,可以共同地训练神经网络架构,即,音频处理系统被认为包括一组可训练参数,并且以端对端的方式来训练这些参数。最初可以执行训练以确定一组经训练的参数来执行推断操作,例如,如图9所示。应当注意,可以在一个位置(例如,在中央服务器上)执行训练,然后将经训练的参数值分配给设备,以便在不同的位置(例如,在嵌入式设备内)执行推断。
图10的方法1000包括第一方框1005,获得训练数据集,该训练数据集包括成对的音频数据和标准真值分类。例如,训练数据集可以包括音频记录,其中音频记录具有代表不同离散时间步进的相关联的多个多维数据张量(例如,使移动时间窗口传动跨过音频记录的结果)。多维数据张量可以表示针对音频记录的一组频谱图,例如类似于用一组图像表示视频的方式,其中每个频谱图以不同的时间段为中心。标准真值分类指示一个或多个声音单元中的哪些声音单元与音频数据相关联(例如存在于音频数据中)。例如,如果针对每个时间步进仅一个声音单元被视为存在,则可以将它们作为独热矢量提供。
图10中的方框1010包括将音频处理系统应用于训练数据集内的音频数据以确定预测的分类分数。例如,这可以包括针对给定的离散时间步进将来自训练集的音频数据提供到音频处理系统100、200或700的输入。在方框1015处,将音频处理系统的输出(即,分类分数150、250或750)与从训练数据集内获得的离散时间步进的对应标准真值分类进行比较。该比较被用于确定通过音频处理系统反向传播的多个可训练参数的更新。该比较可以形成损失函数(诸如交叉熵损失)的一部分,并且损失函数可以相对于可训练参数自动被进行微分。链规则可以被应用以反向传播针对可训练参数的更新,该更新是通过分析经微分的损失函数的梯度来计算的。方框1010和1015相对于训练数据集被迭代以训练多个可训练参数。音频数据可以进行批处理,并且该批处理可以将来自音频记录的连续音频数据分组,以允许展开递归神经网络层以供训练。
服务器实现方式
图11示出了机架式服务器刀片多处理器服务器系统1100,该服务器系统可以用于实现所描述示例的系统和/或执行所描述示例的方法。该服务器系统包括并行运行软件的多个网络连接的计算机处理器。
图12示出了服务器系统1200的框图。服务器系统包括计算机处理器(CPU)核心1210的多核群集并且可选地包括图形处理器(GPU)核心1220的多核群集。处理器通过板级互连1230连接到用于程序代码和数据存储的随机存取存储器(RAM)设备1240。服务器系统1200还包括网络接口1250,以允许处理器访问网络,诸如局域网(LAN)或因特网。通过执行通过接口1230存储在RAM设备1240中的指令,CPU1210和/或GPU 1220执行如本文所述的方法的步骤。例如可以包括所描述的音频处理系统或至少执行所描述的推断方法的嵌入式和移动设备可以具有相似的部件布置,但是具有更少的资源。
在某些示例中,可以提供非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质存储指令以实现本文中所描述的示例中的任何示例。例如,指令可以在由至少一个处理器执行时使至少一个处理器:获取音频数据;利用卷积神经网络架构至少处理音频数据,该卷积神经网络架构包括串联布置的多个卷积组,其中每个卷积组包括并联布置的两个数据映射的组合;使用递归神经网络架构至少处理卷积神经网络架构的输出;并且使用前馈神经网络架构至少处理递归神经网络架构的输出以确定与语音相关联的多个声音单元的一组分类分数,分类分数指示在音频数据中一个或多个声音单元的存在情况。该非暂时性计算机可读介质可以包括旋转磁盘、旋转光盘、闪存随机存取存储器(RAM)芯片以及其他机械移动或固态存储介质中的一个或多个。
示例性实现方式
本文描述的某些示例可以应用于包括自动语音识别的语音处理。本文描述的神经网络模型可以用于在语音处理系统中实现声学模型。通过串联组合不同的神经网络架构,并且通过使用初始处理音频数据的卷积神经网络架构的高效实现方式,可以提供一种音频处理系统,该音频处理系统既改善(音频)帧级精度,又改善字错误率,还能够足够快地执行推断以在正常操作条件下做出反应(即,允许实时或接近实时的操作)。
对于给定的一组计算资源,本文所述的某些示例可以提高帧级精度。帧级精度可以定义为将音频数据正确映射到声音单元分类的程度。在对比情况下,对于音频数据的音频记录内的给定(10毫秒)时间窗口,例如使用梅尔滤波器组的输出逐个音频帧地执行此映射(例如音频帧处理速率为100Hz)。在本申请的情况下,卷积神经网络架构允许输入音频数据的多个帧,例如,允许围绕音频数据的当前帧的附加帧作为类似声谱图的二维数据张量被输入。卷积神经网络架构被训练以从输入提取并压缩最重要的特征,并且递归神经网络架构允许在连续的时间步骤上跟踪一定数量的状态。然后,前馈神经网络架构提供从递归神经网络架构的抽象输出到声音单元(例如,音段)的分类分数(例如,概率值)的映射。
本文描述的某些示例还可以针对给定的一组计算资源降低字错误率。例如,当使用经训练的音频处理系统通过自动语音识别(ASR)系统运行时,字错误率与真实音频测试数据的转录的精确度有关。在本申请的情况下,帧级精度的提高可导致较低的字错误率。然而,帧级精度与字错误率之间的关系是复杂且间接的,从而使得难以先验地知道神经网络部件的哪些配置将能够成功地提高帧级精度和降低字错误率。已经开发了所描述的示例以在该领域中提供改进,同时允许高效的推断。例如,对比神经声学模型在使用计算资源(例如,数百个GPU或TPU)方面通常是不合理的。相反,本示例提供了“更轻量级”的实现方式(就计算资源而言),该实现方式可以提供更大、更复杂的模型的许多精度优势,同时仍然保持针对实际应用的运行时效率。
本文中已经描述了某些示例,并且将注意,来自不同示例的不同部件的不同组合是可行的。提出了最重要的特征以更好地解释示例;然而,应清楚的是,可以在不修改所描述的这些示例的功能方面的情况下增加、修改和/或省略某些特征。
各种示例是使用人和机器中的任一个或组合的行为的方法。无论世界上何处出现大多数组成步骤,方法示例都是完整的。一些示例是被布置为存储用于本文描述的方法的这种指令的一种或多种非暂时性计算机可读介质。无论什么机器保持包括任何必要代码的非暂时性计算机可读介质都可以实现示例。一些示例可以被实现为:物理设备,诸如半导体芯片;这些设备的逻辑或功能行为的硬件描述语言表示;以及被布置为存储这种硬件描述语言表示的一个或多个非暂时性计算机可读介质。本文中叙述原理、方面和实施例的描述包含其结构和功能等同物。
本领域技术人员将认识到许多可行修改和变化。修改和变化包括所公开特征的任何相关组合。本文中叙述原理、方面和示例的描述包含其结构和功能等同物。
因此,本发明的范围不旨在限于本文中示出和描述的示例。相反,本发明的范围和精神由所附权利要求体现。
Claims (28)
1.一种音频处理系统,包括:
卷积神经网络架构,所述卷积神经网络架构用于处理音频数据,其中所述卷积神经网络架构包括:
串联布置的多个卷积组,其中所述多个卷积组中的至少一个卷积组包括并联布置的至少两个数据映射的组合;
递归神经网络架构,所述递归神经网络架构用于至少处理从所述卷积神经网络架构的输出得到的数据;以及
前馈神经网络架构,所述前馈神经网络架构用于至少处理从所述递归神经网络架构的输出得到的数据,
其中所述前馈神经网络架构被配置为输出与语音相关联的多个声音单元的分类分数,所述分类分数指示在所述音频数据中一个或多个声音单元的存在情况。
2.根据权利要求1所述的音频处理系统,其中:
所述两个数据映射中的第一数据映射与所述两个数据映射中的第二数据映射相比包括更多数量的卷积操作,并且
所述两个数据映射中的第二数据映射包括降维操作。
3.根据权利要求2所述的音频处理系统,其中,由所述降维操作输出的数据张量的尺寸与所述两个数据映射中的所述第一数据映射上的一组卷积操作输出的数据张量的尺寸相匹配。
4.根据权利要求2所述的音频处理系统,其中,所述降维操作包括切片操作,用于丢弃所述两个数据映射中的所述第二数据映射内的一个或多个维度上的数据元素。
5.根据权利要求2所述的音频处理系统,其中,所述两个数据映射中的所述第一数据映射包括两个卷积操作,并且所述两个数据映射中的所述第二数据映射不包括卷积操作或者包括一个卷积操作。
6.根据权利要求1所述的音频处理系统,其中,所述音频数据包括具有至少两个维度的数据张量:表示时间特征的第一维度和表示频率特征的第二维度。
7.根据权利要求6所述的音频处理系统,其中,所述多个卷积组中的至少一个卷积组包括在所述两个数据映射两者上的卷积操作,所述卷积操作在所述第二维度上具有大于1的步幅。
8.根据权利要求6所述的音频处理系统,其中,所述卷积神经网络架构包括初始卷积操作,所述初始卷积操作在所述第二维度上具有大于1的步幅。
9.根据权利要求6所述的音频处理系统,其中,在不使用池化操作的情况下,在所述多个卷积组中的至少一个卷积组内,所述音频数据在所述第一维度和所述第二维度中的至少一个维度上的尺寸被减小。
10.根据权利要求1所述的音频处理系统,其中,所述多个卷积组中的至少一个卷积组还包括针对输入到该至少一个卷积组的数据的批量归一化作为预处理操作。
11.根据权利要求1所述的音频处理系统,其中,所述递归神经网络架构包括串联布置的多个递归神经网络层,并且所述前馈神经网络架构包括串联布置的多个前馈神经网络层。
12.根据权利要求11所述的音频处理系统,其中,至少一个递归神经网络层基于单向长短时记忆(LSTM)和门控递归单元(GRU)之一。
13.根据权利要求1所述的音频处理系统,还包括:
针对所述音频数据内的当前音频帧的跳跃连接,所述跳跃连接允许所述当前音频帧绕过所述卷积神经网络架构。
14.根据权利要求1所述的音频处理系统,还包括:
在所述卷积神经网络架构与所述递归神经网络架构之间的至少一个前馈神经网络层,所述至少一个前馈神经网络层提供一维数据张量作为所述递归神经网络架构的输入。
15.根据权利要求1所述的音频处理系统,其中,所述分类分数包括由所述前馈神经网络架构的softmax激活函数输出的概率值。
16.根据权利要求1所述的音频处理系统,还包括:
至少一个关注层,该至少一个关注层在所述卷积神经网络架构、所述递归神经网络架构和所述前馈神经网络架构中的至少一个内。
17.根据权利要求16所述的音频处理系统,其中,所述至少一个关注层位于所述卷积神经网络架构的所述两个数据映射中的至少一个内。
18.根据权利要求17所述的音频处理系统,其中,所述两个数据映射中的一个数据映射包括较少的卷积操作,并且所述至少一个关注层包括位于包括较少卷积操作的数据映射上的关注层,该关注层被配置为输出数据张量,该数据张量在一个或多个维度上的尺寸比输入数据张量小。
19.根据权利要求1所述的音频处理系统,还包括位于所述卷积神经网络架构与所述递归神经网络架构之间的关注层。
20.根据权利要求1所述的音频处理系统,还包括位于所述递归神经网络架构与所述前馈神经网络架构之间的关注层。
21.根据权利要求1所述的音频处理系统,还包括:
针对所述音频数据的跳跃连接,所述跳跃连接允许所述音频数据绕过所述卷积神经网络架构,其中所述跳跃连接包括应用于所述音频数据的关注层。
22.根据权利要求1所述的音频处理系统,还包括:
位于所述卷积神经网络架构之前的帧选择部件,所述帧选择部件从多个可用音频帧中选择多个音频帧以用作所述音频数据。
23.根据权利要求1所述的音频处理系统,还包括:
位于所述卷积神经网络架构之前的频率选择部件,所述频率选择部件选择音频数据的频带子集以包括在所述音频数据中。
24.一种处理音频数据的方法,包括:
利用卷积神经网络架构处理所述音频数据;
使用递归神经网络架构至少处理所述卷积神经网络架构的输出;并且
使用前馈神经网络架构至少处理所述递归神经网络架构的输出以确定与语音相关联的多个声音单元的一组分类分数,所述分类分数指示在所述音频数据中一个或多个声音单元的存在情况,
其中利用卷积神经网络架构处理所述音频数据包括:
使用串联布置的多个卷积组来处理所述音频数据,所述多个卷积组中的至少一个卷积组包括并联布置的至少两个数据映射的组合。
25.根据权利要求24所述的方法,其中使用串联布置的多个卷积组来处理所述音频数据包括:使用在与时间和频率相关联的一个或多个数据维度上应用的多个卷积操作来减小所述音频数据在所述一个或多个数据维度上的尺寸。
26.根据权利要求25所述的方法,其中,所述多个卷积操作中的至少一个卷积操作在与频率相关联的数据维度上具有大于1的步幅。
27.一种用于训练如权利要求1至23中任一项所述的音频处理系统的方法,包括:
获得训练数据集,所述训练数据集包括包含音频数据和标准真值分类的数据对,其中,所述标准真值分类指示在所述音频数据中存在一个或多个声音单元中的哪些,所述一个或多个声音单元与语音相关联;
将所述音频处理系统应用于所述音频数据以确定预测的分类分数,
其中,所述音频处理系统包括通信地串联耦合的多个神经网络架构,所述多个神经网络架构包括:所述卷积神经网络架构、所述递归神经网络架构和所述前馈神经网络架构,
其中,所述多个神经网络架构包括关联的多个可训练参数;并且
将所述预测的分类分数与所述训练数据集的标准真值分类进行比较,以确定通过所述音频处理系统反向传播的对所述多个可训练参数的更新,
其中,所述应用和所述比较相对于所述训练数据集被迭代以训练所述多个可训练参数。
28.一种存储指令的非暂时性计算机可读存储介质,所述指令在由至少一个处理器执行时使至少一个处理器执行根据权利要求24至27中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093128.2A CN113270091B (zh) | 2020-02-14 | 2020-02-14 | 音频处理系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093128.2A CN113270091B (zh) | 2020-02-14 | 2020-02-14 | 音频处理系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113270091A CN113270091A (zh) | 2021-08-17 |
CN113270091B true CN113270091B (zh) | 2024-04-16 |
Family
ID=77227349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093128.2A Active CN113270091B (zh) | 2020-02-14 | 2020-02-14 | 音频处理系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113270091B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11011162B2 (en) | 2018-06-01 | 2021-05-18 | Soundhound, Inc. | Custom acoustic models |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106816147A (zh) * | 2017-01-25 | 2017-06-09 | 上海交通大学 | 基于二值神经网络声学模型的语音识别系统 |
CN108564940A (zh) * | 2018-03-20 | 2018-09-21 | 平安科技(深圳)有限公司 | 语音识别方法、服务器及计算机可读存储介质 |
CN108804453A (zh) * | 2017-04-28 | 2018-11-13 | 上海荆虹电子科技有限公司 | 一种视音频识别方法及装置 |
CN109155006A (zh) * | 2016-05-10 | 2019-01-04 | 谷歌有限责任公司 | 使用神经网络进行基于频率的音频分析 |
CN109841226A (zh) * | 2018-08-31 | 2019-06-04 | 大象声科(深圳)科技有限公司 | 一种基于卷积递归神经网络的单通道实时降噪方法 |
CN109885842A (zh) * | 2018-02-22 | 2019-06-14 | 谷歌有限责任公司 | 处理文本神经网络 |
CN109937446A (zh) * | 2016-10-10 | 2019-06-25 | 谷歌有限责任公司 | 用于端到端语音识别的极深卷积神经网络 |
WO2019133765A1 (en) * | 2017-12-28 | 2019-07-04 | Knowles Electronics, Llc | Direction of arrival estimation for multiple audio content streams |
CN110622169A (zh) * | 2017-05-15 | 2019-12-27 | 渊慧科技有限公司 | 用于视频中的动作识别的神经网络系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180358003A1 (en) * | 2017-06-09 | 2018-12-13 | Qualcomm Incorporated | Methods and apparatus for improving speech communication and speech interface quality using neural networks |
US20190294984A1 (en) * | 2018-06-16 | 2019-09-26 | Moshe Guttmann | Selecting images for manual annotation |
-
2020
- 2020-02-14 CN CN202010093128.2A patent/CN113270091B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109155006A (zh) * | 2016-05-10 | 2019-01-04 | 谷歌有限责任公司 | 使用神经网络进行基于频率的音频分析 |
CN109937446A (zh) * | 2016-10-10 | 2019-06-25 | 谷歌有限责任公司 | 用于端到端语音识别的极深卷积神经网络 |
CN106816147A (zh) * | 2017-01-25 | 2017-06-09 | 上海交通大学 | 基于二值神经网络声学模型的语音识别系统 |
CN108804453A (zh) * | 2017-04-28 | 2018-11-13 | 上海荆虹电子科技有限公司 | 一种视音频识别方法及装置 |
CN110622169A (zh) * | 2017-05-15 | 2019-12-27 | 渊慧科技有限公司 | 用于视频中的动作识别的神经网络系统 |
WO2019133765A1 (en) * | 2017-12-28 | 2019-07-04 | Knowles Electronics, Llc | Direction of arrival estimation for multiple audio content streams |
CN109885842A (zh) * | 2018-02-22 | 2019-06-14 | 谷歌有限责任公司 | 处理文本神经网络 |
CN108564940A (zh) * | 2018-03-20 | 2018-09-21 | 平安科技(深圳)有限公司 | 语音识别方法、服务器及计算机可读存储介质 |
CN109841226A (zh) * | 2018-08-31 | 2019-06-04 | 大象声科(深圳)科技有限公司 | 一种基于卷积递归神经网络的单通道实时降噪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113270091A (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392833B2 (en) | Neural acoustic model | |
Malik et al. | Automatic speech recognition: a survey | |
CN111771213B (zh) | 语音风格迁移 | |
Yue et al. | The classification of underwater acoustic targets based on deep learning methods | |
US20200410976A1 (en) | Speech style transfer | |
US8886533B2 (en) | System and method for combining frame and segment level processing, via temporal pooling, for phonetic classification | |
Passricha et al. | A comparative analysis of pooling strategies for convolutional neural network based Hindi ASR | |
Ogunfunmi et al. | A primer on deep learning architectures and applications in speech processing | |
Gouda et al. | Speech recognition: keyword spotting through image recognition | |
CN110853630A (zh) | 面向边缘计算的轻量级语音识别方法 | |
CN112735482A (zh) | 基于联合深度神经网络的端点检测方法及系统 | |
CN110634476A (zh) | 一种快速搭建鲁棒性声学模型的方法及系统 | |
Gupta et al. | Speech emotion recognition using SVM with thresholding fusion | |
CN114981887A (zh) | 用于减少语音识别延迟的自适应帧批处理 | |
Soltanian et al. | Speech command recognition in computationally constrained environments with a quadratic self-organized operational layer | |
Shareef et al. | A review: isolated Arabic words recognition using artificial intelligent techniques | |
Thukroo et al. | Spoken language identification system for kashmiri and related languages using mel-spectrograms and deep learning approach | |
CN113270091B (zh) | 音频处理系统和方法 | |
Zoughi et al. | A gender-aware deep neural network structure for speech recognition | |
Mohanty et al. | CNN based keyword spotting: An application for context based voiced Odia words | |
Vecchiotti et al. | Convolutional neural networks with 3-d kernels for voice activity detection in a multiroom environment | |
Tailor et al. | Deep learning approach for spoken digit recognition in Gujarati language | |
Gaiceanu et al. | On CNN applied to speech-to-text–comparative analysis of different gradient based optimizers | |
Sen | Voice activity detector for device with small processor and memory | |
Aswad et al. | Developing MFCC-CNN based voice recognition system with data augmentation and overfitting solving techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |