使用 Qwen3-TTS、CosyVoice 和 MiniMax 进行非实时语音合成
非实时语音合成通过 HTTP API 将文本转换为语音,适用于有声读物、课件配音、内容生产等对延迟不敏感的场景。支持 Qwen-TTS、CosyVoice 和 MiniMax 多种模型系列,提供丰富音色、多语言支持、声音复刻与声音设计等能力。
调用以下模型时需使用 API Key:
通过自然语言指令控制音高、语速、情感和音色,无需调整音频参数。
支持的模型:仅 Qwen3-TTS-Instruct-Flash 系列。
使用方式:在
支持的语言:仅中文和英文。
长度限制:最多 1600 个 Token。
适用场景:
示例
Qwen-Audio-TTS 系列模型支持在待合成文本(
控制类标签
控制类标签用于设定语音的情感或风格。将标签写在文本中,标签会作用于其后的所有文本,直到遇到下一个控制类标签,或因句子较长被自动切分为止。
富语言类标签
富语言类标签用于在文本的当前位置插入一段拟声效果,不影响前后文本的情感风格。
使用示例
以下示例展示如何在
本节介绍如何让模型用中文方言(如河南话、四川话等)输出语音。不同模型和音色类型的设置方式不同。
Qwen-Audio-TTS
Qwen-TTS
Qwen3-TTS 支持声音克隆(Qwen3-TTS-VC)和声音设计(Qwen3-TTS-VD)。API 参考请参见声音克隆 (Qwen) 和声音设计 (Qwen)。
支持的音色清单、模型兼容性与试听见 Qwen-TTS 音色列表。
Q:音频文件 URL 的有效期是多久?
音频文件 URL 在 24 小时后过期。
支持的模型
调用以下模型时需使用 API Key:
- Qwen3-TTS-Instruct-Flash
- Qwen3-TTS-VD
- Qwen3-TTS-VC
- Qwen3-TTS-Flash
- cosyvoice-v3-plus
- cosyvoice-v3-flash
- MiniMax(MiniMax-Speech-02-HD)
CosyVoice 使用 DashScope WebSocket SDK(
dashscope.audio.tts_v2 中的 SpeechSynthesizer),而非 Qwen3-TTS 所用的 HTTP REST API。如需使用 CosyVoice 进行实时流式合成,请参见实时语音合成。快速开始
- Qwen3-TTS
- CosyVoice
前提条件流式输出以 Base64 格式流式输出音频数据。最后一个数据包包含完整音频文件的 URL。
- 获取 API Key 并将其设置为环境变量。
- 如需使用 SDK,请先安装 SDK。Java SDK 需要 2.21.9+ 版本,Python SDK 需要 1.24.6+ 版本。
在 DashScope Python SDK 中,
SpeechSynthesizer 接口已替换为 MultiModalConversation。升级时只需替换接口名称,其他参数完全兼容。使用系统音色
使用系统音色进行语音合成。非流式输出通过返回的url 获取合成后的音频文件,该 URL 有效期为 24 小时。Java 需要导入 Gson 依赖。如果使用 Maven 或 Gradle,按如下方式添加依赖:- Maven
- Gradle
在
pom.xml 中添加以下内容:使用克隆音色
声音克隆不提供预览音频。将克隆音色应用于语音合成后才能评估效果。以下示例基于非流式输出代码,将voice 参数替换为克隆音色。- 关键原则:声音克隆所用的模型(
target_model)必须与语音合成所用的模型(model)一致,否则合成将失败。 - 本示例使用本地音频文件
voice.mp3进行声音克隆,运行代码时请替换该路径。
- Maven
- Gradle
在
pom.xml 中添加以下内容:使用声音克隆生成的自定义音色进行语音合成时,请按如下方式设置 voice 参数:
使用设计音色
声音设计会返回预览音频。请先试听预览确认效果满意后再用于合成,以降低成本。1
生成自定义音色并预览效果
如果对效果满意,请继续下一步;否则,请重新生成。Java 需要导入 Gson 依赖。如果使用 Maven 或 Gradle,按如下方式添加依赖:
- Maven
- Gradle
在
pom.xml 中添加以下内容:使用声音设计生成的自定义音色进行语音合成时,必须按如下方式设置 voice 参数:
2
使用自定义音色进行语音合成
使用上一步生成的自定义音色进行非流式语音合成。本示例基于非流式输出代码,将
voice 参数替换为声音设计生成的自定义音色。如需流式合成,请参见快速开始。关键原则:声音设计所用的模型(target_model)必须与后续语音合成所用的模型(model)一致,否则合成将失败。指令控制
通过自然语言指令控制音高、语速、情感和音色,无需调整音频参数。
支持的模型:仅 Qwen3-TTS-Instruct-Flash 系列。
使用方式:在 instructions 参数中指定指令。示例:"语速快,语调上扬明显,适合时尚产品介绍。"
指令参数名因模型系列而异:CosyVoice 使用
instruction,Qwen-TTS 使用 instructions。跨模型迁移时请注意修改参数名。- 有声书和广播剧配音
- 广告和宣传视频配音
- 游戏角色和动画配音
- 情感智能语音助手
- 纪录片和新闻播报
- 具体明确:使用"低沉"、"清脆"、"快节奏"等描述性词汇,避免使用"好听"、"正常"等模糊词汇。
- 多维描述:结合音高、语速、情感等多个维度,避免仅使用"高音"等单一维度描述。
- 客观描述:聚焦物理和感知特征,而非个人喜好。使用"高亢有力"而非"我最喜欢的声音"。
- 原创描述:描述声音特质,不要要求模仿特定人物。模型不支持直接模仿。
- 简洁精炼:确保每个词都有意义,避免重复的近义词或无意义的修饰词。
| 维度 | 示例 |
|---|---|
| 音高 | 高、中、低、高亢、低沉 |
| 语速 | 快、中、慢、快节奏、慢节奏 |
| 情感 | 欢快、平静、温柔、严肃、活泼、沉稳、舒缓 |
| 特征 | 磁性、清脆、沙哑、醇厚、甜美、深沉、有力 |
| 用途 | 新闻播报、广告配音、有声书、动画角色、语音助手、纪录片旁白 |
- 标准播报风格:吐字清晰准确,字正腔圆。
- 渐进情绪效果:音量从正常对话迅速提升到大喊,性格直爽、容易激动,情绪表达丰富。
- 特殊情绪状态:抽泣的语气导致发音略微含糊沙哑,哭腔中带有明显的紧张感。
- 广告配音风格:音调高、语速适中、充满活力和感染力,适合广告配音。
- 温柔舒缓风格:语速缓慢,音调温柔甜美,语气舒缓温暖,如同关心你的朋友。
情感与富语言标签
Qwen-Audio-TTS 系列模型支持在待合成文本(text 参数)中直接嵌入情感与富语言标签,用于控制语音的情感表达或在指定位置插入拟声效果(如笑声、叹息等),无需调整复杂的音频参数即可生成更具表现力的语音。
支持的模型:仅
qwen-audio-3.0-tts-plus 和 qwen-audio-3.0-tts-flash。| 标签 | 说明 |
|---|---|
[sad] | 悲伤 |
[amazed] | 惊叹 |
[deep and loud shouting] | 深沉大声呐喊 |
[trembling] | 颤抖 |
[angry] | 愤怒 |
[excited] | 兴奋 |
[sarcastic] | 讽刺 |
[curious] | 好奇 |
[like dracula] | 德古拉风格(低沉、阴森) |
[bored] | 无聊 |
[tired] | 疲惫 |
[singing] | 唱歌 |
[scornful] | 轻蔑 |
[shouting] | 大喊 |
[asmr] | ASMR 轻柔耳语 |
[panicked] | 恐慌 |
[mischievously] | 调皮 |
[empathetic] | 共情 |
[whispers] | 耳语 |
[reluctantly] | 不情愿 |
[crying] | 哭泣 |
[serious] | 严肃 |
[very slowly] | 非常缓慢地说话 |
[very fast] | 非常快速地说话 |
| 标签 | 说明 |
|---|---|
[gasp] | 倒吸一口气 |
[sighing] | 叹息 |
[clears throat] | 清嗓 |
[giggles] | 咯咯笑 |
[laughing] | 大笑 |
[cough] | 咳嗽 |
[snorts] | 哼声、嗤笑 |
text 参数中组合使用控制类标签和富语言类标签:
[excited]今天的天气真不错![laughing]我们一起出去玩吧!
上述文本中,[excited] 是控制类标签,作用于其后的所有文本,使语音带有兴奋的情感;[laughing] 是富语言类标签,在该位置插入一段笑声效果后继续合成后续文本。
您也可以在同一段文本中切换不同情感:
[serious]请注意安全事项。[excited]好了,现在让我们开始吧!
其中 [serious] 控制第一句为严肃语气,[excited] 从第二句起切换为兴奋语气。
文本预处理建议
cosyvoice-v3-flash 在合成包含点号(·)分隔数字段的文本时,可能出现漏读或重复念读的情况,例如连续的房号可能被读错。
将文本中的点号(·)替换为中文逗号(,)可规避该问题:
- 原文:
主楼五楼·501房是PU·502房是OOO - 预处理后:
主楼五楼501房是PU,502房是OOO
此为模型层已知限制,仅在
cosyvoice-v3-flash 上确认,cosyvoice-v2 经交叉验证无此问题,不适用于 CosyVoice 其他型号或其他模型系列。在模型优化完成前,建议在代码侧对待合成文案统一做该预处理。方言
本节介绍如何让模型用中文方言(如河南话、四川话等)输出语音。不同模型和音色类型的设置方式不同。
Qwen-Audio-TTS
- 系统音色:在 Qwen-Audio-TTS 音色列表 中选择以下任一种音色:
- 支持方言的系统音色,无需额外设置即可输出对应方言。
- 支持指令控制且可指定方言的音色,通过指令文本指定方言。
- 声音复刻音色:通过指令控制功能设置,例如指令文本写
请用河南话表达。 - 声音设计音色:暂不支持方言。
- 系统音色:在 CosyVoice 音色列表 中选择以下任一种音色:
- 支持方言的系统音色(例如
longshange_v3),无需额外设置即可输出对应方言。 - 支持指令控制且可指定方言的音色(例如
longanhuan_v3),通过指令文本指定方言。
- 支持方言的系统音色(例如
- 声音复刻音色:通过指令控制功能设置,例如指令文本写
请用河南话表达。 - 声音设计音色:暂不支持方言。
cosyvoice-v3-flash + longanhuan_v3 音色,通过指令文本 "请用河南话表达。" 输出河南话语音。
- 系统音色:使用支持方言的系统音色,参见 Qwen-TTS 音色列表。
- 声音复刻音色:不支持方言。
- 声音设计音色:不支持方言。
自定义音色
Qwen3-TTS 支持声音克隆(Qwen3-TTS-VC)和声音设计(Qwen3-TTS-VD)。API 参考请参见声音克隆 (Qwen) 和声音设计 (Qwen)。
API 参考
- 语音合成 - Qwen API 参考
- CosyVoice - Python SDK
- CosyVoice - Java SDK
- CosyVoice - WebSocket API
- 声音克隆 API 参考
- 声音设计 API 参考
系统音色
支持的音色清单、模型兼容性与试听见 Qwen-TTS 音色列表。
常见问题
Q:音频文件 URL 的有效期是多久?
音频文件 URL 在 24 小时后过期。
了解更多
- 实时语音合成(CosyVoice 和 Qwen-TTS-Realtime) — 使用 WebSocket 进行实时流式语音合成
- CosyVoice 音色列表
- Qwen-TTS 音色列表