本文介绍非实时语音合成Qwen-Audio-TTS/CosyVoice的Python SDK调用方法,支持非流式和流式两种调用模式。
用户指南:参见非实时语音合成。
包路径:
方法签名:
参数说明:
返回值:
以下示例展示Qwen-Audio-TTS/CosyVoice语音合成的非流式和流式调用方式。运行前请确保已设置环境变量
非流式调用设置
流式调用设置
前提条件
- 已获取与配置 API Key并将其配置到环境变量
- 已安装符合版本要求的DashScope Java SDK,建议安装最新版,SDK版本需≥1.25.17
HttpSpeechSynthesizer 类
包路径:dashscope.audio.http_tts.http_speech_synthesizer.HttpSpeechSynthesizer
功能:基于HTTP的语音合成,通过stream参数控制非流式或流式调用模式。
call() - 语音合成调用
方法签名:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | str | 是 | 语音合成模型。取值范围:
|
| text | str | 是 | 待合成文本。支持 SSML 和 LaTeX 格式输入。将待合成文本替换为对应格式即可。
|
| voice | str | 是 | 音色。取值范围:
|
| format | str | 否 | 音频编码格式。默认值:mp3。取值范围:
|
| sample_rate | int | 否 | 音频采样率(Hz)。取值范围:8000, 16000, 22050(默认), 24000, 44100, 48000。 |
| volume | int | 否 | 音量。默认值:50。取值范围:[0, 100]。 |
| rate | float | 否 | 语速。默认值:1.0。取值范围:[0.5, 2.0]。 |
| pitch | float | 否 | 音调。默认值:1.0。取值范围:[0.5, 2.0]。 |
| bit_rate | int | 否 | 音频码率(单位:kbps)。默认值:32。取值范围:[6, 510]。 |
| enable_ssml | bool | 否 | 是否开启SSML功能。当text使用SSML格式时,需设为True。默认为False。支持的SSML标签及用法,请参考SSML 与 LaTeX。SSML 的使用限制(支持的模型、音色和接口),请参见使用限制。 |
| word_timestamp_enabled | bool | 否 | 是否开启字级别时间戳。默认值:False。
|
| seed | int | 否 | 生成时使用的随机数种子,使合成的效果产生变化。在模型版本、文本、音色及其他参数均相同的前提下,使用相同的seed可复现相同的合成结果。默认值0。取值范围:[0, 65535]。 |
| language_hints | list | 否 | 指定语音合成的目标语言,提升合成效果。当数字、缩写、符号等朗读方式或者小语种合成效果不符合预期时使用,例如:
|
| instruction | str | 否 | 设置指令,用于控制方言、情感或角色等合成效果。具体用法请参见非实时语音合成。 |
| enable_aigc_tag | bool | 否 | 是否在生成的音频中添加AIGC隐性标识。设置为True时,会将隐性标识嵌入到支持格式(wav/mp3/opus)的音频中。默认值:false。仅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支持该功能。 |
| aigc_propagator | str | 否 | 设置AIGC隐性标识中的 ContentPropagator 字段,用于标识内容的传播者。仅在 enable_aigc_tag 为 True 时生效。默认值:阿里云UID。仅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支持该功能。 |
| aigc_propagate_id | str | 否 | 设置AIGC隐性标识中的 PropagateID 字段,用于唯一标识一次具体的传播行为。仅在 enable_aigc_tag 为 True 时生效。默认值:本次语音合成请求Request ID。仅qwen-audio-3.0-tts-plus、qwen-audio-3.0-tts-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2支持该功能。 |
| hot_fix | dict | 否 | 文本热修复配置,用于自定义指定词语的发音或对待合成文本进行替换。cosyvoice-v2不支持该功能。参数介绍:
|
| enable_markdown_filter | bool | 否 | 是否启用 Markdown 过滤。启用该功能后,系统在合成语音前自动过滤输入文本中的 Markdown 标记符号,避免将其朗读为文字内容。仅cosyvoice-v3-flash复刻音色支持该功能。默认值:False。取值范围:
|
| stream | bool | 否 | 是否启用流式模式。设为False时为非流式调用,返回包含音频URL的结果对象;设为True时为流式调用,返回音频数据分片的迭代器。默认为False。 |
| api_key | str | 否 | API Key。如果未指定,SDK会自动从环境变量DASHSCOPE_API_KEY中读取。 |
-
非流式模式(
stream=False):返回结果对象,包含以下属性:audio_url:音频下载URL(有效期有限)。audio_id:音频ID。expires_at:URL过期时间。
-
流式模式(
stream=True):返回迭代器,每个元素包含以下属性:audio_data:当前分片的音频二进制数据(bytes)。sentences:句子级别的合成信息(如有)。
示例代码
以下示例展示Qwen-Audio-TTS/CosyVoice语音合成的非流式和流式调用方式。运行前请确保已设置环境变量DASHSCOPE_API_KEY。
非流式调用
非流式调用设置stream=False,等待合成完成后返回音频URL,通过URL下载音频文件。
流式调用
流式调用设置stream=True,返回迭代器,逐段获取音频数据。适用于对首包延迟有要求的实时播放场景。流式模式下,迭代器的最后一个元素会额外返回完整音频的audio_url,遍历时需通过not chunk.audio_url过滤该元素,避免音频内容重复。