跳转到主要内容
实时

Qwen-TTS realtime Python SDK

实时语音合成 Python SDK

DashScope Python SDK 调用实时语音合成(Qwen)的接口和参数说明。 指南:模型详情请参见实时语音合成 - Qwen语音合成 - Qwen

快速开始

支持两种交互模式:server commit(服务端决定合成时机)和 commit(客户端手动触发合成)。完整示例和教程请参见实时语音合成

请求参数

QwenTtsRealtime 构造函数中设置以下参数。
参数类型必选说明
modelstr模型名称。
urlstrWebSocket 端点地址。默认值:wss://dashscope.aliyuncs.com/api-ws/v1/realtime。不传时 SDK 自动使用默认端点。
通过 update_session 设置以下参数。
参数类型必选说明
voicestr合成音色。音色名称区分大小写,请使用正确大小写(例如 Cherry,而非 cherry)。系统音色:适用于 Qwen3-TTS-Instruct-Flash-Realtime、Qwen3-TTS-Flash-Realtime 和 Qwen-TTS-Realtime 系列。自定义音色:通过声音复刻(Qwen)创建(仅限 Qwen3-TTS-VC-Realtime 系列)或声音设计(Qwen)创建(仅限 Qwen3-TTS-VD-Realtime 系列)。
language_typestr输出音频的语言。默认值:Auto。语言不确定或文本混合多种语言时使用 Auto。支持:ChineseEnglishGermanItalianPortugueseSpanishJapaneseKoreanFrenchRussian。指定语言可提升合成质量。
modestr交互模式。server_commit(默认):服务端决定合成时机,平衡延迟和质量,适合大多数场景。commit:客户端手动触发合成,延迟更低,但需要自行管理句子边界。
formatstr音频格式。支持:pcm(默认)、wavmp3opus。Qwen-TTS-Realtime 仅支持 pcm
sample_rateint采样率,单位 Hz。支持:8000、16000、24000(默认)、48000。Qwen-TTS-Realtime 仅支持 24000。
speech_ratefloat语速倍数。默认值:1.0(正常语速)。范围:[0.5, 2.0]。Qwen-TTS-Realtime 不支持。
volumeint音量。默认值:50。范围:[0, 100]。Qwen-TTS-Realtime 不支持。
pitch_ratefloat音高倍数。默认值:1.0。范围:[0.5, 2.0]。Qwen-TTS-Realtime 不支持。
bit_rateint比特率,单位 kbps。值越高音质越好,但文件更大。仅用于 opus 格式。默认值:128。范围:[6, 510]。Qwen-TTS-Realtime 不支持。
instructionsstr合成控制指令。详情请参见实时流式语音合成。默认值:None。最大长度:1600 tokens。支持中英文。仅限 Qwen3-TTS-Instruct-Flash-Realtime 系列。
optimize_instructionsbool设为 True 时,对 instructions 进行改写以提升自然度和表现力。默认值:False。适用于精细化语音控制场景。需先设置 instructions。仅限 Qwen3-TTS-Instruct-Flash-Realtime 系列。

核心接口

QwenTtsRealtime 类

通过 from dashscope.audio.qwen_tts_realtime import QwenTtsRealtime 导入。
方法签名服务端响应事件(通过回调返回)说明
def connect(self) -> Nonesession.created - 会话已创建。session.updated - 会话配置已更新。连接服务端。
def update_session(self, voice: str, response_format: AudioFormat = AudioFormat.PCM_24000HZ_MONO_16BIT, mode: str = 'server_commit', language_type: str = None, **kwargs) -> Nonesession.updated - 会话配置已更新。更新会话配置。参数详情请参见"请求参数"。连接后立即调用以覆盖默认值。无效参数返回错误,有效参数更新配置。
def append_text(self, text: str) -> None向云端输入缓冲区追加文本。server_commit 模式下,服务端决定何时合成缓冲区中的文本。commit 模式下,调用 commit 触发合成。
def clear_appended_text(self) -> Noneinput_text_buffer.cleared - 缓冲区已清空。清空云端缓冲区中的所有文本。
def commit(self) -> Noneinput_text_buffer.committed - 文本已提交。response.output_item.added - 输出项已添加。response.content_part.added - 内容片段已添加。response.audio.delta - 增量音频数据。response.audio.done - 音频生成完成。response.content_part.done - 内容流式传输完成。response.output_item.done - 输出项完成。response.done - 响应完成。提交缓冲区文本并立即合成。缓冲区为空时返回错误。server_commit 模式下无需调用。commit 模式下必须调用以触发合成。
def finish(self) -> Nonesession.finished - 会话已结束。结束任务。
def close(self) -> None关闭连接。
def get_session_id(self) -> str获取当前会话 ID。
def get_last_response_id(self) -> str获取最近一次响应 ID。
def get_first_audio_delay(self)获取首个音频包的延迟时间。

回调接口(QwenTtsRealtimeCallback)

通过实现回调方法处理服务端响应。 通过 from dashscope.audio.qwen_tts_realtime import QwenTtsRealtimeCallback 导入。
方法参数返回值说明
def on_open(self) -> None连接建立时调用。
def on_event(self, message: str) -> Nonemessage:服务端响应事件。收到 API 响应和模型生成的文本/音频时调用。详情请参见服务端事件
def on_close(self, close_status_code, close_msg) -> Noneclose_status_code:WebSocket 关闭状态码。close_msg:WebSocket 关闭消息。服务端关闭连接时调用。