北京时间 4 月 6 日,谷歌开源了 Lyra。Lyra 是一种新型的音频编码解码器,用于语音的编码和解码。与传统基于 DSP(数字信号处理)技术的编解码器相比,主要优势在于其可以利用机器学习产生高质量的语音呼叫,同时将音频压缩到最小 3 kbps。
据谷歌开源博客介绍,过去一年,由于新冠疫情等原因,在线语音已经变得至关重要并且随处可见,于是在今年 2 月推出了 Lyra。现在,为了让 Lyra 惠及更多人,谷歌选择将 Lyra 开源,以此让更多开发人员可以便捷地使用这一最佳编解码器,增强各类音频应用的功能,同时,推动 Lyra 更快地发展。
目前开源的版本为开发人员提供了所必须的工具,以使用 Lyra 进行音频编码和解码。同时,这一版本针对 Linux 上的 64 位 ARM Android 平台进行了优化。未来将会与社区一起扩展此代码库并开发对更多平台的支持。
Lyra 的架构
Lyra 的架构分为编码器和解码器两部分。当某人对着电话讲话时,编码器先从语音中捕获独特的语音属性(Feature),将这些属性提取为 40ms 的块然后压缩转换成字节流,通过网络发送。字节流传到电话另一端之前,解码器会通过生成模型将语音属性解码回可以在听众电话扬声器里播放的波形。这里的生成模型是一种特殊的机器学习模型,非常适合基于有限的语音属性重新创建完整的音频波形。
(图片来自 Google 开源博客)
Lyra 架构与传统的音频编解码器十分相似,传统的音频编解码器作为互联网通信的骨干力量已经有数十年了,而 Lyra 才诞生。相比之下,传统的编解码器基于数字信号处理技术(DSP)重建语音信号,而 Lyra 基于生成模型重建语音信号,后者优势显著。
Lyra 开源版本详解
为了速度更快,效率更高以及更好的软硬件交互性,Lyra 的开发团队基于 Bazel 构建项目,使用 C++ 编写代码,并使用 GoogleTest 框架做测试。Lyra 的核心 API 提供了可以在文件和数据包级别进行编码和解码的接口。还提供了完整的信号处理工具链,其中包括各种滤波器和变换器。
谷歌开源博客介绍到,我们的 Demo 集成了 Android NDK,展示了如何将本机 Lyra 代码集成到基于 Java 开发的 android 应用程序中,还提供了运行 Lyra 所需的矢量量化器等基础设施。
对于本次版本发布的用意,谷歌开源博客介绍道,我们今天将 Lyra 作为 Beta 版本发布是希望内部开发人员尽快获得使用反馈。除了 KML(核心数学内核库)之外,Lyra 将会根据 Apache 开源协议开放所有运行 Lyra 的代码。
开源之后
在过去十年中,伴随着移动设备的爆发式增长,计算能力的增长已经使得高速无线基础架构的可靠性受到威胁。对于存在这种反差的地区,尤其是发展中国家,当下一个十亿互联网用户群体需要接入网络,他们之间能紧密联系的可能性将会很低。即使在连接高度可靠的地区,远程办公的出现也加剧了移动数据传输的带宽限制。虽然 Lyra 可以将原始音频压缩到 3 kbps,并使其质量优于其他编解码器(例如 Opus),但它的目标不是成为一个完整的替代方案,而是可以在高压缩比,高质量的情况下节省有意义的带宽。
这些趋势为 Lyra 提供了动力,也是开发团队专注于实时语音通信的原因。除此外,Lyra 还有其他一些非常独特的应用,例如存档大量语音,借助高效计算的 Lyra 编码器节省电池,缓解多人试图同时拨打电话的紧急情况下的网络拥塞等等。
评论