Universal Audio Tokenizer 是一款紧凑的单码本音频分词器,它将通用音频感知与语言对齐功能相统一,可用于下游 Audio-LLM 任务。
有关代码和更多详细信息,请参阅相应的 GitHub 仓库。
现有的语义语音分词器往往存在“声学盲区”问题,而声学分词器则通常缺乏“语言对齐”能力。
Universal Audio Tokenizer 通过以下方式弥合这一差距:
这使得这款紧凑的单码本音频分词器能够同时实现:
| 属性 | 值 |
|---|---|
| 帧率 | 25 Hz |
| 码本大小 | 8,192 |
| 每秒比特数(BPS) | 325 |
要使用 Universal Audio Tokenizer,请克隆官方仓库并安装依赖项。
# 1. Clone the repository with all submodules
git clone --recursive https://github.com/Tencent/Universal_Audio_Tokenizer.git
cd Universal_Audio_Tokenizer
# If you have already cloned the repository without --recursive,
# initialize submodules with:
git submodule update --init --recursive
# 2. Create a conda environment
conda create -n universal-audio-tokenizer python=3.10.13 -y
conda activate universal-audio-tokenizer
# 3. Install dependencies
conda install -c conda-forge libsndfile -y
pip install -r requirements.txt使用 huggingface-cli:
huggingface-cli download tencent/Universal_Audio_Tokenizer \
--local-dir checkpoints/Universal_Audio_Tokenizer或者使用 Python:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="tencent/Universal_Audio_Tokenizer",
local_dir="checkpoints/Universal_Audio_Tokenizer"
)我们在 example_usage.py 中提供了一个简单的推理演示。
python example_usage.py \
--device auto \
--model_path checkpoints/Universal_Audio_Tokenizer \
--audio_path /path/to/audio.wav该脚本将:
reconstruction/ 目录下。此外,您可以直接运行下面的推理代码片段:
import os
import torch
from transformers import WhisperFeatureExtractor
from src.model.modeling_whisper import WhisperVQEncoder
from src.model.flow_inference import AudioDecoder
from src.model.utils import extract_audio_token, speech_token_to_wav
# 1. Download & Load Models
model_dir = snapshot_download("tencent/Universal_Audio_Tokenizer")
# Load tokenizer and feature extractor
tokenizer_path = os.path.join(model_dir, "tokenizer")
tokenizer = WhisperVQEncoder.from_pretrained(tokenizer_path).eval().cuda()
feature_extractor = WhisperFeatureExtractor.from_pretrained(tokenizer_path)
# Load decoder
decoder_path = os.path.join(model_dir, "decoder")
decoder = AudioDecoder(
config_path=os.path.join(decoder_path, "config.yaml"),
flow_ckpt_path=os.path.join(decoder_path, "flow.pt"),
hift_ckpt_path=os.path.join(decoder_path, "hift.pt"),
device="cuda"
)
# 2. Tokenize
tokens = extract_audio_token(tokenizer, feature_extractor, ["/path/to/audio.wav"], device="cuda")[0]
# 3. Reconstruct
tts_speech, sampling_rate = speech_token_to_wav(decoder, tokens)Universal Audio Tokenizer 能够学习多样化音频事件的判别性表示,并在语音重建、下游音频理解及 TTS 合成任务中展现出优异性能。
我们采用高维 token 直方图向量进行聚类分析。结果(轮廓系数和聚类纯度)表明,我们的模型能有效编码通用音频,且在 latent 空间中实现更清晰的聚类分离。
| 模型 | ESC-10 轮廓系数 (↑) | ESC-10 纯度 (↑) | ESC-50 轮廓系数 (↑) | ESC-50 纯度 (↑) |
|---|---|---|---|---|
| WavTokenizer | -0.030 | 0.450 | -0.108 | 0.215 |
| GLM-4-Voice-Tokenizer | -0.182 | 0.373 | -0.304 | 0.133 |
| CosyVoice2 | -0.016 | 0.413 | -0.100 | 0.216 |
| StableToken | -0.035 | 0.468 | -0.096 | 0.174 |
| Ours | 0.091 | 0.730 | 0.023 | 0.390 |
Universal Audio Tokenizer 采用紧凑的单码本设计实现高质量语音重建,与现有监督语义 tokenizer 相比,显著降低了词错误率(WER)并提高了平均意见得分(MOS)。
| 模型 | 帧率 Rate | BPS | WER (↓) LS-clean | WER (↓) LS-other | WER (↓) SEED-en | WER (↓) SEED-zh | MOS (↑) LS-clean | MOS (↑) LS-other | MOS (↑) SEED-en | MOS (↑) SEED-zh |
|---|---|---|---|---|---|---|---|---|---|---|
| WavTokenizer | 75Hz | 900 | 5.07 | 13.09 | 5.60 | 4.02 | 3.37 | 3.09 | 3.01 | 3.13 |
| GLM-4-Voice-Tokenizer | 12.5Hz | 175 | 4.04 | 9.33 | 3.54 | 3.23 | 4.07 | 3.99 | 4.16 | 4.10 |
| CosyVoice2 | 25Hz | 325 | 4.25 | 9.68 | 4.34 | 2.75 | 3.36 | 3.25 | 3.31 | 3.58 |
| StableToken | 25Hz | 325 | 3.84 | 7.99 | 3.44 | 2.62 | 4.09 | 3.83 | 4.01 | 4.18 |
| Ours | 25Hz | 325 | 3.47 | 6.79 | 2.55 | 1.90 | 4.19 | 4.18 | 4.13 | 4.25 |
当与Qwen2.5 LLM主干集成时,我们的Universal Audio Tokenizer在各种下游音频理解基准测试和可控文本转语音(TTS)合成任务上均展现出卓越性能,证明了其作为音频大语言模型(Audio-LLMs)统一音频输入/输出接口的有效性。
音频理解基准测试的准确率:
| Tokenizer | MMAU (语音) | MMAU (声音) | MMAU (音乐) | MMAU (总体) | MMAR (语音) | MMAR (声音) | MMAR (音乐) | MMAR (总体) | MMSU (感知) | MMSU (推理) | MMSU (总体) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| WavTokenizer | 36.94 | 60.36 | 57.78 | 51.70 | 39.80 | 31.52 | 29.61 | 36.30 | 32.83 | 45.37 | 38.90 |
| CosyVoice2 | 39.94 | 61.56 | 62.57 | 54.70 | 41.50 | 35.76 | 30.58 | 38.10 | 27.44 | 45.83 | 36.34 |
| GLM-4-Voice-Tokenizer | 43.24 | 60.06 | 62.28 | 55.20 | 39.46 | 40.00 | 36.89 | 40.10 | 32.40 | 47.64 | 39.78 |
| StableToken | 45.05 | 58.56 | 55.99 | 53.20 | 42.18 | 39.39 | 31.07 | 39.10 | 31.98 | 49.71 | 40.56 |
| Ours | 45.05 | 70.27 | 67.96 | 61.10 (+5.90) | 45.24 | 43.64 | 40.29 | 45.80 (+5.70) | 35.54 | 52.07 | 43.54 (+2.98) |
在SEED-TTS上的结果,通过说话人相似度(SIM)、词错误率(WER)和平均意见得分(MOS)进行衡量。
| Tokenizer | SIM (↑) | WER (↓) | MOS (↑) |
|---|---|---|---|
| CosyVoice2 | .758 | .762 | .760 | 2.71 | 1.39 | 2.05 | 3.75 | 3.37 | 3.56 |
| Ours | .792 | .742 | .767 | 1.78 | 1.29 | 1.54 | 4.07 | 3.68 | 3.88 |
如果您发现我们的代码或模型对您的研究有帮助,请引用:
@misc{song2026uniaudiotokenempoweringsemanticspeech,
title={UniAudio-Token: Empowering Semantic Speech Tokenizers with General Audio Perception},
author={Yuhan Song and Linhao Zhang and Aiwei Liu and Chuhan Wu and Sijun Zhang and Wei Jia and Yuan Liu and Houfeng Wang and Xiao Zhou},
year={2026},
eprint={2605.31521},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2605.31521},
}本项目根据 Universal_Audio_Tokenizer 的许可条款 进行许可。