Qwen3-TTS

GitHub
10.5k 1.4k 中等 1 次阅读 今天Apache-2.0音频
AI 解读 由 AI 自动生成,仅供参考

Qwen3-TTS 是阿里云通义团队推出的一款开源语音合成模型系列,旨在为用户提供稳定、富有表现力且支持实时流式输出的语音生成能力。它有效解决了传统语音合成在情感表达单一、克隆效果生硬以及高延迟等方面的痛点,能够基于自然语言指令灵活控制语调、语速和情绪,即使在输入文本包含噪声时也能保持极高的鲁棒性。

这款工具非常适合开发者集成到应用中,研究人员探索端到端语音建模,以及设计师进行自由的音色创作与生动的声音克隆。普通用户也可通过其演示界面体验高质量的拟人化语音互动。

Qwen3-TTS 的技术亮点显著:它采用了自研的 Qwen3-TTS-Tokenizer-12Hz 分词器,实现了高效的声学压缩与高维语义建模,完整保留了副语言信息和环境特征;架构上摒弃了传统级联方案的瓶颈,利用离散多码本语言模型实现全信息端到端生成;更创新地引入双轨混合流式架构,单模型即可同时支持超低延迟的流式与非流式输出。目前,该模型已支持中、英、日、韩等十大主流语言及多种方言,是全球应用需求下的强大语音解决方案。

使用场景

一家跨国在线教育平台正急需为其中文、英文及西班牙语课程快速生成带有情感色彩的真人配音,以替代原本单调的机器朗读。

没有 Qwen3-TTS 时

  • 多语言适配成本高:需要分别采购不同语言的 TTS 服务并维护多套接口,难以统一管理中、英、西等十种语言的发音风格。
  • 情感表达生硬:传统模型无法根据课文语境自动调整语气,讲述故事时缺乏起伏,导致学生注意力难以集中。
  • 克隆流程繁琐:若想复用金牌讲师的声音,需录制数小时高清音频进行长时间训练,且难以在嘈杂背景下提取纯净音色。
  • 实时互动延迟大:在直播课或口语陪练场景中,首字延迟过高,破坏了师生间自然流畅的对话节奏。

使用 Qwen3-TTS 后

  • 一站式多语言支持:Qwen3-TTS 单个模型即可覆盖全球十大主流语言及多种方言,开发者只需一套代码即可满足全球化课程需求。
  • 语义驱动的情感演绎:依托强大的上下文理解能力,Qwen3-TTS 能自动识别文本中的疑问、兴奋或悲伤情绪,生成如真人般抑扬顿挫的讲解。
  • 极速高保真克隆:仅需几秒参考音频,Qwen3-TTS 即可在抗噪环境下完成高相似度声音克隆,让名师音色瞬间复用于新课件。
  • 超低延迟流式输出:凭借双轨混合流式架构,Qwen3-TTS 实现了极致的首字低延迟,让 AI 口语陪练的反应速度几乎与真人无异。

Qwen3-TTS 通过端到端的架构革新,将多语言、情感化及实时互动的语音生成门槛降至最低,真正实现了“文本即声音”的自然转化。

运行环境要求

操作系统
  • 未说明
GPU

需要兼容 FlashAttention 2 的 NVIDIA GPU,必须支持 torch.float16 或 torch.bfloat16 精度

内存

推荐 96GB+(若低于此数值需限制编译线程数)

依赖
notes建议使用独立的 conda 环境以避免依赖冲突;强烈建议安装 FlashAttention 2 以降低显存占用,但需确保硬件兼容且模型加载精度为 float16 或 bfloat16;若机器内存小于 96GB 且 CPU 核心数较多,安装 flash-attn 时需设置 MAX_JOBS=4。
python3.12
qwen-tts
torch
flash-attn
soundfile
transformers
Qwen3-TTS hero image

快速开始

通义TTS3


  🤗 Hugging Face   |   🤖 ModelScope   |   📑 博客   |   📑 论文  
🖥️ Hugging Face 演示   |    🖥️ ModelScope 演示   |   💬 微信   |   🫨 Discord   |   📑 API

我们发布了 Qwen3-TTS,这是一系列由通义大模型团队研发的强大语音生成能力,全面支持声音克隆、声音设计、超高质量类人语音生成以及基于自然语言的语音控制。它为开发者和用户提供了目前市场上最丰富的语音生成功能集。

新闻

  • 2026年1月22日:🎉🎉🎉 我们基于 Qwen3-TTS-Tokenizer-12Hz 发布了 Qwen3-TTS 系列模型(0.6B/1.7B)。请查看我们的 博客

目录

概述

简介

Qwen3-TTS 覆盖 10 种主要语言(中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语和意大利语)以及多种方言语音风格,以满足全球范围内的应用需求。此外,这些模型具备强大的上下文理解能力,能够根据指令和文本语义自适应地控制语调、语速和情感表达,并且对噪声输入文本的鲁棒性显著提升。核心特性如下:

  • 强大的语音表示能力:依托自主研发的 Qwen3-TTS-Tokenizer-12Hz,实现了对语音信号的高效声学压缩和高维语义建模。该分词器能够完整保留超语言信息及声学环境特征,通过轻量级的非 DiT 架构实现高速、高保真的语音重建。
  • 通用端到端架构:采用离散多码本 LM 架构,实现了全信息的端到端语音建模。这一设计彻底规避了传统 LM+DiT 方案中固有的信息瓶颈和级联误差问题,显著提升了模型的通用性、生成效率和性能上限。
  • 极低延迟流式生成:基于创新的双轨混合流式生成架构,单个模型同时支持流式与非流式生成。只需输入一个字符,即可立即输出首个音频包,端到端合成延迟低至 97 毫秒,完全满足实时交互场景的严苛要求。
  • 智能文本理解和语音控制:支持基于自然语言指令的语音生成,可灵活控制音色、情感和韵律等多种声学属性。通过深度融合文本语义理解,模型能够自适应调整语调、节奏和情感表达,实现“所想即所得”的逼真输出。

模型架构

已发布模型介绍与下载

以下是目前已发布的 Qwen3-TTS 模型的介绍及下载信息。技术报告中提到的其他模型将在近期陆续发布。请根据您的需求选择并下载合适的模型。

分词器名称 描述
Qwen3-TTS-Tokenizer-12Hz Qwen3-TTS-Tokenizer-12Hz 模型可以将输入语音编码为代码,并将其解码回语音。
模型 特性 语言支持 流式支持 指令控制
Qwen3-TTS-12Hz-1.7B-VoiceDesign 根据用户提供的描述进行声音设计。 中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语
Qwen3-TTS-12Hz-1.7B-CustomVoice 通过用户指令对目标音色进行风格化控制;支持 9 种优质音色,涵盖不同性别、年龄、语言和方言的组合。 中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语
Qwen3-TTS-12Hz-1.7B-Base 基础模型,可根据用户音频输入在 3 秒内完成快速声音克隆;可用于微调其他模型。 中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语
Qwen3-TTS-12Hz-0.6B-CustomVoice 支持 9 种优质音色,涵盖不同性别、年龄、语言和方言的组合。 中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语
Qwen3-TTS-12Hz-0.6B-Base 基础模型,可根据用户音频输入在 3 秒内完成快速声音克隆;可用于微调其他模型。 中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语

在 qwen-tts 包或 vLLM 中加载模型时,模型权重会根据模型名称自动下载。然而,如果您的运行环境不适合在执行过程中下载权重,您可以参考以下命令,手动将模型权重下载到本地目录:


# 通过ModelScope下载(推荐中国大陆用户使用)
pip install -U modelscope
modelscope download --model Qwen/Qwen3-TTS-Tokenizer-12Hz  --local_dir ./Qwen3-TTS-Tokenizer-12Hz 
modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local_dir ./Qwen3-TTS-12Hz-1.7B-CustomVoice
modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local_dir ./Qwen3-TTS-12Hz-1.7B-VoiceDesign
modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-Base --local_dir ./Qwen3-TTS-12Hz-1.7B-Base
modelscope download --model Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local_dir ./Qwen3-TTS-12Hz-0.6B-CustomVoice
modelscope download --model Qwen/Qwen3-TTS-12Hz-0.6B-Base --local_dir ./Qwen3-TTS-12Hz-0.6B-Base

# 通过Hugging Face下载
pip install -U "huggingface_hub[cli]"
huggingface-cli download Qwen/Qwen3-TTS-Tokenizer-12Hz --local-dir ./Qwen3-TTS-Tokenizer-12Hz
huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local-dir ./Qwen3-TTS-12Hz-1.7B-CustomVoice
huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local-dir ./Qwen3-TTS-12Hz-1.7B-VoiceDesign
huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir ./Qwen3-TTS-12Hz-1.7B-Base
huggingface-cli download Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local-dir ./Qwen3-TTS-12Hz-0.6B-CustomVoice
huggingface-cli download Qwen/Qwen3-TTS-12Hz-0.6B-Base --local-dir ./Qwen3-TTS-12Hz-0.6B-Base

快速入门

环境搭建

快速使用Qwen3-TTS最简单的方法是从PyPI安装qwen-tts Python包。这将自动拉取所需的运行时依赖项,并允许您加载任何已发布的Qwen3-TTS模型。我们建议使用全新且隔离的环境,以避免与现有包产生依赖冲突。您可以按如下方式创建一个干净的Python 3.12环境:

conda create -n qwen3-tts python=3.12 -y
conda activate qwen3-tts

然后运行:

pip install -U qwen-tts

如果您希望在本地开发或修改代码,请以可编辑模式从源码安装。

git clone https://github.com/QwenLM/Qwen3-TTS.git
cd Qwen3-TTS
pip install -e .

此外,我们建议使用FlashAttention 2来减少GPU显存占用。

pip install -U flash-attn --no-build-isolation

如果您的机器内存不足96GB且CPU核心较多,则可以运行以下命令:

MAX_JOBS=4 pip install -U flash-attn --no-build-isolation

另外,您的硬件需要兼容FlashAttention 2。更多信息请参阅FlashAttention仓库的官方文档。FlashAttention 2仅可在模型以torch.float16torch.bfloat16格式加载时使用。

Python包使用方法

安装完成后,您可以导入Qwen3TTSModel来运行自定义语音合成、语音设计和语音克隆任务。模型权重既可以通过Hugging Face模型ID指定(推荐),也可以通过您下载的本地目录路径指定。对于下面的所有generate_*函数,除了所示并明确记录的参数外,您还可以传递Hugging Face Transformers model.generate支持的生成关键字参数,例如max_new_tokenstop_p等。

自定义语音合成

对于自定义语音模型(Qwen3-TTS-12Hz-1.7B/0.6B-CustomVoice),您只需调用generate_custom_voice,传入单个字符串或一批文本列表,以及languagespeaker和可选的instruct参数。您还可以调用model.get_supported_speakers()model.get_supported_languages()查看当前模型支持哪些说话人和语言。

import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

model = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

# 单次推理
wavs, sr = model.generate_custom_voice(
    text="其实我真的有发现,我是一个特别善于观察别人情绪的人。",
    language="Chinese", # 使用`Auto`(或省略)实现自动语言适配;若目标语言已知,可明确指定。
    speaker="Vivian",
    instruct="用特别愤怒的语气说", # 如无需指令可省略。
)
sf.write("output_custom_voice.wav", wavs[0], sr)

# 批量推理
wavs, sr = model.generate_custom_voice(
    text=[
        "其实我真的有发现,我是一个特别善于观察别人情绪的人。",
        "She said she would be here by noon."
    ],
    language=["Chinese", "English"],
    speaker=["Vivian", "Ryan"],
    instruct=["", "Very happy."]
)
sf.write("output_custom_voice_1.wav", wavs[0], sr)
sf.write("output_custom_voice_2.wav", wavs[1], sr)

对于Qwen3-TTS-12Hz-1.7B/0.6B-CustomVoice模型,支持的说话人列表及描述如下。我们建议使用各说话人的母语以获得最佳效果。当然,每位说话人也可以使用模型支持的任意语言进行发音。

说话人 声音描述 母语
Vivian 清亮、略带锋芒的年轻女声。 中文
Serena 温暖、柔和的年轻女声。 中文
Uncle_Fu 经验丰富、低沉醇厚的男声。 中文
Dylan 年轻、京腔清晰自然的北京男声。 北京话
Eric 充满活力、略带沙哑但明亮的成都男声。 四川话
Ryan 动感十足、节奏感强的男声。 英语
Aiden 阳光开朗、中频清晰的美国男声。 英语
Ono_Anna 活泼俏皮、轻快灵动的日本女声。 日语
Sohee 温暖深情、情感丰富的韩国女声。 韩语

语音设计

对于语音设计模型(Qwen3-TTS-12Hz-1.7B-VoiceDesign),您可以使用generate_voice_design提供目标文本和一段自然语言的描述性指令。

import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

model = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

# 单次推理
wavs, sr = model.generate_voice_design(
    text="哥哥,你回来啦,人家等了你好久好久了,要抱抱!",
    language="Chinese",
    instruct="表现出撒娇稚嫩的萝莉女声,音调偏高且起伏明显,营造出黏人、做作又刻意卖萌的听觉效果。",
)
sf.write("output_voice_design.wav", wavs[0], sr)

# 批量推理
wavs, sr = model.generate_voice_design(
    text=[
      "哥哥,你回来啦,人家等了你好久好久了,要抱抱!",
      "它在最上面的抽屉里……等等,怎么是空的?不可能啊,这绝对不可能!我明明就是放那儿的呀!"
    ],
    language=["中文", "英文"],
    instruct=[
      "表现出撒娇、稚嫩的萝莉音色,音调偏高且起伏明显,营造出黏人、做作又刻意卖萌的听觉效果。",
      "用难以置信的语气说话,但声音中开始透着一丝慌乱。"
    ]
)
sf.write("output_voice_design_1.wav", wavs[0], sr)
sf.write("output_voice_design_2.wav", wavs[1], sr)

语音克隆

对于语音克隆模型(Qwen3-TTS-12Hz-1.7B/0.6B-Base),要克隆一段语音并合成新内容,只需提供参考音频片段(ref_audio)及其对应的文本转录(ref_text)。ref_audio可以是本地文件路径、URL、base64编码字符串,或者一个形如(numpy_array, sample_rate)的元组。如果设置x_vector_only_mode=True,则仅使用说话人嵌入,因此无需提供ref_text,但克隆质量可能会有所下降。

import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

model = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-1.7B-Base",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

ref_audio = "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/clone.wav"
ref_text  = "好吧。嗯。我讨厌你。我爱你。我尊重你。但是你知道吗?你搞砸了!而且多亏了你。"

wavs, sr = model.generate_voice_clone(
    text="我在解方程:x = [-b ± √(b²-4ac)] / 2a?没人能——太糟糕了(◍•͈⌔•͈◍),好伤心啊!",
    language="英语",
    ref_audio=ref_audio,
    ref_text=ref_text,
)
sf.write("output_voice_clone.wav", wavs[0], sr)

如果需要在多次生成中重复使用同一参考提示(以避免重复计算提示特征),可以先用create_voice_clone_prompt构建一次提示,并通过voice_clone_prompt传递。

prompt_items = model.create_voice_clone_prompt(
    ref_audio=ref_audio,
    ref_text=ref_text,
    x_vector_only_mode=False,
)
wavs, sr = model.generate_voice_clone(
    text=["句子A。”,“句子B。”],
    language=["英语", "英语"],
    voice_clone_prompt=prompt_items,
)
sf.write("output_voice_clone_1.wav", wavs[0], sr)
sf.write("output_voice_clone_2.wav", wavs[1], sr)

更多关于可重用语音克隆提示、批量克隆和批量推理的示例,请参阅示例代码。结合这些示例和generate_voice_clone函数的说明,您可以探索更高级的使用模式。

先设计再克隆

如果您希望获得一种可以像克隆说话人一样重复使用的定制化语音,一个实用的工作流程是:(1) 使用VoiceDesign模型合成一段符合目标角色设定的短参考音频;(2) 将该音频输入到create_voice_clone_prompt中,构建一个可重用的提示;然后 (3) 调用generate_voice_clone并传入voice_clone_prompt,即可生成新内容,而无需每次都重新提取特征。这种方法尤其适用于需要在多段台词中保持一致角色语音的情况。

import torch
import soundfile as sf
from qwen_tts import Qwen3TTSModel

# 使用VoiceDesign模型创建目标风格的参考音频
design_model = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

ref_text = "嘿!你掉…呃…你的微积分笔记本了吗?我是说,我觉得可能是你的吧?也许吧?"
ref_instruct = "男性,17岁,男高音音域,逐渐变得自信——现在呼吸支持更扎实了,不过紧张时元音仍会收紧"
ref_wavs, sr = design_model.generate_voice_design(
    text=ref_text,
    language="英语",
    instruct=ref_instruct
)
sf.write("voice_design_reference.wav", ref_wavs[0], sr)

# 从语音设计参考中构建可重用的克隆提示
clone_model = Qwen3TTSModel.from_pretrained(
    "Qwen/Qwen3-TTS-12Hz-1.7B-Base",
    device_map="cuda:0",
    dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
)

voice_clone_prompt = clone_model.create_voice_clone_prompt(
    ref_audio=(ref_wavs[0], sr),   // 或者 "voice_design_reference.wav"
    ref_text=ref_text,
)

sentences = [
    "没问题!其实……我差不多已经做完那些题了?如果你想要对照答案什么的……",
    "什么?不!我的意思是,是的,但不是那种……我只是觉得你……你的滴定技术真的很精准!"
];

// 多次单独调用
wavs, sr = clone_model.generate_voice_clone(
    text=sentences[0],
    language="英语",
    voice_clone_prompt=voice_clone_prompt,
)
sf.write("clone_single_1.wav", wavs[0], sr)

wavs, sr = clone_model.generate_voice_clone(
    text=sentences[1],
    language="英语",
    voice_clone_prompt=voice_clone_prompt,
)
sf.write("clone_single_2.wav", wavs[0], sr)

// 或者一次性批量生成
wavs, sr = clone_model.generate_voice_clone(
    text=sentences,
    language=["英语", "英语"],
    voice_clone_prompt=voice_clone_prompt,
)
for i, w in enumerate(wavs):
    sf.write(f"clone_batch_{i}.wav", w, sr)

分词器的编码与解码

如果您只是想对音频进行编码和解码,用于传输或训练等目的,Qwen3TTSTokenizer支持通过路径、URL、numpy波形以及字典/列表负载来进行编码/解码,例如:

import soundfile as sf
from qwen_tts import Qwen3TTSTokenizer

tokenizer = Qwen3TTSTokenizer.from_pretrained(
    "Qwen/Qwen3-TTS-Tokenizer-12Hz",
    device_map="cuda:0",
)

enc = tokenizer.encode("https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen3-TTS-Repo/tokenizer_demo_1.wav")
wavs, sr = tokenizer.decode(enc)
sf.write("decode_output.wav", wavs[0], sr)

更多分词器示例(包括不同输入格式和批量使用)请参阅示例代码。结合这些示例和Qwen3TTSTokenizer的说明,您可以探索更高级的使用模式。

启动本地Web界面演示

要启动Qwen3-TTS的Web界面演示,只需安装qwen-tts包并运行qwen-tts-demo命令。使用以下命令获取帮助:

qwen-tts-demo --help

启动演示的命令如下:

# CustomVoice模型
qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --ip 0.0.0.0 --port 8000
# VoiceDesign模型
qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --ip 0.0.0.0 --port 8000

# 基础模型
qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-Base --ip 0.0.0.0 --port 8000

然后打开 http://<your-ip>:8000,或者通过 VS Code 等工具的端口转发功能访问。

基础模型 HTTPS 注意事项

为了避免部署服务器后出现浏览器麦克风权限问题,在部署基础模型时,建议或要求使用 HTTPS 运行 Gradio 服务(尤其是在远程访问或通过现代浏览器/网关访问时)。可以使用 --ssl-certfile--ssl-keyfile 来启用 HTTPS。首先需要生成一个有效期为 365 天的私钥和自签名证书:

openssl req -x509 -newkey rsa:2048 \
  -keyout key.pem -out cert.pem \
  -days 365 -nodes \
  -subj "/CN=localhost"

然后以 HTTPS 方式运行演示:

qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-Base \
  --ip 0.0.0.0 --port 8000 \
  --ssl-certfile cert.pem \
  --ssl-keyfile key.pem \
  --no-ssl-verify

最后打开 https://<your-ip>:8000 即可体验。如果浏览器显示警告,这是使用自签名证书的正常现象。在生产环境中,请使用正式的 SSL 证书。

DashScope API 使用说明

为了更深入地探索 Qwen3-TTS,我们鼓励您尝试使用我们的 DashScope API,以获得更快、更高效的体验。有关 API 的详细信息和文档,请参阅下表:

API 描述 API 文档(中国大陆) API 文档(国际)
自定义语音模型的 Qwen3-TTS 实时 API。 https://help.aliyun.com/zh/model-studio/qwen-tts-realtime https://www.alibabacloud.com/help/en/model-studio/qwen-tts-realtime
语音克隆模型的 Qwen3-TTS 实时 API。 https://help.aliyun.com/zh/model-studio/qwen-tts-voice-cloning https://www.alibabacloud.com/help/en/model-studio/qwen-tts-voice-cloning
语音设计模型的 Qwen3-TTS 实时 API。 https://help.aliyun.com/zh/model-studio/qwen-tts-voice-design https://www.alibabacloud.com/help/en/model-studio/qwen-tts-voice-design

vLLM 使用说明

vLLM 官方已对 Qwen3-TTS 提供开箱即用的支持!欢迎使用 vLLM-Omni 进行 Qwen3-TTS 的部署和推理。有关安装及更多详情,请参阅 vLLM-Omni 官方文档。目前仅支持离线推理,线上服务将在后续支持。vLLM-Omni 将继续在推理速度、流式传输等方面为 Qwen3-TTS 提供支持与优化。

离线推理

您可以使用 vLLM-Omni 在本地进行 Qwen3-TTS 的推理。我们在 vLLM-Omni 仓库 中提供了示例代码,可以直接生成音频输出:

# 克隆仓库
git clone https://github.com/vllm-project/vllm-omni.git

# 进入离线推理目录
cd vllm-omni/examples/offline_inference/qwen3_tts

# 使用 CustomVoice 任务运行单个样本
python end2end.py --query-type CustomVoice

# 使用 CustomVoice 任务批量处理多个提示:
python end2end.py --query-type CustomVoice --use-batch-sample

# 使用 VoiceDesign 任务运行单个样本
python end2end.py --query-type VoiceDesign

# 使用 VoiceDesign 任务批量处理多个提示:
python end2end.py --query-type VoiceDesign --use-batch-sample

# 使用 Base 任务以 icl 模式标签运行单个样本
python end2end.py --query-type Base --mode-tag icl

微调

有关 Qwen3-TTS 的微调详细说明,请参阅 Qwen3-TTS-Finetuning

评估

在评估过程中,我们对所有模型使用 dtype=torch.bfloat16 进行推理,并将 max_new_tokens 设置为 2048。其他采样参数均采用检查点中 generate_config.json 的默认值。对于 Seed-Test 和 InstructTTS-Eval 测试集,我们将 language 设置为 "auto";而对于其他测试集,则明确指定了相应的语言。详细结果如下所示。

语音生成基准测试

Seed-TTS 测试集上的零样本语音生成。性能以词错误率(WER,↓)衡量,数值越低越好。

数据集 模型 性能
内容一致性
SEED
test-zh | test-en
Seed-TTS (Anastassiou 等, 2024) 1.12 2.25
MaskGCT (Wang 等, 2024) 2.27 2.62
E2 TTS (Eskimez 等, 2024) 1.97 2.19
F5-TTS (Chen 等, 2024) 1.56 1.83
Spark TTS (Wang 等, 2025) 1.20 1.98
Llasa-8B (Ye 等, 2025b) 1.59 2.97
KALL-E (Xia 等, 2024) 0.96 1.94
FireRedTTS 2 (Xie 等, 2025) 1.14 1.95
CosyVoice 3 (Du 等, 2025) 0.71 1.45
MiniMax-Speech (Zhang 等, 2025a) 0.83 1.65
Qwen3-TTS-25Hz-0.6B-Base 1.18 1.64
Qwen3-TTS-25Hz-1.7B-Base 1.10 1.49
Qwen3-TTS-12Hz-0.6B-Base 0.92 1.32
Qwen3-TTS-12Hz-1.7B-Base 0.77 1.24

多语言语音生成在 TTS 多语言测试集上的表现。性能通过词错误率(WER,↓)衡量内容一致性,通过余弦相似度(SIM,↑)衡量说话人相似性。

语言 Qwen3-TTS-25Hz Qwen3-TTS-12Hz MiniMax ElevenLabs
0.6B-Base 1.7B-Base 0.6B-Base 1.7B-Base
内容一致性
中文 1.108 0.777 1.145 0.928 2.252 16.026
英文 1.048 1.014 0.836 0.934 2.164 2.339
德语 1.501 0.960 1.089 1.235 1.906 0.572
意大利语 1.169 1.105 1.534 0.948 1.543 1.743
葡萄牙语 2.046 1.778 2.254 1.526 1.877 1.331
西班牙语 2.031 1.491 1.491 1.126 1.029 1.084
日语 4.189 5.121 6.404 3.823 3.519 10.646
韩语 2.852 2.631 1.741 1.755 1.747 1.865
法语 2.852 2.631 2.931 2.858 4.099 5.216
俄语 5.957 4.535 4.458 3.212 4.281 3.878
说话人相似度
中文 0.797 0.796 0.811 0.799 0.780 0.677
英文 0.811 0.815 0.829 0.775 0.756 0.613
德语 0.749 0.737 0.769 0.775 0.733 0.614
意大利语 0.722 0.718 0.792 0.817 0.699 0.579
葡萄牙语 0.790 0.783 0.794 0.817 0.805 0.711
西班牙语 0.732 0.731 0.812 0.814 0.762 0.615
日语 0.810 0.807 0.798 0.788 0.776 0.738
韩语 0.824 0.814 0.812 0.799 0.779 0.700
法语 0.698 0.703 0.700 0.714 0.628 0.535
俄语 0.734 0.744 0.781 0.792 0.761 0.676

跨语言语音生成在跨语言基准上的表现。性能以混合错误率(WER用于英语,CER用于其他语言,↓)衡量。

任务 Qwen3-TTS-25Hz-1.7B-Base Qwen3-TTS-12Hz-1.7B-Base CosyVoice3 CosyVoice2
英译中 5.66 4.77 5.09 13.5
日译中 3.92 3.43 3.05 48.1
韩译中 1.14 1.08 1.06 7.70
中译英 2.91 2.77 2.98 6.47
日译英 3.95 3.04 4.20 17.1
韩译英 3.48 3.09 4.19 11.2
中译日 9.29 8.40 7.08 13.1
英译日 7.74 7.21 6.80 14.9
韩译日 4.17 3.67 3.93 5.86
中译韩 8.12 4.82 14.4 24.8
英译韩 6.83 5.14 5.87 21.9
日译韩 6.86 5.59 7.92 21.5

在InstructTTSEval上的可控语音生成。性能以属性感知与合成准确度(APS)、描述与语音一致性(DSD)以及响应精确度(RP)来衡量。

类型 模型 InstructTTSEval-ZH InstructTTSEval-EN
APS (↑) DSD (↑) RP (↑) APS (↑) DSD (↑) RP (↑)
目标
说话人
Gemini-flash 88.2 90.9 77.3 92.3 93.8 80.1
Gemini-pro 89.0 90.1 75.5 87.6 86.0 67.2
Qwen3TTS-25Hz-1.7B-CustomVoice 83.1 75.0 63.0 79.0 82.8 69.3
Qwen3TTS-12Hz-1.7B-CustomVoice 83.0 77.8 61.2 77.3 77.1 63.7
GPT-4o-mini-tts 54.9 52.3 46.0 76.4 74.3 54.8
声音
设计
Qwen3TTS-12Hz-1.7B-VD 85.2 81.1 65.1 82.9 82.4 68.4
Mimo-Audio-7B-Instruct (Zhang et al., 2025b) 75.7 74.3 61.5 80.6 77.6 59.5
VoiceSculptor (Hu et al., 2026) 75.7 64.7 61.5
Hume 83.0 75.3 54.3
VoxInstruct (Zhou et al., 2024) 47.5 52.3 42.6 54.9 57.0 39.3
Parler-tts-mini (Lyth & King, 2024) 63.4 48.7 28.6
Parler-tts-large (Lyth & King, 2024) 60.0 45.9 31.2
PromptTTS (Guo et al., 2023) 64.3 47.2 31.4
PromptStyle (Liu et al., 2023) 57.4 46.4 30.9

目标说话人多语言语音生成在TTS多语言测试集上的表现。性能以词错误率(WER,↓)衡量。

语言 Qwen3-TTS-25Hz Qwen3-TTS-12Hz GPT-4o-Audio
预览
0.6B-自定义声音 1.7B-自定义声音 0.6B-自定义声音 1.7B-自定义声音
中文 0.874 0.708 0.944 0.903 3.519
英语 1.332 0.936 1.188 0.899 2.197
德语 0.990 0.634 2.722 1.057 1.161
意大利语 1.861 1.271 2.545 1.362 1.194
葡萄牙语 1.728 1.854 3.219 2.681 1.504
西班牙语 1.309 1.284 1.154 1.330 4.000
日语 3.875 4.518 6.877 4.924 5.001
韩语 2.202 2.274 3.053 1.741 2.763
法语 3.865 3.080 3.841 3.781 3.605
俄语 6.529 4.444 5.809 4.734 5.250

长语音生成结果。性能以词错误率(WER,↓)衡量。

数据集 模型 性能
内容一致性
long-zh | long-en Higgs-Audio-v2(分块)(玻色AI,2025年) 5.505 6.917
VibeVoice(Peng等人,2025年) 22.619 1.780
VoxCPM(Zhou等人,2025年) 4.835 7.474
Qwen3-TTS-25Hz-1.7B-自定义声音 1.517 1.225
Qwen3-TTS-12Hz-1.7B-自定义声音 2.356 2.812
语音分词器基准测试

不同监督式语义语音分词器在ASR任务上的比较。

模型 码本大小 帧率 (FPS) C.V. EN C.V. CN Fluers EN Fluers CN
S3 Tokenizer(VQ) (Du et al., 2024a) 4096 50 12.06 15.38 - -
S3 Tokenizer(VQ) (Du et al., 2024a) 4096 25 11.56 18.26 7.65 5.03
S3 Tokenizer(FSQ) (Du et al., 2024a) 6561 25 10.67 7.29 6.58 4.43
Qwen-TTS-Tokenizer-25Hz (第一阶段) 32768 25 7.51 10.73 3.07 4.23
Qwen-TTS-Tokenizer-25Hz (第二阶段) 32768 25 10.40 14.99 4.14 4.67

不同语义相关语音分词器的对比。

模型 NQ 码本大小 帧率 (FPS) PESQ_WB PESQ_NB STOI UTMOS SIM
SpeechTokenizer (Zhang et al., 2023a) 8 1024 50 2.60 3.05 0.92 3.90 0.85
X-codec (Ye et al., 2025a) 2 1024 50 2.68 3.27 0.86 4.11 0.84
X-codec 2 (Ye et al., 2025b) 1 65536 50 2.43 3.04 0.92 4.13 0.82
XY-Tokenizer (Gong et al., 2025) 8 1024 12.5 2.41 3.00 0.91 3.98 0.83
Mimi (Défossez et al., 2024) 16 2048 12.5 2.88 3.42 0.94 3.87 0.87
FireredTTS 2 Tokenizer (Xie et al., 2025) 16 2048 12.5 2.73 3.28 0.94 3.88 0.87
Qwen-TTS-Tokenizer-12Hz 16 2048 12.5 3.21 3.68 0.96 4.16 0.95

引用

如果您在研究中发现我们的论文和代码有用,请考虑给个赞 :star: 和引用 :pencil: :)

@article{Qwen3-TTS,
  title={Qwen3-TTS 技术报告},
  author={胡航瑞、朱新发、何婷、郭大可、张斌、王雄、郭志芳、蒋子悦、郝洪坤、郭子山、张鑫宇、张培、杨宝松、徐进、周景仁、林俊阳},
  journal={arXiv 预印本 arXiv:2601.15621},
  year={2026}
}

星标历史

星标历史图表


常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|昨天
图像数据工具视频

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|4天前
音频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|6天前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|1周前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|6天前
音频

ChatTTS

ChatTTS 是一款专为日常对话场景打造的生成式语音模型,特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音(TTS)技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题,让机器生成的语音听起来更像真人在聊天。 这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化:它不仅支持中英文双语,还能精准控制韵律细节,自动生成自然的 laughter(笑声)、pauses(停顿)和 interjections(插入语),从而实现多说话人的互动对话效果。在韵律表现上,ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成,虽主要用于学术研究与教育目的,但已展现出强大的潜力,并支持流式音频生成与零样本推理,为后续的多情绪控制等进阶功能奠定了基础。

39k|★★★☆☆|今天
语言模型Agent开发框架