谷歌Gboard语音识别器如何快!准!狠!
最近华为和三星为新机像素互相掐架。神仙打架分外精彩,但智能手机,不是应该比谁更智能吗?
大多数人都不知道Google有一个手机亲儿子——Pixel。近日网上有消息透露,谷歌将新推出Pixel 3a和Pixel 3a XL两款中端机型。
比Google手机本身更惹人期待的是,可以适配所有Pixel手机的Gboard语音识别器。这款全神经元设备端语音识别器,具有同步转录、离线识别等特点。通过谷歌最新的(RNN-T)技术训练构建,精度超过CTC,只有80M,可直接在设备上运行。
这款新的语音识别不再会有网络延迟或故障问题——新的识别器即便处于离线状态也能够运行。该模型能以字符水平进行语音识别,因此当人在说话时,它会逐个字符地输出单词,就像有人在实时键入你说的话,它绝对能满足人们对键盘听写系统的期望。
图源:Akshay Kannan,Elnaz Sarbar
该图对比了识别同一句语音时,服务器端语音识别器(左)以及新的设备端语音识别器(右)的生成情况。
Gboard,很大程度上实现了语音识别的"快、准、狠"。堪称里程碑之作。相比之下,华为的语音识别逊色不少:
语音识别的发展史
传统的语音识别系统由以下几个部分组成:将音频片段(通常为10毫秒帧)映射到音素的声学模型;将音素合成单词的发音模型;以及表达给定短语可能性的语言模型。在早期系统中,对这些组件的优化都是独立进行的。
2014年左右,研究人员开始专注训练单个神经网络,直接将输入音频波形映射到一个输出句子上。研究人员通过这种方法,开发出了「attention-based」和「listen-attend-spell」模型。虽然这些模型准确率不错,但是它们通常是回顾整个输入序列来识别语音,且在输入时不允许数据流输出,这是实时语音转录的缺憾。
当时,有一项"连接时差分类技术(CTC)"可以帮助将生产式识别器的延迟减半。事实证明,这项进展对于开发出 CTC 最新版本中采用的 RNN-T 架构来说(该版本可看成是 CTC 的泛化),是至关重要的一步。
循环神经网络传感器
RNN-Ts是一种不采用attention机制的"序列到序列"模型。大多数序列到序列模型通常需要处理整个输入序列(本文案例中的语音波形)以生成输出(句子),但RNN-T不同,它能持续地处理输入的样本和数据流,并进行符号化的输出,这种符号化的输出有助于语音听写。
在谷歌研究人员的实际操作中,符号化的输出就是字母表中的字符。当人说话时,RNN-T识别器会逐个输出字符,并在适当的位置输入空格。在这一过程中,RNN-T 识别器还会有一条反馈路径,将模型预测的符号输回以预测接下来的符号,具体流程如下图所示:
图源:Chris Thornton
RNN-T 的表示:用 x 表示输入的语音样本;用 y 表示预测的符号。预测符号(Softmax层的输出)通过预测网络(如yu-1)被反馈到模型中,确保预测同时适用于音频样本及过去的输出。预测和解码网络都是LSTM RNNs,联合的模型则是前馈网络。预测网络由两层共2048个单元的层组成,具有640维投影层。解码网络则由8个这样的层组成。
有效地训练这样的模型已经很困难了,但随着谷歌开发出一种新的训练技术,进一步降低了5%的单词错误率,同时也对计算能力提出了更高的要求。为了解决这个问题,谷歌开发了一种能平行实现的方法,让RNN-T的损失函数可以在Google的高性能Cloud TPU v2芯片上大批量运行。这使得训练的速度提高了大约3倍。
离线识别
在传统的语音识别引擎中,上文描述的声学、发音和语言模型被组合成一个大搜索图,其边缘用语音单元及其概率标记。在给定输入信号的情况下,当语音波形抵达识别器时,解码器就会在该图中搜索出概率最大的路径,并读出该路径所采用的单词序列。通常,解码器假定基础模型由有限状态传感器(FST)表示。然而,尽管现在已经有精密的解码技术,但是依旧存在搜索图太大的问题——谷歌生成模型的搜索图大小近2GB。由于搜索图无法轻易地在手机上运行,因此采用这种方法的模型只有连网时才能正常工作。
为了提高语音识别的有效性,谷歌还试图通过直接在设备上托管新模型来避免通信网络的延迟和固有的不可靠性。因此,谷歌提出了端到端的方法,它不需要在大型解码器图上进行搜索。相反,它采取对单个神经网络进行一系列搜索的方式进行解码。谷歌训练的RNN-T能达到与传统的基于服务器的模型相同的准确度,但模型大小只有450MB,本质上更加智能地利用了参数和打包信息。不过,即便对于如今的智能手机来说,450 MB 依旧太大了,如此一来,当它通过庞大的网络进行网络信号传输时,速度就会变得很慢。
对此,谷歌通过利用其在2016年开发的参数量化和混合内核技术,进一步缩小了模型,并通过TensorFlow Lite库中的模型优化工具包来对外开放。与经过训练的浮点模型相比,模型量化的压缩高出 4 倍,运行速度也提高了 4 倍,从而让 RNN-T 比单核上的实时语音运行得更快。经过压缩后,模型最终缩小至 80MB。
虽然Gboard语音识别器目前只能在使用美式英语的Pixel手机上使用。但我们有理由相信,随着专业硬件和算法的融合不断增强,这一技术将会运用到更多语言和更广泛的领域中去。