Qwen3-TTS 

Qwen3-TTS 是阿里巴巴通义千问团队推出的一系列功能强大的开源语音合成模型,具备多音色、多语种、多方言支持能力,广泛适用于智能客服、有声读物、视频配音、智能硬件等多种场景。

魔搭地址:Qwen3-TTS-12Hz-1.7B-Base · 模型库

核心特性

  1. 多语言与多方言支持
    Qwen3-TTS 支持 ‌10 种主流语言‌:中文、英文、日语、韩语、德语、法语、俄语、葡萄牙语、西班牙语、意大利语,并覆盖多种方言,如粤语、四川话、吴语、闽南语等,满足全球化应用需求。

  2. 超低延迟流式生成
    采用创新的 ‌Dual-Track 双轨混合流式架构‌,实现端到端合成延迟低至 ‌97ms‌,输入首个字符即可输出首包音频,适用于实时交互场景,如智能客服、车载导航等。

  3. 3秒级音色克隆
    仅需 ‌3秒参考音频‌,即可精准复刻目标音色,并支持在多语言环境下保持一致的音色表现。克隆音色可用于生成中文、英文等10种语言内容,适用于个性化语音助手、数字人等场景。

  4. 自然语言“设计”声音
    支持通过自然语言描述来“定制”声音,例如:“略带紧张的17岁男生,音域偏高”或“沉稳睿智的中年女性”。该功能由 ‌Qwen3-TTS-VD-Flash‌ 模型实现,突破传统TTS只能使用预设音色的限制。

  5. 高表现力与拟人化表达
    模型能根据文本语义自动调节语气、节奏、情感,实现更自然、生动的语音输出。在复杂文本(如数学公式、多角色对话)中也能保持稳定性和可读性。

  6. 强大的文本鲁棒性
    可处理非规范化输入,如错别字、标点混乱、中英文混杂等,仍能输出流畅自然的语音,适用于真实场景中的多样化文本输入。

  7. 开源与灵活部署
    Qwen3-TTS 全系列模型已开源,提供 ‌1.7B‌(极致性能)和 ‌0.6B‌(均衡效率)两种参数版本,适配不同硬件环境。支持通过阿里云百炼平台或本地部署使用。

实践

安装

pip install -U qwen-tts

需要安装的软件包较多

Python 包使用方法

安装完成后,你可以导入 Qwen3TTSModel 来运行自定义语音 TTS、语音设计和语音克隆。模型权重可以指定为 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",
)

# single inference
wavs, sr = model.generate_custom_voice(
    text="其实我真的有发现,我是一个特别善于观察别人情绪的人。",
    language="Chinese", # Pass `Auto` (or omit) for auto language adaptive; if the target language is known, set it explicitly.
    speaker="Vivian",
    instruct="用特别愤怒的语气说", # Omit if not needed.
)
sf.write("output_custom_voice.wav", wavs[0], sr)

# batch inference
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的模型存放在c盘了,怎么放到其它盘?


# Windows CMD
set TRANSFORMERS_CACHE=D:\models\huggingface
set HF_HOME=D:\models\huggingface

# Windows CMD
set TRANSFORMERS_CACHE=g:\models\huggingface
set HF_HOME=g:\models\huggingface
语音克隆

对于语音克隆模型(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  = "Okay. Yeah. I resent you. I love you. I respect you. But you know what? You blew it! And thanks to you."

wavs, sr = model.generate_voice_clone(
    text="I am solving the equation: x = [-b ± √(b²-4ac)] / 2a? Nobody can — it's a disaster (◍•͈⌔•͈◍), very sad!",
    language="English",
    ref_audio=ref_audio,
    ref_text=ref_text,
)
sf.write("output_voice_clone.wav", wavs[0], sr)

调试

报错ImportError: FlashAttention2 has been toggled on, but it cannot be used due to the following error: the package flash_attn seems to be not installed.

  File "G:\ai\ttsvenv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 1817, in __init__
    super().__init__(config)
  File "G:\ai\ttsvenv\Lib\site-packages\transformers\modeling_utils.py", line 2076, in __init__
    self.config._attn_implementation_internal = self._check_and_adjust_attn_implementation(
                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "G:\ai\ttsvenv\Lib\site-packages\transformers\modeling_utils.py", line 2686, in _check_and_adjust_attn_implementation
    applicable_attn_implementation = self.get_correct_attn_implementation(
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "G:\ai\ttsvenv\Lib\site-packages\transformers\modeling_utils.py", line 2714, in get_correct_attn_implementation
    self._flash_attn_2_can_dispatch(is_init_check)
  File "G:\ai\ttsvenv\Lib\site-packages\transformers\modeling_utils.py", line 2422, in _flash_attn_2_can_dispatch
    raise ImportError(f"{preface} the package flash_attn seems to be not installed. {install_message}")
ImportError: FlashAttention2 has been toggled on, but it cannot be used due to the following error: the package flash_attn seems to be not installed. Please refer to the documentation of https://huggingface.co/docs/transformers/perf_infer_gpu_one#flashattention-2 to install Flash Attention 2.
安装flash-attn 解决

pip install flash-attn

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐