客户端事件

更新时间:
复制为 MD 格式

本文介绍 Qwen-TTS Realtime API 的客户端事件。

相关文档:实时语音合成-千问

session.update

用于更新会话配置。在WebSocket连接建立成功后,可立即发送此事件作为交互的第一步。如果未发送,系统将使用默认配置。服务端成功处理此事件后,会返回session.updated事件作为确认。

event_id string (必选)

客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。

{
    "event_id": "event_123",
    "type": "session.update",
    "session": {
        "voice": "Cherry",
        "mode": "server_commit",
        "language_type": "Chinese",
        "response_format": "pcm",
        "sample_rate": 24000,
        "instructions": "",
        "optimize_instructions": false
    }
}

type string (必选)

事件类型,固定为session.update

session object (可选)

会话配置。

属性

voice string (必选)

语音合成所使用的音色。参见支持的音色

支持系统音色和专属音色:

  • 系统音色:仅限千问3-TTS-Instruct-Flash-Realtime、千问3-TTS-Flash-Realtime和千问-TTS-Realtime系列模型。音色效果请参见:支持的音色

  • 专属音色

mode string (可选)

交互模式,可选值:

  • server_commit(默认):服务端自动判断合成时机,平衡延迟与质量,推荐大多数场景使用

  • commit:客户端手动触发合成,延迟最低,但需自行管理句子完整性

language_type string (可选)

指定合成音频的语种,默认为 Auto

  • Auto:适用无法确定文本的语种或文本包含多种语言的场景,模型会自动为文本中的不同语言片段匹配各自的发音,但无法保证发音完全精准。

  • 指定语种:适用于文本为单一语种的场景,此时指定为具体语种,能显著提升合成质量,效果通常优于 Auto。可选值包括:

    • Chinese

    • English

    • German

    • Italian

    • Portuguese

    • Spanish

    • Japanese

    • Korean

    • French

    • Russian

response_format string (可选)

模型输出音频的格式。

支持的格式:

  • pcm(默认)

  • wav

  • mp3

  • opus

千问-TTS-Realtime(参见支持的模型仅支持pcm

sample_rate integer (可选)

模型输出音频的采样率(Hz)。

支持的采样率:

  • 8000

  • 16000

  • 24000(默认)

  • 48000

千问-TTS-Realtime(参见支持的模型仅支持24000。

speech_rate float (可选)

音频的语速。1.0为正常语速,小于1.0为慢速,大于1.0为快速。

默认值:1.0。

取值范围:[0.5, 2.0]。

千问-TTS-Realtime(参见支持的模型不支持该参数。

volume integer (可选)

音频的音量。

默认值:50。

取值范围:[0, 100]。

千问-TTS-Realtime(参见支持的模型不支持该参数。

pitch_rate float (可选)

合成音频的语调。

默认值:1.0。

取值范围:[0.5, 2.0]。

千问-TTS-Realtime(参见支持的模型不支持该参数。

bit_rate integer (可选)

指定音频的码率(kbps)。码率越大,音质越好,音频文件体积越大。仅在音频格式(response_format)为opus时可用。

默认值:128。

取值范围:[6, 510]。

千问-TTS-Realtime(参见支持的模型不支持该参数。

instructions string (可选)

设置指令,参见指令控制

默认值:无默认值,不设置不生效。

长度限制:长度不得超过 1600 Token。

支持语言:仅支持中文和英文。

适用范围:该功能仅适用于千问3-TTS-Instruct-Flash-Realtime系列模型。

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(通用唯一标识符)。

{
  "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
  "type": "input_text_buffer.append",
  "text": "您好,我是千问。"
}

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(通用唯一标识符)。

{
  "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
  "type": "input_text_buffer.commit"
}

type string (必选)

事件类型,固定为input_text_buffer.commit

input_text_buffer.clear

用于清除缓冲区中的文本。服务端返回input_text_buffer.cleared 事件进行响应。

event_id string (必选)

客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。

{
  "event_id": "event_2728",
  "type": "input_text_buffer.clear"
}

type string (必选)

事件类型,固定为input_text_buffer.clear

session.finish

客户端发送 session.finish 事件通知服务端不再有文本输入,服务端将剩余音频返回,随后关闭连接。

event_id string (必选)

客户端生成的唯一事件ID。在单次WebSocket连接会话中必须保持唯一。强烈建议使用 UUID(通用唯一标识符)。

{
  "event_id": "event_2239",
  "type": "session.finish"
}

type string (必选)

事件类型,固定为session.finish