---
title: audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch
canonical_url: "https://www.modelscope.cn/models/iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch"
md_url: "https://www.modelscope.cn/models/iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch.md"
repository: iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch
chinese_name: "音频量化编码-freqcodec_magphase-英文-libritts-16k-gr1nq32ds320-pytorch"
last_updated: 2023-09-20
license: "Apache License 2.0"
pipeline_tag: audio-codec
tasks:
  - audio-codec
model_type:
  - encodec
library_name:
  - pytorch
frameworks:
  - pytorch
language:
  - en_US
domain:
  - audio
downloads: 97
stars: 0
tags:
  - FunCodec
  - "Speech Quantization"
  - Alibaba
---

# audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch

> audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch - iic 在 ModelScope 开源的模型。Highlights 适用于英文的语音量化编码（Speech Codec）模型。 采用幅度相位谱作为信号的表示形式，更好的利用音频的时频域结构 极少的模型参数（0.52M），极低的计算量（0.34G flops） 训练时采用结构化 dropout，推理时可根据需要选用不同比特率

iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch 是 ModelScope 魔搭社区上的audio-codec模型，采用 Apache License 2.0 许可。

- **Repository**: iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch
- **License**: Apache License 2.0
- **Tasks**: audio-codec
- **Tags**: FunCodec, Speech Quantization, Alibaba
- **Downloads**: 97
- **Stars**: 0
- **Last updated**: 2023-09-20

Source: https://www.modelscope.cn/models/iic/audio_codec-freqcodec_magphase-en-libritts-16k-gr1nq32ds320-pytorch

---

# Highlights
适用于英文的语音量化编码（Speech Codec）模型。
- 采用幅度相位谱作为信号的表示形式，更好的利用音频的时频域结构
- 极少的模型参数（0.52M），极低的计算量（0.34G flops）
- 训练时采用结构化 dropout，推理时可根据需要选用不同比特率


# 项目介绍
[FunCodec](https://github.com/alibaba-damo-academy/FunCodec) 是达摩院语音团队开源的音频量化工具包。
本项目提供了在 LibriTTS 英文数据集上预训练的语音量化模型，可以被应用于低比特率语音通讯、语音离散化表示、zero-shot语音合成等相关的学术研究。
在同等比特率的情况下，该模型获得了优于现有Encodec和SoundStream的量化语音质量，ViSQOL 得分更高。

<p align="center">
<img src="fig/framework.png" alt="FunCodec模型结构"/>
</p>

FunCodec的模型包括域转换模块（Domain Transformation）、编码器（Encoder），
残差量化器（Residual Vector Quantization，RVQ）、解码器（Decoder）和域反转模块（Domain Inversion）。
具体而言：
- 域转换模块：根据需要将音频信号转化为所需的表示形式，包括时域、短时频域、幅度相位域、幅度角度域等
- 编码器：将不同表示形式的信号进行编码，得到较为紧凑的隐层表示
- 残差量化器：对紧凑的隐层表示进行逐层量化，得到多组等长的离散编码，用以表示音频信号
- 解码器：将多组离散编码解码成不同表示形式的音频信号
- 域反转模块：将不同的表示恢复成人耳能够感知的音频信号

更多细节详见：
- 论文：[FunCodec: A Fundamental, Reproducible and Integrable Open-source Toolkit for Neural Speech Codec](https://arxiv.org/abs/2309.07405)

# 如何使用模型

## 在本地机器中推理

如果您有本地推理或定制模型的需求，请前往下载 [FunCodec](https://github.com/alibaba-damo-academy/FunCodec) 音频量化工具包。

### FunCodec 框架安装

- 安装 FunCodec

```sh
# 安装 Pytorch GPU (version >= 1.12.0):
conda install pytorch==1.12.0
# 对于其他版本，请参考 https://pytorch.org/get-started/locally

# 下载项目代码:
git clone https://github.com/alibaba-damo-academy/FunCodec.git

# 安装 FunCodec:
cd FunCodec
pip install --editable ./
```

### 使用 FunCodec 提取音频量化编码
接下以 LibriTTS 数据集为例，介绍如何使用 FunCodec 提取量化编码：
```sh
# 进入工作目录
cd egs/LibriTTS/codec
model_name="audio_codec-encodec-en-libritts-16k-nq32ds640-pytorch"
# 下载模型
bash encoding_decoding.sh --stage 0 --model_name ${model_name}
# 提取量化编码，输入为 input_wav.scp，结果保存在 outputs/codecs 下
bash encoding_decoding.sh --stage 1 --batch_size 16 --num_workers 4 --gpu_devices "0,1" \
  --model_dir exp/${model_name} --bit_width 8000 --file_sampling_rate 16000 \
  --wav_scp input_wav.scp --out_dir outputs/codecs
# input_wav.scp 的格式如下：
# uttid1 path/to/file1.wav
# uttid2 path/to/file2.wav
# ...
```

### 使用 FunCodec 从量化编码恢复音频
```shell
# 恢复出的音频保存在 outputs/recon_wavs 下
bash encoding_decoding.sh --stage 2 --batch_size 16 --num_workers 4 --gpu_devices "0,1" \
  --model_dir exp/${model_name} --bit_width 8000 --file_sampling_rate 16000 \
  --wav_scp codecs.txt --out_dir outputs/recon_wavs 
# codecs.txt 为上一步骤中提取出的量化编码，格式类似：
# uttid1 [[[1, 2, 3, ...],[2, 3, 4, ...], ...]]
# uttid2 [[[9, 7, 5, ...],[3, 1, 2, ...], ...]]
```

# Benchmark

## 训练配置
- Feature info: raw waveform input
- Train info: Adam, lr 3e-4, batch_size 32, 2 gpu(Tesla V100), acc_grad 1, 300000 steps, speech_max_length 51200
- Loss info: L1, L2, discriminative loss
- Model info: SEANet, Conv, LSTM
- Train config: config.yaml
- Model size: 0.52 M parameters

## 实验结果 (ViSQOL)
- Test set: LibriTTS-test, ViSQOL scores

| testset  | 50 tk/s  | 100 tk/s | 200 tk/s | 400 tk/s |
|:--------:|:--------:|:--------:|:--------:|:--------:|
| LibriTTS |  3.27    |  3.65    |   3.98   |   4.21   |

## 使用方式以及适用范围

运行范围
- 现阶段只能在 Linux-x86_64 运行，暂未适配 Mac 和 Windows 。

使用方式
- 直接推理：可以提取音频信号的离散化表示
- 微调：请使用 FunCodec 中的 run.sh 进行相关实验

使用范围与目标场景
- 适用于相关学术研究，在英文数据集上进行语音量化、离散化编码等任务。

## 模型局限性以及可能的偏差

- 特征提取流程和工具差异，会对 ViSQOL 的数值带来一定的差异（ < 0.1 ）

## 相关论文以及引用信息
```BibTeX
@misc{du2023funcodec,
      title={FunCodec: A Fundamental, Reproducible and Integrable Open-source Toolkit for Neural Speech Codec},
      author={Zhihao Du, Shiliang Zhang, Kai Hu, Siqi Zheng},
      year={2023},
      eprint={2309.07405},
      archivePrefix={arXiv},
      primaryClass={cs.Sound}
}
```
