TaDiCodec:文本感知的扩散语音分词器用于语音语言建模

发表
Yuancheng WangYuancheng Wang 提交
作者: Yuancheng WangYuancheng Wang, Dekun Chen, Xueyao Zhang, Junan Zhang, Jiaqi Li, Zhizheng Wu

摘要

语音分词器是语音语言模型的基础组成部分,但目前的设计存在几个局限性,包括:1)依赖多层残差向量量化结构或高帧率;2)依赖辅助预训练模型进行语义蒸馏;3)需要复杂的两阶段训练过程。在这项工作中,我们介绍了文本感知扩散变换器语音编解码器(TaDiCodec),这是一种旨在克服这些挑战的新颖方法。TaDiCodec 通过扩散自编码器实现量化和重建的端到端优化,同时将文本引导集成到扩散解码器中,以提高重建质量并实现最佳压缩。TaDiCodec 在 24 kHz 语音上实现了极低的 6.25 Hz 帧率和相应的 0.0875 kbps 比特率,同时在关键语音生成评估指标(如词错误率(WER)、说话人相似度(SIM)和语音质量(UTMOS))上保持卓越性能。值得注意的是,TaDiCodec 采用单阶段、端到端的训练范式,无需辅助预训练模型。我们还验证了 TaDiCodec 在基于语言模型的零样本文本到语音方面的兼容性,支持自回归建模和掩码生成建模,证明了其在语音语言模型方面的有效性和效率,以及非常小的重建-生成差距。我们将开源我们的代码和模型检查点。音频样本可在 https:/tadicodec.github.io/ 获取。我们在 https:/github.com/HeCheng0625/Diffusion-Speech-Tokenizer 发布代码和模型检查点。
查看 arXiv 页面查看 PDF

评论

Yuancheng WangYuancheng Wang
论文作者
论文提交者
🚀 TaDiCodec

我们介绍了 Text-aware Diffusion Transformer Speech Codec (TaDiCodec),这是一种新颖的语音令牌化方法,通过扩散自编码器实现量化和重构的端到端优化,同时将文本引导集成到扩散解码器中,以提高重构质量并实现最佳压缩。TaDiCodec 在24 kHz 语音下达到了6.25 Hz 的极低帧率和相应的0.0875 kbps 比特率,同时在关键语音生成评估指标上保持了卓越的性能,如词错误率 (WER)、说话人相似度 (SIM) 和语音质量 (UTMOS)。

🤗 预训练模型
🔧 模型快速使用

```python

🤗 从 Hugging Face 加载

from models.tts.tadicodec.inference_tadicodec import TaDiCodecPipline

from models.tts.llmtts.inferencellm_tts import TTSInferencePipeline

from models.tts.llmtts.inferencemgm_tts import MGMInferencePipeline

加载 TaDiCodec 分词器,首次运行时会自动从 Hugging Face 下载模型

tokenizer = TaDiCodecPipline.from_pretrained("amphion/TaDiCodec")

加载 AR TTS 模型,首次运行时会自动从 Hugging Face 下载模型

ttsmodel = TTSInferencePipeline.frompretrained("amphion/TaDiCodec-TTS-AR-Qwen2.5-3B")

加载 MGM TTS 模型,首次运行时会自动从 Hugging Face 下载模型

ttsmodel = MGMInferencePipeline.frompretrained("amphion/TaDiCodec-TTS-MGM")

```

🚀 快速开始
安装

```bash

克隆仓库

git clone https://github.com/HeCheng0625/Diffusion-Speech-Tokenizer.git

cd Diffusion-Speech-Tokenizer

安装依赖

bash env.sh

```

基本用法

请参阅 use_examples 文件夹以获取更详细的使用示例。

语音分词和重构

```python

示例:使用 TaDiCodec 进行语音分词

import torch

import soundfile as sf

from models.tts.tadicodec.inference_tadicodec import TaDiCodecPipline

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

pipe = TaDiCodecPipline.frompretrained(ckptdir="./ckpt/TaDiCodec", device=device)

提示音频的文本

prompt_text = "In short, we embarked on a mission to make America great again, for all Americans."

目标音频的文本

target_text = "But to those who knew her well, it was a symbol of her unwavering determination and spirit."

提示音频的输入音频路径

promptspeechpath = "./useexamples/testaudio/trump_0.wav"

目标音频的输入音频路径

speechpath = "./useexamples/testaudio/trump1.wav"

rec_audio = pipe(

text=target_text,

speech_path=speech_path,

prompt_text=prompt_text,

prompt_speech_path=prompt_speech_path

)

sf.write("./useexamples/testaudio/trumprec.wav", recaudio, 24000)

```

使用 TaDiCodec 进行零样本 TTS

```python

import torch

import soundfile as sf

from models.tts.llmtts.inferencellm_tts import TTSInferencePipeline

from models.tts.llmtts.inferencemgm_tts import MGMInferencePipeline

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

创建 AR TTS 管道

pipeline = TTSInferencePipeline.from_pretrained(

tadicodec_path="./ckpt/TaDiCodec",

llm_path="./ckpt/TaDiCodec-TTS-AR-Qwen2.5-3B",

device=device,

)

单样本推理,您也可以使用 MGM TTS 管道

audio = pipeline(

text="但是 to those who 知道 her well, it was a 标志 of her unwavering 决心 and spirit.",   # 支持代码切换

prompt_text="In short, we embarked on a mission to make America great again, for all Americans.",

prompt_speech_path="./use_examples/test_audio/trump_0.wav",

)

sf.write("./useexamples/testaudio/lmttsoutput.wav", audio, 24000)

```

📚 引用

如果您觉得这个仓库有用,请引用我们的论文:

TaDiCodec:

```bibtex

@article{tadicodec2025,

title={TaDiCodec: Text-aware Diffusion Speech Tokenizer for Speech Language Modeling},

author={Yuancheng Wang, Dekun Chen, Xueyao Zhang, Junan Zhang, Jiaqi Li, Zhizheng Wu},

journal={arXiv preprint},

year={2025},

url={https://arxiv.org/abs/2508.16790}

}

```

Amphion:

```bibtex

@inproceedings{amphion,

author={Xueyao Zhang and Liumeng Xue and Yicheng Gu and Yuancheng Wang and Jiaqi Li and Haorui He and Chaoren Wang and Ting Song and Xi Chen and Zihao Fang and Haopeng Chen and Junan Zhang and Tze Ying Tang and Lexiao Zou and Mingxuan Wang and Jun Han and Kai Chen and Haizhou Li and Zhizheng Wu},

title={Amphion: An Open-Source Audio, Music and Speech Generation Toolkit},

booktitle={{IEEE} Spoken Language Technology Workshop, {SLT} 2024},

year={2024}

}

```

MaskGCT:

```bibtex

@inproceedings{wang2024maskgct,

author={Wang, Yuancheng and Zhan, Haoyue and Liu, Liwei and Zeng, Ruihong and Guo, Haotian and Zheng, Jiachen and Zhang, Qiang and Zhang, Xueyao and Zhang, Shunsi and Wu, Zhizheng},

title={MaskGCT: Zero-Shot Text-to-Speech with Masked Generative Codec Transformer},

booktitle = {{ICLR}},

publisher = {OpenReview.net},

year = {2025}

}

```

🙏 致谢