4

下一代Google Assistant如何将100G模型压缩到0.5G并实现端测

英文原帖 [来自Google AI,设备端神经网络语音识别器] https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html

2019年3月12日,星期二
发布者:Johan Schalkwyk,Google研究员,演讲团队

2012年,语音识别研究表明,通过深度学习可以显著提高准确性,从而让Google能够较早早的在自家产品中采用深度学习技术,例如Google的语音搜索。这是在深度学习语音识别领域的一场革命的开始:每一年都有新的网络结构被开发出来,从而大大提升了模型的质量以及能力,从深层神经网络(DNNs)到递归神经网络(RNNs),再从长短期记忆网络(LSTMs)到卷积网络(CNNs)等等。在此期间,延迟一直是最主要的关注点 – 当我们发出请求时,一个自动化的语音助手能够尽可能快的做出回答一直是大家翘首以盼的.

今天,我们很高兴地宣布推出一个端到端、全神经网络架构,基于设备(非云端)的语音识别器,来支持在Gboard中的语音输入. 在我们最近的论文“ 移动设备的流媒体端到端语音识别 ”中,我们提出了一种使用RNN传感器(RNN-T)技术训练的模型,这个模型足够紧凑所以可以运行在手机上。这意味着不再有网络延迟或紊乱 - 即使您处于离线状态,新的识别器也始终可用。该模型目前工作在以字符为基础的阶段,因此当你说话时,它会逐个字符地输出单词,就好像有人在实时键入你说的那样,并且正如你对键盘听写系统(语音转文字)所期望的那样.
image1.gif

语音识别技术历史

传统上,语音识别系统由几个组成部分组成 – 一个声学模型将音频片段(通常为10毫秒帧)映射成音素(分为元音和辅音两大类),一个发音模型将这些音素连接到一起形成单词,然后一个语言模型将这些单词整合成短句形成可能想要表达的语句. 在在早期的系统中,这其中的每一个部分都需要独立的优化.

2014年左右,研究人员开始专注于训练单个神经网络,将输入的音频波形直接处理成输出的句子. 这种从序列到序列的方法通过生成给定的音频特征序列的单词或者字母序列来学习一个模型,促进了了“ attention-based ”和“ listen-attend-spell“模型的发展。虽然这些模型在准确性方面让人感觉有很大的前途,但它们通常通过检查整个输入序列来工作,并且在输入的过程中不允许有output流出,而这恰恰是实时语音转录的必要特征.

同时,一个称为连接时间分类(CTC)的独立技术帮助减少了当时生成识别器的延迟时间。事实证明,这是建立RNN-T架构的重要一部分.

递归神经网络传感器

NN-Ts是一种不采用注意力机制的序列到序列形式的模型。与大多数序列到序列模型(通常需要处理整个输入序列(在我们的例子中是波形)以产生输出(句子))不同,RNN-T连续处理输入样本和数据流输出,这是语音听写中非常受欢迎的一个特性。在我们的实现过程中,输出的是字母表中的字符. RNN-T识别器在我们说话的过程中逐个输出字符,并在适当的位置输入空格来表示停顿. 它通过一个反馈循环(把预测出来的字符再反馈给模型,让添加了之前结果的模型去预测下一个字符)执行此操作. 如下图所示.
image2.png

用输入音频样本x和预测出的符号y表示RNN-T。预测出的符号(Softmax层的输出)通过预测网络反馈到模型中,如同yu-1,确保之后的预测是基于当前的音频样本和之前的预测结果作为输入而得出的结果。预测和编码器的网络是LSTM RNN,结合过的模型属于前向传播网络。预测网络包括2层2048个units,具有640维projection layer. 编码器网络包括8个这样的层。图片来源:Chris Thornton<

有效地训练这样的模型已经很困难了,但随着我们开发的新训练技术(MINIMUM WORD ERROR RATE TRAINING FOR ATTENTION-BASED SEQUENCE-TO-SEQUENCE MODELS)进一步将单词错误率降低了5%,但计算方面的强度变得更大。为了解决这个问题,我们开发了一个并行的实现过程,因此RNN-T的loss function可以在Google的高性能Cloud TPU v2硬件上大批量运行。这让我们在训练中得到了大约3倍的加速.

离线识别

在传统的语音识别引擎中,我们上面描述的声学,发音和语言模型被“组合”成一个大的搜索图形,这个图形的边缘用语音单元及其概率标记着. 当一个语音波形传递给了给识别器时,一个“解码器”在给定输入信号的情况下,会在该图形中搜索可能性最高的路径,并读出该路径上所采用的文字序列. 通常,解码器采用有限状态传感器(FST)来作为底层模型。然而,尽管拥有复杂的解码技术,需要搜索的图形仍然非常大,我们的生成的模型大概为2GB, 这并不是手机能够轻易处理的东西,因此这种方法需要在线连接才能正常工作.

为了提高语音识别的有效性,我们试图通过直接在设备上托管新模型来避免通信网络的延迟和固有的不可靠性. 因此,我们的端到端的方法不需要在大型解码器图形上进行搜索. 相反,解码由一个单一的神经网络的波束搜索组成。我们训练的RNN-T提供与传统的基于服务器的模型相同的精度,但只有450MB,本质上是更智能的使用了参数并且更密集的打包了信息. 然而,即使在今天的智能手机上,450MB依然是个比较大的数字,而且通过如此庞大的网络信号传输可能会很慢.

我们2016年通过使用量化参数和混合内核技术进一步减小了模型大小,并通过Tensorflow Lite库中的模型优化工具包公开给了大众。相对于训练过的浮点模型,模型量化提供了4倍的压缩,并且在运行时提供了4倍加速,使我们的RNN-T能够在单核上的运行的比实时语音更快。经过压缩后,最终的模型大小为80MB.

我们的新型全神经网络,终端Gboard语音识别器最初会被用于所有的Pixel手机并且只支持美国英语这一种语言. 鉴于行业趋势,随着专业硬件和算法改进的融合,我们希望这里介绍的技术可以很快用于更多语言和更广泛的应用领域.

4阅读 125
0 条评论
关注数
10
文章数
10
如果您需要了解海外科技公司的生态资源信息,欢迎联系:Aaron.Liu@armchina.com
目录
qrcode
关注微信服务号
实时接收新的回答提醒和评论通知