本文介绍实时多模态服务端和客户端的交互流程。
VAD 模式
将session.update事件的session.turn_detection
设为"server_vad"
以启用 VAD 模式。在 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.commit
和response.create
事件请求服务器响应。适用于按下即说场景,如聊天软件中的发送语音。
客户端可以通过发送
input_audio_buffer.append
事件将音频追加到缓冲区。客户端通过发送
input_audio_buffer.commit
事件来提交输入音频缓冲区。 该提交会在对话中创建一个新的用户消息项。服务器通过发送
input_audio_buffer.committed
事件进行响应。服务器通过发送
conversation.item.created
事件进行响应。