实时多模态交互流程

本文介绍实时多模态服务端和客户端的交互流程。

VAD 模式

session.update事件的session.turn_detection 设为"server_vad"以启用 VAD 模式。在 VAD 模式下,服务端对传入的音频进行语音活动检测,并在检测到作出响应。此模式适用于客户端到服务器始终发送音频的情况,也是当前的默认模式。

server_vad

  • 服务端在检测到语音开始时发送input_audio_buffer.speech_started 事件。

  • 客户端随时可以选择通过发送 input_audio_buffer.append 事件将音频追加到缓冲区。

  • 服务端在检测到语音结束时发送input_audio_buffer.speech_stopped事件。

  • 服务端通过发送 input_audio_buffer.committed 事件来提交输入音频缓冲区。

  • 服务端发送 conversation.item.created 事件,其中包含从音频缓冲区创建的用户消息项。

Manual 模式

session.update事件的session.turn_detection 设为 None以启用 Manual 模式。此模式下,客户端通过显式发送input_audio_buffer.commitresponse.create事件请求服务器响应。适用于按下即说场景,如聊天软件中的发送语音。

manual

  • 客户端可以通过发送 input_audio_buffer.append 事件将音频追加到缓冲区。

  • 客户端通过发送 input_audio_buffer.commit事件来提交输入音频缓冲区。 该提交会在对话中创建一个新的用户消息项。

  • 服务器通过发送 input_audio_buffer.committed事件进行响应。

  • 服务器通过发送 conversation.item.created事件进行响应。