客户端事件

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

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

客户端事件

session.update

客户端在新建立的 WebSocket 连接上发送的第一个事件是 session.update。该事件用于更新本次会话的默认配置。建立连接时,服务端会返回此会话的默认输入输出配置。如需更新默认配置,建议在连接后立即发送此事件。服务端收到 session.update 事件后,会校验参数。若参数不合法,则返回错误;否则更新服务端会话配置并返回完整配置。

参数

类型

说明

type

string

事件类型,该事件下固定为session.update

event_id

string

本次事件的标识。

session

object

session的配置。

session.mode

string

使用的交互模式,可选值:

  • server_commit(默认)

  • commit

session.voice

string

语音合成所使用的音色。

支持:"Chelsie", "Serena", "Ethan", "Cherry"。音色效果请参见:支持的音频音色

session.response_format

string

模型输出音频的格式,当前只支持设置为"pcm"。

session.sample_rate

integer

模型输出音频的采样率,当前只支持设置为24000。

{
    "event_id": "event_123",
    "type": "session.update",
    "session": {
        "mode": "server_commit",
        "voice": "Chelsie",
        "response_format": "pcm",
        "sample_rate": 24000
    }
}

input_text_buffer.append

server_commit模式中,文本将追加到服务端的文本缓冲区;在commit模式中,文本将追加到客户端的文本缓冲区。

参数

类型

说明

type

string

事件类型,该事件下固定为input_text_buffer.append

event_id

string

本次事件的标识。

text

string

输入的请求文本。

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

input_text_buffer.commit

用于提交用户输入文本缓冲区,从而在对话中创建新的用户消息项。 如果输入的文本缓冲区为空,此事件将产生错误。处于"server_commit"模式时,用户提交此事件,表示立即合成之前的所有文本,服务器不再缓存文本。如果没有处于"commit"模式,客户端必须提交文本缓冲区才能创建用户消息项。提交输入文本缓冲区不会从模型创建响应,服务器将使用 input_text_buffer.committed 事件进行响应。

参数

类型

说明

type

string

事件类型,该事件下固定为input_text_buffer.commit

event_id

string

本次事件的标识。

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

session.finish

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

参数

类型

说明

type

string

事件类型,该事件下固定为session.finish

event_id

string

本次事件的标识。

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