Tencent Hunyuan AuK 语音生成与编辑全攻略 · 干货攻略

  • 链接: https://x.com/_akhaliq/status/1932500627265006730
  • 分类: x-tips
  • 来源: X @_akhaliq
  • 作者: Jay
  • 更新: 2026-09-12
  • 仓库: Tencent-Hunyuan/AuK

这是什么

AuK(发音接近 "auk",一种海鸟)是腾讯混元(Tencent Hunyuan)于 2026 年 9 月 9 日 开源的多任务语音生成与编辑统一模型,arXiv 论文编号 2609.08936,MIT 许可证,代码与权重全部公开。

核心定位:一个模型、一套指令格式,覆盖 5 大类 20+ 任务,不再需要为每个子任务部署独立模型。


为什么值得关注

一个接口替代 16 个工具

传统语音系统把 TTS、变声、去混响、情感编辑、语速调节、语音分离……拆成独立管线。AuK 用纯自然语言指令 + 可选参考音频统一处理,GitHub README 明确列出了以下任务族:

类别 代表任务
语音生成 Zero-shot TTS(声音克隆)、Instruct TTS(纯文字音色描述生成)
内容编辑 语音内容改写、歌词编辑(保留旋律和音色)
声学编辑 音高调节、语速调节、音量调节
副语言编辑 情感变换、音色变换、去口音、耳语↔正常语音转换、非语言声音增删
增强与分离 语音增强、语音分离、音乐人声分离、目标说话人提取

架构上的硬核工程

官方技术报告(arXiv 2609.08936)披露了具体数字:

  • 训练数据量:约 30.3 亿条指令-音频对 + 195 万小时有效监督信号
  • 参数规模:1.5B(15 亿)
  • 模型架构:三层解压 conditioning: 1. MLLM Encoder(Qwen2.5-Omni-3B Thinker)负责语义理解,推理时 frozen 2. Joint VAE:在语音、通用音频、音乐上联合训练,50 Hz / 64 通道 latent 3. Hybrid Rectified-flow Transformer:Flux-style MMDiT(10 个双流块 + 20 个单流块,dim=1536,24 头),接着统一单流 DiT 块做生成
  • 训练策略:先生成-only 热启动 → 联合生成-编辑预训练 → 后训练阶段用人类反馈偏好优化(编辑方向)+ 基于强化学习的语音生成优化

AuK-Flash:4 步推理的工程压缩

全量 AuK 需要 32 步推理(Euler 采样器,CFG=2.0)。AuK 团队用 一致性蒸馏(Consistency Distillation)+ 任务路由解耦 DMD(Task-routed Decoupled DMD) 将步数压到 4 步,且 无需 CFG(Classifier-Free Guidance),在匹配条件下达到 4.5 倍 wall-clock 加速(arXiv 原文;第三方 orcarouter.ai 验证一致)。

评测结果(官方数据,arXiv + alphaXiv 交叉验证)

  • Zero-shot TTS(Seed-TTS-Eval):WER 2.65%,SIM 分数 0.795(官方声称"最低 WER / 最高相似度",alphaXiv 独立复述一致)
  • Instruct TTS:在 DSD(Dumping/Style/Description)评测中优于此前所有模型
  • 编辑任务(MMAE-Speech EMR、SpeechEditBench):各编辑类型平均领先
  • 增强/分离:DNSMOS-OVRL、UTMOS、DNS Challenge、Libri2Mix 上均有竞争力表现

生态支持:Day 0 SGLang-Omni 集成

开源当天 SGLang-Omni 即支持 AuK 和 AuK-Flash,提供服务端部署路径,降低生产集成门槛。


核验过程

说法 来源 核验结论
1.5B 参数,MIT 许可证 GitHub README Tencent-Hunyuan/AuK ✅ 确认
2026/09/09 开源 GitHub README ✅ 确认
arXiv 2609.08936 GitHub README → arXiv abs 页 ✅ 确认
3.03B 指令对,195 万小时监督 arXiv abstract ✅ 确认(原文:~3.03B instruction-audio instances and 1.95M hours of effective supervision)
Qwen2.5-Omni-3B 作为 MLLM encoder SGLang-Omni cookbook ✅ 官方 cookbok 原文:Frozen Qwen2.5-Omni-3B Thinker
MMDiT 10 双流 + 20 单流块,dim=1536 SGLang-Omni cookbook ✅ 同上
VAE 50 Hz,64 通道 latent SGLang-Omni cookbook ✅ 同上
AuK 32 步推理,AuK-Flash 4 步,4.5x 加速 arXiv abstract + SGLang-Omni cookbook ✅ 两处一致;alphaXiv 独立引用亦一致
AuK-Flash 无需 CFG SGLang-Omni cookbook:factory nfe/cfg_strength/sway 被忽略 ✅ 确认
Zero-shot TTS WER 2.65%,SIM 0.795 alphaXiv(技术报告解读) ⚠️ 原帖主张,arXiv 摘要仅列出图表,未直接附表字数值;alphaXiv 引用准确但非原始论文章节,建议以官方论文图表为准
HuggingFace / ModelScope 均已上线 GitHub README 列明链接 ✅ 确认
SGLang-Omni Day 0 支持 GitHub README ✅ 确认

说明:WER/SIM 数字来自 alphaXiv 对论文的解读,arXiv 原文仅以图表呈现,第三方解读准确性高但未直接在官方摘要中出现,已在文中注明。


上手步骤

1. 安装依赖

推荐使用 uv(官方首选):

git clone https://github.com/Tencent-Hunyuan/AuK.git
cd AuK
uv sync

或使用 Conda:

git clone https://github.com/Tencent-Hunyuan/AuK.git
cd AuK
conda env create -f environment.yaml
conda activate auk

2. 下载权重

# 基础模型(约 6.1 GB)
huggingface-cli download tencent/AuK --local-dir ckpts/AuK

# 蒸馏快速版(约 6.1 GB)
huggingface-cli download tencent/AuK-Flash --local-dir ckpts/AuK-Flash

# MLLM Encoder(必须,推理时 frozen)
huggingface-cli download Qwen/Qwen2.5-Omni-3B --local-dir ckpts/Qwen2.5-Omni-3B

目录结构应为:

ckpts/
├── AuK/          # 包含 auk_base.safetensors + config.yaml
├── AuK-Flash/    # 包含 auk_flash.safetensors + config.yaml
└── Qwen2.5-Omni-3B/

⚠️ 提示:text_encoder. 开头的 key 加载时 missing 是预期行为——checkpoint 只含 DiT 和 Layer-Fusion 权重,MLLM Encoder 和 VAE 从独立路径加载。

3. CLI 推理(原生方式)

Zero-shot TTS(声音克隆):

auk-infer \
  --audio assets/demo-input-audio/zero-shot-tts/ref.wav \
  --instruction "Say the following with the same voice: 'Ladies and gentlemen, it is an honor to have the opportunity to address such a distinguished audience.'" \
  --output out_zeroshot_tts.wav \
  --gen_seconds 6.0

Instruct TTS(纯文字音色描述,无参考音频):

auk-infer \
  --instruction 'Based on the following description: "A warm, relaxed female voice." The content to speak is: "Welcome home, how was work today?."' \
  --output out_instruct_tts.wav \
  --gen_seconds 3.0

Speech Enhancement(语音增强):(无需指定 gen_seconds,输出时长自动匹配源音频)

auk-infer \
  --audio path/to/noisy_speech.wav \
  --instruction "Enhance the speech: denoise, dereverberate, and make it sound natural and clear." \
  --output out_enhanced.wav

4. Python API

from auk.infer.infer_auk import AukInfer, save_audio

# 基础模型
checkpoint = "ckpts/AuK/auk_base.safetensors"
config = "ckpts/AuK/config.yaml"

# 换成 AuK-Flash:
# checkpoint = "ckpts/AuK-Flash/auk_flash.safetensors"
# config = "ckpts/AuK-Flash/config.yaml"

engine = AukInfer(config, checkpoint)

def run_auk(instruction, output_path, audio_path=None, gen_seconds=None):
    content = [{"type": "text", "text": instruction}]
    if audio_path is not None:
        content.append({"type": "audio", "audio": audio_path})

    messages = [{"role": "user", "content": content}]
    audio, sr = engine.generate(messages, gen_seconds=gen_seconds)
    save_audio(audio, sr, output_path)

# 声音克隆
run_auk(
    "Say the following with the same voice: 'Hello, this is a test.'",
    "clone.wav",
    audio_path="ref.wav",
    gen_seconds=3.0,
)

# Instruct TTS(无需参考音频)
run_auk(
    "Generate speech based on the following description: 'A cheerful young male voice.' The content to speak is: 'Hello world!'",
    "instruct.wav",
    gen_seconds=2.0,
)

5. SGLang-Omni 服务端部署

# 启动 AuK 服务
python -m sglang_omni.cli serve --model-path tencent/AuK --port 8000

# 或启动 AuK-Flash(4 步高速)
python -m sglang_omni.cli serve --model-path tencent/AuK-Flash --port 8000

调用示例(cURL):

curl http://localhost:8000/v1/audio/speech \
  -H 'Content-Type: application/json' \
  -d '{
    "input": "Welcome home.",
    "instructions": "warm, relaxed female voice",
    "stage_params": {"auk_engine": {"gen_seconds": 3}},
    "seed": 1234,
    "response_format": "wav"
  }' --output speech.wav

坑与适用边界

⚠️ 坑 1:Checkpoint 不含 Encoder 和 VAE

AuK/AuK-Flash checkpoint 仅含 DiT 和 Layer-Fusion 权重,MLLM Encoder(Qwen2.5-Omni-3B)和 VAE 必须从独立路径加载。缺少 text_encoder. keys 是正常行为,不是报错。

⚠️ 坑 2:gen_seconds 必须正确设置

Instruct TTS、内容编辑、语速编辑等任务需要显式指定输出时长;增强/分离类任务可省略(自动匹配源音频时长)。用错了会导致生成失败或时长不符预期。

⚠️ 坑 3:ComfyUI 有额外的 30 秒预算限制

使用 ComfyUI 集成时,参考音频 + 目标音频的总时长超过 30 秒会触发预算检查,建议长音频用例拆段处理。

⚠️ 坑 4:硬件门槛不低

1.5B 模型 + DiT + VAE + Qwen2.5-Omni-3B Encoder,推理显存需求较高。腾讯官方 OrcaRouter 博客明确标注硬件是真实约束。边缘设备建议直接用 AuK-Flash。

适用边界

场景 推荐
高质量语音生成、声音克隆 AuK(32 步,质量优先)
低延迟、实时应用、流式场景 AuK-Flash(4 步,4.5x 加速)
语音增强、去混响 AuK(无 CFG 需求,效果稳定)
边缘 / 移动部署 当前不推荐(模型体积大),关注后续量化版本
精确中文语音编辑 支持,但 prompt enhancer(中文指令模板)需参考 Cookbook

一句话结论

腾讯 AuK 是目前开源生态中最完整的语音统一模型,1.5B 参数 + MIT 许可证 + SGLang-Omni Day 0 支持,AuK-Flash 以 4 步推理实现 4.5 倍加速,适合需要 TTS / 声音克隆 / 语音编辑能力且不愿维护多条链路的团队直接接入生产。


核验来源:GitHub Tencent-Hunyuan/AuK README + arXiv 2609.08936 摘要 + SGLang-Omni cookbook;WER/SIM 数字采自 alphaXiv 对论文图表的引用,存在以官方论文图表数据为准的保留空间。