作者:Johan Schalkwyk

谷歌手机输入法可以离线语音识别了!模型精度远超经典CTC

今天,谷歌发布了一个端到端的移动端全神经语音识别器,来处理 Gboard 中的语音输入。该新型语音识别器可内置在手机设备中,离线状态时依然可用。更重要的是,它可以实现字符级实时输出,对用户的语音输入提供快速及时的响应。

2012 年,在深度学习技术的帮助下,语音识别研究有了极大进展,很多产品开始采用这项技术,如谷歌的语音搜索。这也开启了该领域的变革:之后每一年都会出现进一步提高语音识别质量的新架构,如深度神经网络循环神经网络长短期记忆网络卷积神经网络等等。然而,延迟仍然是重中之重:自动语音助手对请求能够提供快速及时的反应,会让人感觉更有帮助。

今天,谷歌发布了一个端到端的移动端全神经语音识别器,来处理 Gboard 中的语音输入。在相关论文《Streaming End-to-End Speech Recognition for Mobile Devices》中,谷歌研究者展示了一个使用 RNN transducer (RNN-T) 技术训练的模型,它非常紧凑,因而可以内置在手机设备中。这意味着不再有网络延迟或 spottiness,新的语音识别器一直可用,即使是离线状态也可使用。该模型以字符级运行,因此只要用户说话,它就会按字符输出单词,就像有人在你说话的时候实时打字一样。

该视频在识别相同的语音句子时将服务器端语音识别器(左侧面板)与新型移动端识别器(右侧面板)进行对比。GIF 来源:Akshay Kannan 和 Elnaz Sarbar

语音识别历史

一直以来,语音识别系统包含多个组件:将音频片段(通常为 10 毫秒帧)映射到音素上的声学模型、将各音素结合在一起形成单词的发音模型,以及表达给定短语似然的语言模型。在早期语音识别系统中,这些组件保持独立优化。

2014 年左右,研究人员开始着重训练单一神经网络,直接将输入的音频波形映射到输出语句上。这种序列到序列的方法基于给定音频特征序列生成单词或字素序列,从而学习模型,这促进了「基于注意力」和「倾听-注意-拼写」(listen-attend-spell)模型的发展。虽然这些模型能够极大地保证准确性,但它们通常需要检查整个输入序列,并且在输入的同时无法实现输出,而这又是实时语音转录的必要特征。

与此同时,一种名为 connectionist temporal classification(CTC)的自主技术已经帮助生产级识别器将自身延迟减半。事实证明,这对创建 RNN-T 架构(最新发布版本采用的架构)来说是很重要的一步,RNN-T 可以看作是 CTC 技术的泛化。

RNN transducer

RNN-T 是一种不使用注意力机制序列到序列(sequence-to-sequence)模型。大部分序列到序列模型通常需要处理整个输入序列(在语音识别中即波形)从而生成输出(句子),而 RNN-T 不一样,它连续处理输入样本,生成输出信号,这非常适合语音听写。在谷歌的实现中,输出信号是字母表中的字符。随着用户说话,RNN-T 识别器逐个输出字符,且在合适的地方加上空格。在这个过程中,该识别器还具备反馈循环(feedback loop),将模型预测的信号再输入到模型中,以预测下一个信号,如下图所示:

RNN-T 图示,输入语音样本为 x,预测信号为 y。

如上所示,RNN-T 通过预测网络(如 y_u-1)将预测信号(Softmax 层的输出)返回至模型,以确保预测结果基于当前语音样本和之前的输出得出。预测网络和编码器网络是 LSTM RNN,联合模型是前馈网络。预测网络由 2 个 LSTM 层组成,每个层包括 2048 个单元,以及一个 640 维的映射层。编码器网络有 8 个 LSTM 层。

高效训练此类模型已经非常困难,而在使用谷歌新型训练技术后(该技术将错词率降低了 5%,详见论文《MINIMUM WORD ERROR RATE TRAINING FOR ATTENTION-BASED SEQUENCE-TO-SEQUENCE MODELS》),训练变得更加计算密集。为此,谷歌开发了并行实现,这样 RNN-T 损失函数就可以在谷歌的高性能云 TPU v2 硬件上大批量高效运行。而这使训练速度实现了 3 倍加速。

离线识别

在传统的语音识别引擎中,上述的声学、发音和语言模型被「组合」成一个大型的搜索图。该搜索图的边是用语音单元及其概率来标记的。当语音波形被输入给识别器时,「解码器」会在该图中搜索给定输入信号的最大似然路径,并读取该路径采用的单词序列。通常,解码器假设底层模型的有限状态转换器(FST)表示。然而,虽然有复杂的解码技术,搜索图仍然很大,对谷歌的生产模型来说差不多是 2GB。因此该技术无法轻易地在移动手机上部署,而是需要在线连接才能正常工作。

为了提高语音识别的有用性,谷歌通过直接在设备上部署新模型,来避免通信网络的延迟和固有的不可靠性。所以,其端到端方法不需要在大型解码器图上进行搜索。相反,解码包括通过单个神经网络进行集束搜索(beam search)。谷歌训练的 RNN-T 模型的准确率能够媲美基于服务器的传统模型,但大小只有 450MB,本质上更智能地使用参数和更密集地打包信息。但即使是对现在的智能手机来说,450MB 也是不小的容量了,而在如此大的网络上传播信号会有些慢。

谷歌使用其在 2016 年开发的参数量化和混合核技术来进一步缩小模型体积,然后使用 TensorFlow Lite 库中的模型优化工具包使其公开可用。模型量化对训练好的浮点模型提供了 4 倍的压缩,实现了 4 倍的运行时加速,因此 RNN-T 在单核上的运行速度比实时语音要快。经过压缩后,最终模型只有 80MB 大小。

谷歌发布的这一新型全神经移动端 Gboard 语音识别器将首先用于所有使用美式英语的 Pixel 手机。谷歌希望可以将这项技术应用到更多语言和更多应用领域。

更为普及的语音输入

此外,今年一月份百度发布了同样关注语音识别的「百度输入法 AI 探索版」,其默认为全语音输入方式。如果不讨论使用场景,目前它的语音输入确实在准确度和速度上已经达到非常好的效果,包括中英混杂、方言和其它语种等。与谷歌关注移动端推断不同,百度语音识别更关注在线的实时推断,他们提出了一种名为「流式多级的截断注意力(SMLTA)」模型。

SMLTA 模型最核心的概念是利用 CTC 模型的尖峰对连续音频流做截断,然后在每个截断的小语音片段上进行注意力建模。这种模型利用了截断多级注意力对长句建模的优势,同时也解决了 CTC 模型的插入或删除错误对注意力模型的影响。此外,它采用的是一种局部注意力机制,因此能做到实时在线推断。

百度的 SMLTA 主要用于在线语音识别,但通过对 Deep Peak 2 模型的大量工程优化,它也能提供离线语音识别机器之心发现百度输入法 AI 探索版的 APP 包(IOS)有 89.6MB,如果使用离线语音识别,需要额外下载一个 25MB 大小的包。

论文:Streaming End-to-end Speech Recognition For Mobile Devices

论文地址:https://arxiv.org/abs/1811.06621

摘要:根据给定输入语音直接预测输出字符序列的端到端(E2E)模型对移动端语音识别来说是不错的选择。但部署 E2E 模型的挑战也不少:为了应用到实际中,此类模型必须对语音进行流式的实时解码;它们必须稳健地支持长尾使用案例;它们必须能够利用用户特定的上下文(如联系人列表);此外,它们必须要非常准确。在本文中,我们用循环神经网络转换器(RNN transducer)构建了 E2E 语音识别器。经过试验评估,我们发现在很多评估项目中,该方法在延迟和准确率方面远超基于 CTC 的传统模型。

原文地址:https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html

工程输入法谷歌语音识别
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

序列到序列技术

局部注意力机制技术

每生成单个目标词都需要考虑原语句子的所有词在计算上是非常昂贵的,也不是必需的。为了减少这种问题,Luong et al. [20] 提出了一种仅关注固定窗口大小 2D+1 的局部注意力机制

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
推荐文章
暂无评论
暂无评论~