本文介绍 Qwen-TTS Realtime API 的客户端事件。
相关文档:实时语音合成。
session.update
用于更新会话配置。在WebSocket连接建立成功后,可立即发送此事件作为交互的第一步。如果未发送,系统将使用默认配置。服务端成功处理此事件后,会返回session.updated事件作为确认。
| 参数 | 类型 | 说明 |
|---|---|---|
| event_id | string | (必选) 客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。 |
| type | string | (必选) 事件类型,固定为session.update。 |
| session | object | (可选) 会话配置。 |
| session.voice | string | (必选) 语音合成所使用的音色。参见支持的音色。 支持系统音色和专属音色:
|
| session.mode | string | (可选) 交互模式,可选值:
|
| session.language_type | string | (可选) 指定合成音频的语种,默认为 Auto。
|
| session.response_format | string | (可选) 模型输出音频的格式。 支持的格式:
pcm。 |
| session.sample_rate | integer | (可选) 模型输出音频的采样率(Hz)。 支持的采样率:
|
| session.speech_rate | float | (可选) 音频的语速。1.0为正常语速,小于1.0为慢速,大于1.0为快速。 默认值:1.0。 取值范围:[0.5, 2.0]。 千问-TTS-Realtime(参见支持的模型)不支持该参数。 |
| session.volume | integer | (可选) 音频的音量。 默认值:50。 取值范围:[0, 100]。 千问-TTS-Realtime(参见支持的模型)不支持该参数。 |
| session.pitch_rate | float | (可选) 合成音频的语调。 默认值:1.0。 取值范围:[0.5, 2.0]。 千问-TTS-Realtime(参见支持的模型)不支持该参数。 |
| session.bit_rate | integer | (可选) 指定音频的码率(kbps)。码率越大,音质越好,音频文件体积越大。仅在音频格式(response_format)为opus时可用。 默认值:128。 取值范围:[6, 510]。 千问-TTS-Realtime(参见支持的模型)不支持该参数。 |
| session.instructions | string | (可选) 设置指令,参见指令控制。 默认值:无默认值,不设置不生效。 长度限制:长度不得超过 1600 Token。 支持语言:仅支持中文和英文。 适用范围:该功能仅适用于千问3-TTS-Instruct-Flash-Realtime系列模型。 |
| session.optimize_instructions | boolean | (可选) 是否对 instructions 进行优化,以提升语音合成的自然度和表现力。 默认值:false。 行为说明:当设置为 true 时,系统将对 instructions 的内容进行语义增强与重写,生成更适合语音合成的内部指令。 适用场景:推荐在追求高品质、精细化语音表达的场景下开启。 依赖关系:此参数依赖于 instructions 参数被设置。如果 instructions 为空,此参数不生效。 适用范围:该功能仅适用于千问3-TTS-Instruct-Flash-Realtime系列模型。 |
input_text_buffer.append
用于将待合成文本追加到文本缓冲区。在server_commit模式中,文本将追加到服务端的文本缓冲区;在commit模式中,文本将追加到客户端的文本缓冲区。
| 参数 | 类型 | 说明 |
|---|---|---|
| event_id | string | (必选) 客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。 |
| type | string | (必选) 事件类型,固定为input_text_buffer.append。 |
| text | string | (必选) 待合成文本。 |
input_text_buffer.commit
用于提交用户输入文本缓冲区,从而在对话中创建新的用户消息项。 如果输入的文本缓冲区为空,此事件将产生错误。处于“server_commit”模式时,用户提交此事件,表示立即合成之前的所有文本,服务器不再缓存文本。处于“commit”模式时,客户端必须提交文本缓冲区才能创建用户消息项。提交输入文本缓冲区不会从模型创建响应,服务器将返回 input_text_buffer.committed 事件进行响应。
| 参数 | 类型 | 说明 |
|---|---|---|
| event_id | string | (必选) 客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。 |
| type | string | (必选) 事件类型,固定为input_text_buffer.commit。 |
input_text_buffer.clear
用于清除缓冲区中的文本。服务端返回input_text_buffer.cleared 事件进行响应。
| 参数 | 类型 | 说明 |
|---|---|---|
| event_id | string | (必选) 客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。 |
| type | string | (必选) 事件类型,固定为input_text_buffer.clear。 |
session.finish
客户端发送 session.finish 事件通知服务端不再有文本输入,服务端将剩余音频返回,随后关闭连接。
| 参数 | 类型 | 说明 |
|---|---|---|
| event_id | string | (必选) 客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。 |
| type | string | (必选) 事件类型,固定为session.finish。 |