当前位置: 首页 > news >正文

论文阅读_音频压缩_Encodec

论文信息

name_en: High Fidelity Neural Audio Compression
name_ch: 高保真神经音频压缩
paper_addr: http://arxiv.org/abs/2210.13438
date_read: 2023-04-27
date_publish: 2022-10-24
tags: [‘深度学习’,‘音频’]
author: Alexandre Défossez, Meta AI, FAIR Team
code: github.com/facebookresearch/encodec

1 读后感

方法与SoundStream相似,模型主要使用了卷积,LSTM,还加入Transformer优化量化单元,以减少带宽。

2 摘要

Encodec也是一个音频编码器 audio codec,包括编码器-解码器架构、量化方法和感知损失等要素。EnCodec在多个音频压缩比和采样率条件下,在语音和音乐的压缩中均达到了最先进的质量水平。
文章还讨论了神经网络压缩模型的两个问题:如何表示噪音和如何高效地压缩,作者通过构建大而多元化的训练集和引入辨别器网络,解决了第一个问题,而通过引入熵编码和实时模式流的控制来解决第二个问题。
检验了EnCodec的运算速度、实时和压缩效果,得到了较好的实验效果。

3 方法

模型由编码器,量化器,解码器三部分组成。

3.1 编解码器结构

如图所示,主要使用卷积结构。另外,同时提供针对流式数据和非流式数据的处理方法。

3.2 残差向量量化

同StreamSound类似,通过在训练时选择不同数量的残差步骤,可以使用单个模型支持多个带宽目标

3.3 语言建模和熵编码

另外训练了一个小型基于Transformer的语言模型,旨在通过单个CPU核心保持快于实时的端到端压缩/解压缩速度。
该模型包括5层、8个头、200个通道、每个前馈块的维度为800,没有dropout。
在训练时,选择一个带宽和相应的codebook数量Nq。对于时间步t,从时间t-1得到的离散表示使用学习的嵌入表之一变换成连续表示,然后相加。
Transformer的输出被馈送到Nq个线性层,并且每个线性层输出通道的数量与每个codebook的基数(例如1024)相同,这样可以给在时间t上估计占用每个codebook的分布的对数。
因此,在单个时间步骤上忽略了潜在的码书之间的互信息。这样就可以加速推理,并且对最终交叉熵的影响有限

3.4 训练目标

目标函数结合了重建损失,判别损失,以及量化损失。

其中x是原始音频,x^是生成音频;

  • 重建损失包含时域损失lt和频域损失lf
    • lt:评价了音频帧的差异
    • lf:评价了多个时间尺度在梅尔频谱的差异
  • 对抗损失

* lg:对抗中的判断器,评价了判别器的损失,引入了基于多尺度短时傅里叶变换(MS-STFT) 鉴别器的感知损失项
* lfeat:对抗中的生成器,评价了音频之间特征的差异,为生成器添加了相对特征匹配损失,

lw:VQ承诺损失,用于计算 zc 当前残差和 qc(zc) 相应码本中最近的条目的差异。
lr:另外,还训练一个小型 Transformer 语言模型(可选),用于使用在量化单元上进行熵编码,以进一步减少带宽。

3.5 损失函数的参数

引入了一个损失平衡器,平衡器可以更容易地推断出不同的损失权重,每个权重都可以解释为来自相应损失的模型梯度的分数。

http://www.lryc.cn/news/69503.html

相关文章:

  • 第06章_多表查询
  • 自学黑客(网络安全)有哪些技巧——初学者篇
  • CMD与DOS脚本编程【第四章】
  • Liunx安装Docker
  • docker:容器的数据卷
  • 【TCP】对TCP三次握手的个人理解
  • squid的基本代理
  • 【从零开始写视觉SLAM】v0.1基于特征点的简单VO
  • CentOS-7 安装 MariaDB-10.8
  • Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
  • 五、c++学习(加餐1:汇编基础学习)
  • iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
  • Typescript 5.0 发布:快速概览
  • 【图像处理 】卡尔曼滤波器原理
  • YOLOv5 实例分割入门
  • 数字城市发展下的技术趋势,你知道多少?
  • linux 串口改为固定
  • 【SCI一区】考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型(Matlab代码实现)
  • Redis缓存数据库(四)
  • View中的滑动冲突
  • java boot项目基础配置之banner与日志配置演示 并教会你如何使用文档查看配置
  • 蓝鲸平台通过标准运维 API 安装 Agent
  • python 图片保存成视频
  • uniapp 引入 Less SCSS
  • Linux程序设计:文件操作
  • 【自制C++深度学习推理框架】Tensor模板类的设计思路
  • linux--systemd、systemctl
  • 加密解密软件VMProtect教程(七):主窗口之控制面板“详情”部分
  • 国产仪器 4945B/4945C 无线电通信综合测试仪
  • 数据库原理及应用上机实验一