查看原文
其他

Google 智能助理,支持多种语言功能!

Google 谷歌开发者 2019-02-15

文 / 副总裁 Johan Schalkwyk 和 Google Speech 工程师 Ignacio Lopez Moreno


多语言家庭正变得越来越普遍,一些数据来源 [1][2][3] 表明,多语言使用者的人数已超过单语言使用者,而且这一数字还会继续增长。鉴于多语言使用者人群庞大且不断增加,与以往相比,我们更需要使 Google 开发产品能够同时支持多种语言,以便更好地为用户服务。 

今天,我们将推出 “Google 智能助理” 的多语言支持功能,让用户在查询时可以切换两种不同的语言,而无需返回语言设置。用户从英语、西班牙语、法语、德语、意大利语和日语中选择两种受支持的语言后,便可使用其中任意一种语言与 “智能助理” 对话,而 “智能助理” 会以相同的语言回应。之前,用户需要为 “智能助理” 选择一种语言设置,而每当他们想使用另一种语言时,便需要更改设置,但现在,多语言家庭无需动手,即可享受简便的体验。 


“Google 智能助理” 现在能够识别语言、解读查询内容,并使用正确的语言作出回应,而且用户无需触摸 “智能助理” 设置,便可完成这些操作


然而,实现这项强大的功能却并非易事。事实上,我们付出多年的努力解决了诸多难题。最终,我们将问题拆分成三个独立的部分:识别多种语言、理解多种语言,以及为 “Google 智能助理” 用户优化多语言识别。



识别多种语言

当有人在说另一种语言时,即使我们自己并不说这种语言,也能够识别出来,只要注意语言的声学效果(语调、音域等),便可做到这一点。但是,即便有了完整自动语音识别系统的帮助,定义自动口语识别的计算框架也非常具有挑战性 1。在 2013 年,Google 开始使用深度神经网络 [4][5] 来研究口语识别 (LangID) 技术。如今,借助递归神经网络,我们最先进的 LangID 模型可以在超过 2000 个备选语言对中识别各种语言对。作为其中一类神经网络,递归神经网络在解决序列建模问题上尤为有效,例如语音识别、语音检测、语者识别等方面的问题。我们遇到的挑战之一是如何处理更大的音频集,这需要获取能够自动大规模理解多种语言的模型,并且达到可以让这些模型正常运作的质量标准。



理解多种语言

要同时理解多种语言,便需要并行运行多个进程,且每个进程产生增量结果,从而使 “智能助理” 不仅能够识别用户提出查询时所使用的语言,还可以解析查询以创建可操作指令。举例来说,即使是在单语言环境中,如果用户要求 “设定下午 6 点的闹钟”,则 “Google 智能助理” 必须理解 “设定闹钟” 的意思是打开闹钟应用,输入 “下午 6 点” 的显式参数,而且还要推断出闹钟应该设在今天。要对受支持语言的任何给定语言对执行这项操作可谓一项挑战,因为 “智能助理” 执行与在单语言情况中相同的工作,但现在必须额外启用 LangID,并且不只是一个,而是同时运行两个单语言语音识别系统(在本篇博文的稍后部分,我们会进一步说明当前两种语言的限制)。 

重要的是,我们需要在几毫秒的时间内评估 “Google 智能助理” 和用户查询中提及的其他服务异步生成的实时增量结果。我们借助另一种算法来完成这项工作。该算法使用由 LangID 产生的候选语言概率、我们的转录置信度和用户偏好(例如最喜欢的艺术家),对两个语音识别系统中每个系统提供的转录假设进行排名。 


我们用于 “Google 智能助理” 的多语言语音识别系统与标准单语言语音识别系统示意图。排名算法用于根据有关用户和增量 LangID 结果的相关信息,从两个单语言语音识别器中选择最佳识别假设


当用户停止讲话时,模型不仅可确定用户所说的语言,还能解读用户的说话内容。当然,这个流程需要复杂的架构,因而会增加处理开销,而且可能会造成不必要的延迟。 



优化多语言识别

为了尽可能降低这些不良影响,系统能越快确定所说的语言就越好。如果系统在用户查询结束前就可以确定所说的语言,则系统会忽略识别器以停止处理用户的语音并舍弃忽略的假设,进而降低处理开销,并减少任何潜在的延迟。考虑到这一点,我们发现了几种优化系统的方法。 

我们考虑的一个用例是人们通常在查询中使用同一种语言(用户通常也希望 “智能助理” 使用该语言作出回应),除非所查询实体的名称使用不同语言。这意味着,在大多数情况下,即使句子中包含使用不同语言的实体,“智能助理” 也可以通过关注查询的第一部分来对所说的语言作出初步猜测。借助这种早期识别,我们可以通过切换到单个单语言语音识别器来简化任务,这与我们处理单语言查询一样。然而,快速决定如何以及何时切换为单一语言需要最终的技术整合:具体来说,我们使用随机森林技术来结合多个情境信号,例如所使用的设备类型、所发现的语音假设数量、我们接收类似假设的频率、单个语音识别器的不确定性,以及每种语言的使用频率。

我们用来简化和提升系统质量的另一个方法是限制用户可以选择的候选语言列表。用户可以在我们的家居设备目前支持的六种语言中选择两种,如此一来,我们就可以支持大部分多语言使用者。不过,我们还在继续改进技术,希望接下来可以解决三语支持问题,因为我们深知这会进一步提升不断增长的用户群的体验。



从双语支持到三语支持

从一开始,我们的目标就是让 “智能助理” 可以自然地与所有用户对话。多语言支持是用户翘首以待的功能,也是我们团队几年前就提上日程的项目。然而,现在全球不只有许多双语使用者,还有使用三种语言的用户,或使用两种以上语言的家庭,我们也想让他们的生活更加便利。 

今天的更新让我们走上正轨,是我们先进的机器学习技术、语音和语言识别技术,以及我们团队为优化 LangID 模型所作出的努力让这一切成为可能。目前,我们正在努力教导 “Google 智能助理” 如何同时处理两种以上的语言,并致力于在日后添加更多受支持的语言 — 敬请期待! 



1:人们通常认为,口语识别比基于文本的语言识别更具挑战性,后者只需要基于字典的相对简单技术就能出色地完成工作。语音内容的时间/频率模式很难加以比较,而且由于用户在讲话时可以不加停顿,语速也有所不同,并且麦克风除了录制语音以外还会保留背景噪声,因此确定语音内容也更加困难。



更多 AI 相关阅读:

· Dopamine - 灵活、可重复的强化学习研究新框架

· 利用 Universal Transformer,翻译将无往不利!

· Google 最新推出了 The Lever,分享应用机器学习的最佳案例


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存