跳转至

Qwen3-TTS 深度指南

创建日期: 2026年5月1日 | 状态: 生产就绪 GitHub: https://github.com/QwenLM/Qwen3-TTS | Stars: 11,080+ HuggingFace: https://huggingface.co/collections/Qwen/qwen3-tts Paper: https://arxiv.org/abs/2601.15621


1. 概述

Qwen3-TTS 是阿里云通义千问团队开发的开源语音合成模型系列,提供声音克隆、声音设计、超高质量拟人语音生成和自然语言语音控制等功能。它是目前开源领域功能最全面的 TTS 方案之一。

1.1 核心特性

特性 说明
模型规模 0.6B 和 1.7B 两个版本
支持语言 10种主要语言(中/英/日/韩/德/法/俄/葡/西/意)+ 多种方言
声音克隆 零样本克隆,仅需 3 秒参考音频
声音设计 自然语言描述即可创建新音色
流式生成 支持实时流式输出,低延迟
上下文理解 基于文本语义自适应调节语调、语速和情感
Tokenizer Qwen3-TTS-Tokenizer-12Hz(12Hz 超低帧率)

1.2 与现有 TTS 方案对比

方案 开源 中文质量 声音克隆 流式 部署难度
Qwen3-TTS ⭐⭐⭐⭐⭐ 中等(需要 GPU)
edge-tts ⭐⭐⭐ 极低(无需 GPU)
MiniMax TTS ⭐⭐⭐⭐ 低(API 调用)
GPT-SoVITS v3 ⭐⭐⭐⭐⭐ 高(需训练)
Index-TTS ⭐⭐⭐⭐ 中等

2. 快速上手

2.1 环境安装

# 克隆仓库
git clone https://github.com/QwenLM/Qwen3-TTS.git
cd Qwen3-TTS

# 安装依赖
pip install -e .

# 模型会自动从 HuggingFace 下载
# 也可以手动下载:
# huggingface-cli download Qwen/Qwen3-TTS-1.7B --local-dir ./models/Qwen3-TTS-1.7B

2.2 基础语音生成

from qwen_tts import QwenTTS

# 初始化模型(自动下载 1.7B 版本)
tts = QwenTTS(model_name="Qwen3-TTS-1.7B")
ython
from qwen_tts import QwenTTS

# 初始化模型(自动下载 1.7B 版本)
tts = QwenTTS(model_name="Qwen3-TTS-1.7B")# 生成中文语音
tts.synthesize(
    text="你好,我是通义千问语音助手。",
    output_path="output.wav",
    voice="zh-CN-default"  # 默认中文音色
)

2.3 声音克隆(零样本)

from qwen_tts import QwenTTS

tts = QwenTTS(model_name="Qwen3-TTS-1.7B")

# 仅需 3 秒参考音频即可克隆声音
tts.clone_voice(
    text="这是一段用克隆声音生成的语音。",
    reference_audio="reference_voice.wav",  # 3秒以上的参考音频
    output_path="cloned_output.wav"
)

2.4 声音设计(自然语言描述)

# 通过自然语言描述创建新音色
tts.design_voice(
    text="你好世界",
    voice_description="温柔的女性声音,语速偏慢,带有轻微的南方口音",
    output_path="designed_voice.wav"
)

2.5 流式生成(实时输出)

# 流式生成,适合实时应用
for audio_chunk in tts.synthesize_streaming(
    text="这是一段很长的文本,需要实时输出语音。",
    voice="zh-CN-default"
):
    # 每个 chunk 是一个音频片段
    play_audio(audio_chunk)  # 实时播放

3. vLLM 推理加速

对于生产环境,推荐使用 vLLM 进行推理加速:

# 安装 vLLM
pip install vllm

# 使用 vLLM 部署
python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen3-TTS-1.7B \
    --port 8000

4. 微调指南

Qwen3-TTS 支持微调以适配特定场景:

cd finetuning

# 准备数据
# 格式:每行包含 text 和 reference_audio 路径

# 启动微调
python finetune.py \
    --model_name Qwen3-TTS-1.7B \
    --data_path ./data/train.json \
    --output_dir ./output \
    --num_epochs 3 \
    --batch_size 4 \
    --learning_rate 1e-5

4.1 微调注意事项

  • 数据量: 至少 1 小时的干净录音
  • 音频质量: 44.1kHz / 16bit,无背景噪音
  • 学习率: 建议 1e-5 ~ 5e-5,过高会导致灾难性遗忘
  • Epoch: 2-3 个 epoch 通常足够

频质量: 44.1kHz / 16bit,无背景噪音 - 学习率: 建议 1e-5 ~ 5e-5,过高会导致灾难性遗忘 - Epoch**: 2-3 个 epoch 通常足够

---## 5. ComfyUI 集成

社区已有多个 ComfyUI 节点实现:

项目 Stars 说明
Comfyui-HAIGC-QwenTTS 3 声音合成与克隆集成
ComfyUI-Qwen3-TTS 1 高级声音克隆节点
ComfyUI-Qwen-TTS 1 自定义节点,声音设计

6. API 使用(DashScope)

如果你不想本地部署,可以使用阿里云 DashScope API:

pip install dashscope
import dashscope

dashscope.api_key = "your-api-key"

response = dashscope.audio.tts.SpeechSynthesizer.call(
    model="qwen3-tts-1.7b",
    text="你好世界",
    voice="your-voice-id",
    format="wav"
)

with open("output.wav", "wb") as f:
    f.write(response.get_audio_data())

7. 实战应用场景

7.1 有声书批量生成

import asyncio
from qwen_tts import QwenTTS

async def generate_audiobook(chapters, voice_ref="narrator.wav"):
    tts = QwenTTS(model_name="Qwen3-TTS-1.7B")

    for i, chapter in enumerate(chapters):
        output = f"chapter_{i+1:03d}.wav"
        tts.clone_voice(
            text=chapter,
            reference_audio=voice_ref,
            output_path=output
        )
        print(f"已生成: {output}")

# 使用
chapters = ["第一章...", "第二章...", "第三章..."]
asyncio.run(generate_audiobook(chapters))

7.2 多角色对话生成

characters = {
    "旁白": {"desc": "中年男声,沉稳", "voice": None},
    "小红": {"desc": "少女声,活泼", "voice": None},
    "老王": {"desc": "老年男声,沙哑", "voice": None},
}

tts = QwenTTS(model_name="Qwen3-TTS-1.7B")
: None},
    "老王": {"desc": "老年男声,沙哑", "voice": None},
}

tts = QwenTTS(model_name="Qwen3-TTS-1.7B")# 先设计各角色音色
for name, char in characters.items():
    voice_path = f"voice_{name}.wav"
    tts.design_voice(
        text="测试语音",
        voice_description=char["desc"],
        output_path=voice_path
    )
    char["voice"] = voice_path

# 然后生成对话
dialogue = [
    ("旁白", "老王走进了一家小店。"),
    ("老王", "老板,来碗面。"),
    ("小红", "好嘞,马上来!"),
]

for speaker, line in dialogue:
    tts.clone_voice(
        text=line,
        reference_audio=characters[speaker]["voice"],
        output_path=f"dialogue_{speaker}_{hash(line)%1000}.wav"
    )

8. 避坑指南

8.1 已知问题

  1. GPU 内存: 1.7B 模型约需 4-6GB VRAM,0.6B 版本适合低配设备
  2. 中文方言: 方言支持有限,标准普通话效果最佳
  3. 长文本: 超过 5000 字建议分段落处理,避免内存溢出
  4. 克隆质量: 参考音频质量直接影响克隆效果,建议使用专业录音

8.2 性能优化

  • 量化: 使用 INT8 量化可将显存需求降低约 50%
  • 批处理: 批量生成时启用 batch mode 可提升吞吐量 3-5 倍
  • 流式: 实时应用务必使用流式模式,延迟可降低到 200ms 以内

9. 与现有管线的整合建议

9.1 替换 edge-tts 的场景

当你需要以下功能时,建议从 edge-tts 切换到 Qwen3-TTS: - 声音克隆(edge-tts 不支持) - 自定义音色设计 - 更高的中文自然度 - 离线部署(不依赖微软服务)

9.2 保留 edge-tts 的场景

  • 零 GPU 环境
  • 超长文本(10万+字)
  • 快速原型验证

9.3 混合管线推荐

短文本/克隆角色 → Qwen3-TTS (GPU)
长文本/旁白 → edge-tts (零成本)
实时/低延迟 → Qwen3-TTS 流式模式

10. 参考资源

  • GitHub: https://github.com/QwenLM/Qwen3-TTS
  • HuggingFace Collection: https://huggingface.co/collections/Qwen/qwen3-tts
  • 官方博客: https://qwen.ai/blog?id=qwen3tts-0115
  • 论文: https://arxiv.org/abs/2601.15621
  • API 文档: https://help.aliyun.com/zh/model-studio/qwen-tts-realtime