Skip to main content
即時多模態

用戶端事件

本文介紹 Qwen-Omni-Realtime API 的用戶端事件。

相關文檔:即時多模態

session.update

用戶端建立 WebSocket 串連後,需首先發送該事件,用於更新會話的預設配置。服務端收到 session.update 事件後會校正參數。如果參數不合法,則返回錯誤;如果參數合法,則更新並返回完整的配置。
typestring(必選)事件類型,固定為session.updatesessionobject(可選)會話配置。

屬性

modalitiesarray(可選)模型輸出模態設定,可選值:
  • ["text"] 僅輸出文本。
  • ["text","audio"](預設值) 輸出文本與音頻。
voicestring(可選)模型產生音訊音色,支援的音色參見音色列表預設音色:
  • Qwen3-Omni-Flash-Realtime:Cherry
  • Qwen-Omni-Turbo-Realtime:Chelsie
input_audio_formatstring(可選)使用者輸入音頻格式,當前僅支援設為pcm16output_audio_formatstring(可選)輸出音頻格式,當前僅支援設為pcm24smooth_outputboolean|null(可選)僅在使用 Qwen3-Omni-Flash-Realtime系列模型時生效。是否開啟口語化回複風格。可選值:
  • true(預設值):獲得口語化的回複;
  • false:獲得更書面化、正式的回複;
    難以朗讀的內容可能效果不好。
  • null:模型自動選擇口語化或書面化的回複風格。
instructionsstring(可選)系統訊息,用於設定模型的目標或角色。turn_detectionobject(可選)語音活動檢測(VAD)的配置。設定為 null 表示禁用 VAD,由使用者手動觸發模型響應。若未提供本欄位,系統將使用以下預設參數啟用 VAD。
typestring(可選)服務端VAD類型,需設定為server_vad。預設值為server_vadthresholdfloat(可選)VAD的靈敏度。值越低,VAD越敏感,更容易將微弱聲音(包括背景雜音)識別為語音;值越高,越不敏感,需要更清晰、音量更大的語音才能觸發。取值範圍在[-1.0, 1.0],預設值為 0.5。silence_duration_msinteger(可選)語音結束後需保持靜音的最短時間,逾時即觸發模型響應。值越低,響應越快,但可能在語音短暫停頓時誤觸發模型響應。預設值為800,參數範圍[200, 6000]。
{
    "event_id": "event_ToPZqeobitzUJnt3QqtWg",
    "type": "session.update",
    "session": {
        "modalities": [
            "text",
            "audio"
        ],
        "voice": "Chelsie",
        "input_audio_format": "pcm16",
        "output_audio_format": "pcm24",
        "instructions": "你是某五星級酒店的AI客服專員,請準確且友好地解答客戶關於房型、設施、價格、預訂政策的諮詢。請始終以專業和樂於助人的態度回應,杜絕提供未經證實或超出酒店服務涵蓋範圍的資訊。",
        "turn_detection": {
            "type": "server_vad",
            "threshold": 0.5,
            "silence_duration_ms": 800
        }
    }
}

response.create

response.create 事件用於指示服務端建立模型響應。在VAD模式下,服務端會自動建立模型響應,無需發送該事件。 服務端使用 response.created 事件、一個或多個項和內容事件(如 conversation.item.createdresponse.content_part.added)進行響應,最後用一個 response.done 事件表示響應已完成。
typestring(必選)事件類型,固定為response.create
{
    "type": "response.create",
    "event_id": "event_1718624400000"
}

response.cancel

用戶端發送此事件用以取消進行中的響應。如果沒有任何響應可供取消,服務端將響應錯誤事件。
typestring(必選)事件類型,固定為response.cancel
{
    "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
    "type": "response.cancel"
}

input_audio_buffer.append

用於將音頻位元組追加到輸入音頻緩衝區。
typestring(必選)事件類型,固定為input_audio_buffer.appendaudiostring(必選)Base 64 編碼的音頻資料。
{
    "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
    "type": "input_audio_buffer.append",
    "audio": "UklGR..."
}

input_audio_buffer.commit

用於提交使用者輸入音頻緩衝區,在對話中建立新的使用者訊息項。 如果輸入的音頻緩衝區為空白,服務端會返回錯誤事件。
  • VAD 模式:用戶端不需要發送此事件,服務端會自動認可音頻緩衝區。
  • Manual 模式:用戶端必須提交音頻緩衝區才能建立使用者訊息項。
提交輸入音頻緩衝區不會從模型建立響應,服務端將使用 input_audio_buffer.committed 事件進行響應。
如果用戶端發送過input_image_buffer.append事件,input_audio_buffer.commit 事件會將映像緩衝區一起提交。
typestring(必選)事件類型,固定為input_audio_buffer.commit
{
    "event_id": "event_B4o9RHSTWobB5OQdEHLTo",
    "type": "input_audio_buffer.commit"
}

input_audio_buffer.clear

用於清除緩衝區中的音頻位元組。服務端發送input_audio_buffer.cleared 事件進行響應。
typestring(必選)事件類型,固定為input_audio_buffer.clear
{
    "event_id": "event_xxx",
    "type": "input_audio_buffer.clear"
}

input_image_buffer.append

用於將映像資料添加到映像緩衝區。映像可來自本地檔案,或從視頻流即時採集。 目前對圖片輸入有以下限制:
  • 映像格式必須為 JPG 或 JPEG。建議解析度為 480p 或 720p以獲得最佳效能,最高不超過 1080p;
  • 單張圖片大小不大於500KB(Base64編碼前);
  • 圖片資料需要經過Base64編碼;
  • 以不超過每秒 2 張的頻率向服務端發送映像;
  • 發送 input_image_buffer.append 事件前,至少發送過一次 input_audio_buffer.append 事件。
映像緩衝區與音頻緩衝區一起通過input_audio_buffer.commit事件提交。
typestring(必選)事件類型,固定為input_image_buffer.appendimagestring(必選)Base 64 編碼的映像資料。
{
    "event_id": "event_xxx",
    "type": "input_image_buffer.append",
    "image": "xxx"
}