【学习笔记】Google的Lyra项目:基于神经网络的超低比特率语音编解码技术
一、引言:语音通信的带宽挑战与技术突破
在实时音视频通信占据全球数字化生活核心地位的今天,Google于2021年推出的Lyra编解码器标志着语音编码技术进入新的时代。这款基于机器学习的新型音频编解码器以3kbps的极低比特率实现接近原始音质的语音重建能力,突破传统DSP技术的性能边界。在发展中国家网络基础设施薄弱地区,Lyra使数亿用户首次体验到清晰的实时语音通话;在5G时代边缘计算场景中,其计算效率为物联网设备开辟语音交互新可能。
二、技术架构解析:生成模型驱动的编码范式革新
2.1 系统架构设计
Lyra采用经典的双模块架构,但通过机器学习实现性能跃迁:
编码器:
- 特征提取:每40ms提取语音信号的log-mel声谱图特征(80维)
- 矢量量化:通过预训练码本将连续特征离散化为二进制流
- 压缩传输:采用熵编码实现3kbps码率压缩
解码器:
- 特征重建:使用WaveRNN变体模型恢复声学特征
- 波形合成:结合LPCNet声码器生成24kHz采样率波形
- 实时优化:多频段并行生成技术降低90%计算延迟

2.2 核心技术创新
生成对抗网络(GAN)优化
与传统WaveNet不同,Lyra解码器引入对抗训练策略。鉴别器网络通过频谱/时域联合判别,引导生成器输出具备自然语音的微观纹理特征,显著降低机械感。
混合量化策略
采用分层矢量量化(HVQ)技术,对声学特征进行16级分层编码。实验证明,该方案较传统VQ-VAE降低28%的量化误差,在3kbps码率下实现0.78的STOI清晰度指标。
跨平台加速
基于ARM NEON指令集的矩阵运算优化,使Pixel 4手机实现实时编解码(编码延迟62ms,解码延迟95ms)。在树莓派4B设备上,CPU占用率控制在23%以下。
三、性能对比:突破传统编解码器的极限
3.1 客观质量评估
| 编解码器 | 比特率(kbps) | PESQ | STOI | MOS |
|---|---|---|---|---|
| Lyra | 3 | 3.2 | 0.81 | 4.1 |
| Opus | 6 | 2.8 | 0.76 | 3.7 |
| Speex | 2.4 | 2.1 | 0.63 | 2.9 |
注:测试数据来自Google内部百万级语音样本库
3.2 主观听感测试
在ITU-T P.808标准测试中,Lyra在背景噪声(SNR=10dB)环境下表现突出:
- 语音自然度(Naturalness)达到4.3分(5分制)
- 说话人辨识准确率98.7%,较Opus提升22个百分点
- 双盲测试中,67%的受试者认为3kbps Lyra优于8kbps Opus
四、技术实现细节与工程实践
4.1 模型训练策略
- 数据规模:70种语言的10万小时语音样本
- 数据增强:加入-20dB至+20dB的噪声扰动、混响模拟
- 损失函数:多尺度STFT损失 + 对抗损失联合优化
- 量化感知训练:在训练中模拟量化误差,提升模型鲁棒性
4.2 开源实现框架
// Lyra核心编码流程示例
void EncodeLyraFrame(const AudioFrame& frame) {FeatureExtractor extractor;auto features = extractor.ExtractLogMelFeatures(frame);VectorQuantizer quantizer(Codebook::kLyraVQ);auto quantized = quantizer.Quantize(features);BitstreamEncoder encoder;encoder.EncodePacket(quantized);
}
工具链组成:
- 前端:C++14标准实现,Bazel构建系统
- 推理引擎:XNNPACK加速的神经网络推理
- 测试框架:GoogleTest覆盖98%核心代码
五、应用场景与产业影响
5.1 典型应用场景
- 视频会议:降低带宽需求,改善弱网环境下的用户体验。
- 移动通信:在全球范围内,许多地方仍存在网络覆盖不佳的问题,Lyra可以优化这种环境下的语音通话质量。
- 物联网(IoT):在资源有限的IoT设备上实现实时语音交互。
- 流媒体服务:对于需要高质量、低延迟语音的直播或广播平台,Lyra都是理想的选择。
5.2 产业生态发展
- 硬件加速:Qualcomm已发布Lyra专用DSP核,功耗降低至0.2mW/MHz
- 标准演进:3GPP正在评估将Lyra纳入5G广播标准(TS 26.401)
- 开发者生态:GitHub开源社区已提交320+优化PR,包括WebAssembly移植、Rust绑定等
六、挑战与未来展望
6.1 当前技术局限
- 音乐信号处理:在48kHz采样率下,谐波重建精度下降37%
- 多说话人场景:3人以上同时说话时,MOS评分降至3.1
- 模型安全:对抗样本攻击成功率高达19%
6.2 技术演进方向
神经架构搜索
Google Brain团队正探索自动生成更高效的编解码架构,初步实验显示:
- 参数量减少40%的情况下保持同等性能
- GPU推理速度提升2.3倍
七、结语
Lyra的技术突破不仅重新定义了语音编解码的性能边界,更开创了"神经网络编解码"的新范式。随着开源社区的持续优化和硬件生态的成熟,这项技术正在从实验室走向大规模商用,助力构建真正全球覆盖的智能语音网络。对于研究者而言,Lyra的开放架构为探索混合编码、元学习优化、脑机编码等前沿方向提供了绝佳试验场。在AI与通信技术深度融合的今天,Lyra的成功预示着属于智能语音的"摩尔定律"正在加速到来。
项目地址:https://gitcode.com/gh_mirrors/lyra3/lyra

相关文章:
【学习笔记】Google的Lyra项目:基于神经网络的超低比特率语音编解码技术
一、引言:语音通信的带宽挑战与技术突破 在实时音视频通信占据全球数字化生活核心地位的今天,Google于2021年推出的Lyra编解码器标志着语音编码技术进入新的时代。这款基于机器学习的新型音频编解码器以3kbps的极低比特率实现接近原始音质的语音重建能力…...
Unity Dedicated Server 控制台 输出日志LOg 中文 乱码
现象: 中文乱码 原因: Unity打包出来的.exe文件,语言一栏是英文,VS控制台出来不一样 解决方案: 新建.bat文件 ,并使用命令chcp 65001,运行时启动.bat,而不是.exe, 改不了exe属性,虽然有点奇怪ÿ…...
【Excel】 Power Query抓取多页数据导入到Excel
抓取多页数据想必大多数人都会,只要会点编程技项的人都不会是难事儿。那么,如果只是单纯的利用Excel软件,我还真的没弄过。昨天,我就因为这个在网上找了好久发好久。 1、在数据-》新建查询-》从其他源-》自网站 ,如图 …...
去耦电容的作用详解
在霍尔元件的实际应用过程中,经常会用到去耦电容。去耦电容是电路中装设在元件的电源端的电容,其作用详解如下: 一、基本概念 去耦电容,也称退耦电容,是把输出信号的干扰作为滤除对象。它通常安装在集成电路…...
HTTPS 与 HTTP 的区别在哪?
HTTP与HTTPS作为互联网数据传输的核心协议,其通信机制与安全特性深刻影响着现代网络应用的可靠性与用户体验。本文将解析两者的通信流程、安全机制及核心差异。 一、HTTP的通信机制 先来看看HTTP是什么吧。 HTTP基于TCP/IP协议栈,采用经典客户端-服务…...
let、const【ES6】
“我唯一知道的就是我一无所知。” - 苏格拉底 目录 块级作用域:var、let、const的对比:Object.freeze(): 块级作用域: 块级作用域指由 {} 包围的代码块(如 if、for、while、单独代码块等)形成的独立作用…...
openharmony5.0中hdf框架中实现驱动程序的动态加载和管理的技术细节分析
在分析openharmony的hdf框架的设备驱动加载器(IDriverLoader)时发现在创建实例时会首先判断一下是否完成了驱动入口的构建(HdfDriverEntryConstruct),如果没有构建会重新构建,这与我开始以为的不一致(我一直以为是采用的linux内核方式,只是由…...
TVS管学习记录
文章目录 前言一、TVS是什么?二、TVS关键参数1.反向截至电压**实际意义** 2.钳位电压**定义与作用****选择依据** **4. 实际应用示例****场景:通信端口的ESD保护** 3.反向截至电压和钳位电压的关联和区别**. 小结** 三、实际应用电路举例总结 前言 TVS管…...
数据库表的各种设计
本篇文章,主要讲解项目开发时,遇到不同的情况,要学会对数据库的表进行合理设计。 1、将表的某个字段,存到一张新表中 ①情况描述 ②操作步骤 第一步:创建role表 第二步:在user表中,删除role字…...
JWT使用教程
目录 JWT (JSON Web Token)1. JWT简介(1) 什么是JWT(2) JWT有什么用(3) JWT认证方式 2. JWT的组成部分3. 签名的目的4. JWT与Token的区别5 JWT的优势6 JJWT签发与验证token(1) 引入依赖(2) 创建 Token(3) 解析Token(4) 设置过期时间(5) 自定义claims 7. JWT自定义工具类 JWT (J…...
【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
今日号外:🔥🔥🔥 DeepSeek开源周:炸场!DeepSeek开源FlashMLA,提升GPU效率 下面我们开始今天的主题,deepseek官方明确表示deepseek-r1目前不支持json输出/function call,可…...
老旧android项目编译指南(持续更)
原因 编译了很多项目,找到了一些可观的解决办法 1. android studio里面的jdk版本切换 jdk版本切换在这里,一般安卓开发需要用到4个版本的jdk,jdk8, jdk11, jdk17, jdk21新版的android stuio是默认使用高版本的jdk,所以切换版本是很有必要的 2. 命令…...
linux中安装部署Jenkins,成功构建springboot项目详细教程
参考别人配置Jenkins的git地址为https,无法连上github拉取项目,所以本章节介绍通过配置SSH地址来连github拉取项目 目录: 1、springboot项目 1.1 创建名为springcloudproject的springboot项目工程 1.2 已将工程上传到github中,g…...
AI开发利器:Anaconda
在Python开发过程中,不同的项目可能会依赖不同版本的Python以及各种不同版本的库。比如,项目A可能依赖Python 3.8和某个特定版本的numpy、TensorFlow和PyTorch,而项目B可能需要Python 3.9以及另一个版本的numpy库。如果直接在系统中安装Pytho…...
java网络编程--基于TCP协议的网络编程
Scoket介绍 利用 TCP 协议进行通信的两个应用程序是有主次之分的, 一个是服务器程序,一个是客户端程序, 两者的功能和编写方法不太一样, 其中 ServerSocket 类表示 Socket 服务器端,Socket 类表示 Socket 客户端。 服…...
PageHelper新发现
PageHelper 背景解决reasonablepageSizeZero 背景 今天发现了一个很有趣的现象,接手一个很老的项目springmvc项目、使用PageHelper分页实现常见的后端接口分页功能。但是发现当页码参数大于实际的页码数时、正常不应该返回数据,但是目前确一直返回数据不…...
Redis 数据结构和使用详解(带示例)
Redis 支持的主要数据结构及其对应操作命令的详细解释,结合具体使用场景和示例: 1. 字符串(String) 用途:存储文本、数值或二进制数据,适用于缓存、计数器等。 常用命令: SET key value&#x…...
深度解读 Chinese CLIP 论文:开启中文视觉对比语言预训练
目录 论文概述1.论文摘要2.论文脑图3.论文创新3.1模型构建3.2训练方法3.3数据构建3.4部署优化 4.模型架构 论文解析1. 引言2. 方法2.1数据说明2.2预训练方法2.2.1模型初始化方法2.2.2两阶段预训练方法 2.3预训练细节2.3.1模型初始化2.3.2第一阶段预训练2.3.3第二阶段预训练2.3.…...
SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)
目录 一、环境准备 二、新建项目 三、整合依赖 1、MyBatis Plus 数据库操作 2、Hutool 工具库 3、Knife4j 接口文档 4、其他依赖 四、通用基础代码 1、自定义异常 2、响应包装类 3、全局异常处理器 4、请求包装类 5、全局跨域配置 补充:设置新建类/接…...
【Oracle专栏】sqlplus显示设置+脚本常用显示命令
Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.内容概述 本文主要针对oracle 运维中常用知识点进行整理,包括: 1)sqlplus模式下,为了方便查询设置相应的行宽、列宽、行数。…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
