Lyra: 助力下一批十亿用户的语音通话

文 / Andrew Storus 和 Michael Chinen (Chrome)

在过去的一年里,在线通信已表明对我们生活有多么重要。无论您身处何地,也无论网络条件怎样,在线沟通时清晰理解彼此的意思比以往更加重要。我们于 2 月推出了 Lyra:一种革命性的全新音频编解码器,可借助机器学习生成优质语音通话。

为了让这款出色的解码器能够得到普及,我们做了很多工作,其中之一就是对 Lyra 进行开源,让其他开发者用来助力其通信应用,使 Lyra 能朝着新方向实现强劲发展。此版本可为开发者提供采用 Lyra 编码和解码音频所需的工具,这些工具已针对 64 位 ARM Android 平台进行优化,支持在 Linux 上进行开发。我们希望与社区联手扩展此代码库,对其进行改进,使其支持更多平台。

Lyra 架构

Lyra 的架构可分为两个部分:编码器和解码器。用户对其手机讲话时,编码器会捕捉其语音中的独特属性。系统会以 40 毫秒为块提取一次语音属性(也称为特征),然后进过压缩并通过网络发送。解码器负责将特征转换回音频波形图,该波形图可通过接听人的手机扬声器播放。借助生成模型解码将这些特征生成波形图。生成模型是一种特殊类型的机器学习模型,非常适合通过有限数量的特征重现完整的音频波形图。Lyra 架构与传统的音频编解码器非常相似,后者数十年来一直是互联网通信的基石。这些传统编解码器基于数字信号处理 (DSP) 技术构建,而 Lyra 的主要优势在于能够重构优质语音信号的生成模型。

影响

移动连接在过去十年稳步提升,设备端计算能力的爆炸式增长已超过可靠的高速无线基础架构的网络接入。对于存在网络差异地区,尤其是将出现下一个十亿网络用户的发展中国家,技术将使人们更好的享受沟通连结的希望仍显渺茫。即便在网络连接高度可靠的地区,自由办公和远程办公的涌现使移动数据的局限性更加暴露无遗。尽管 Lyra 可将原始音频压缩低至 3kbps 仍能保证通话质量,这一点要优于 Opus 等编解码器,而且能在此类场景中节省大量带宽,但其本身并不是为了完全取代其他编解码器而设计。

这些趋势为 Lyra 提供了发展动力,也是我们的开源库侧重研究其实现实时语音通信潜力的原因。我们发现 Lyra 在其他应用场景也能发挥独特的良好效果,包括存档大量语音、通过利用计算成本较低的 Lyra 编码器节省电量以及缓解紧急情况下大量用户并发呼叫造成的网络拥堵。我们期望见证以创新见长的开源社区能助力 Lyra ,进而构思出更加独特且有效的应用场景。

开源版本

Lyra 代码采用 C++ 语言编写,具有速度、效率和互通性方面的优势,并将 Bazel 构建框架与 Abseil 和 GoogleTest 框架搭配使用,可实现全面的单元测试。此核心 API 提供了在文件和数据包级别进行编码和解码的接口。其中还提供完整的信号处理工具链,包括各类过滤器和转换。我们的示例应用集成了 Android NDK,以展示如何将原生 Lyra 代码集成到基于 Java 的 Android 应用。我们还提供运行 Lyra 所需的权重和矢量量化器。

今天我们将发布 Beta 版 Lyra,因为我们希望助开发者一臂之力,并尽快收集反馈。因此,我们希望 API 和位流伴随该工具的发展不断迭代。运行 Lyra 的所有代码已根据 Apache 协议开源,除了一个数学内核,我们提供该内核的共享库,直到我们能在更多平台上实现完全开放的解决方案。我们期望了解开发者们在 Lyra 开源后能够有哪些作为。请在 GitHub 上查看代码和演示,告诉我们您的想法以及您打算如何使用该工具!

致谢

开源版本的实现离不开以下人员的帮助: Hengchin Yeh、Alejandro Luebs、Jamieson Brettle、Tom Denton、Felicia Lim、Bastiaan Kleijn、Jan Skoglund、Yaowu Xu、Matt Frost、Jim Bankoski (Chrome)、Chenjie Gu、Zach Gleicher、Tom Walters、Norman Casagrande、Luis Cobo、Erich Elsen (DeepMind)。

原文:Lyra - enabling voice calls for the next billion users
中文:谷歌开发者公众号