全部產品
Search
文件中心

Alibaba Cloud Model Studio:Qwen-TTS-Realtime WebSocket API 參考

更新時間:Jul 08, 2026

本文介紹通過 WebSocket 串連訪問 Qwen-TTS 即時語音合成服務的服務端點、要求標頭和互動流程。

使用者指南:關於模型介紹和選型建議請參見即時語音合成

Qwen-TTS Realtime API 基於 WebSocket 通訊協定。Java 和 Python 推薦通過 DashScope SDK 調用,可免去處理 WebSocket 細節;其他語言可使用 WebSocket 庫直接連接。

服務端點

WebSocket URL 固定如下,通過查詢參數 model 指定要調用的模型名稱:

新加坡

WebSocket URL:wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime?model=qwen3-tts-flash-realtime

華北2(北京)

WebSocket URL:wss://dashscope.aliyuncs.com/api-ws/v1/realtime?model=qwen3-tts-flash-realtime

重要

URL 必須使用 wss:// 協議。Authorization 在要求標頭中設定(參見要求標頭),模型通過 URL 查詢參數 model 指定。

要求標頭

要求標頭中需添加如下資訊:

參數

類型

是否必選

說明

Authorization

string

鑒權令牌,格式為 Bearer <your_api_key>,將 <your_api_key> 替換為實際的 API Key。

user-agent

string

用戶端標識,便於服務端追蹤來源。

X-DashScope-WorkSpace

string

阿里雲百鍊業務空間ID

重要

Authorization 鑒權在 WebSocket 握手階段驗證。如果 API Key 無效或缺失,握手將失敗並返回 HTTP 401/403 錯誤。

互動流程

用戶端事件和服務端事件的詳細說明,請參見用戶端事件服務端事件

支援兩種使用模式:

  • ServerCommit 模式:服務端智能判斷文本分段與合成時機,開發人員無需關心內部狀態切分。

  • Commit 模式:用戶端控制每一段文本的提交時間,需顯式調用 input_text_buffer.commit 觸發合成。

模式說明:
  • ServerCommit 模式下調用 input_text_buffer.append 多次,系統根據內部規則判斷合成起點。

  • 若在 ServerCommit 模式中主動調用 input_text_buffer.commit,表示立即合成當前緩衝內容,後續仍維持 ServerCommit 模式。

  • Commit 模式下僅調用 input_text_buffer.append 不會觸發合成,需明確調用 input_text_buffer.commit

qwen-tts

關鍵流程說明:

  1. 串連階段:用戶端發起 WebSocket 串連,服務端返回 session.created,表示會話已初始化。

  2. 配置會話:用戶端發送 session.update 事件設定音色、格式、模式等參數。

  3. 文本輸入階段:用戶端通過多次發送 input_text_buffer.append 添加文本到緩衝區。

  4. 觸發合成階段

    • ServerCommit 模式中系統自動判斷合成時機,或用戶端手動調用 input_text_buffer.commit 強制觸發。

    • Commit 模式中僅 input_text_buffer.commit 操作才會真正觸發語音合成流程。

  5. 音頻產生階段:服務端發出 response.created 表示任務已啟動,隨後分區返迴音頻 response.audio.delta(base64 編碼),直到 response.audio.done

  6. 會話結束階段:用戶端顯式調用 session.finish 通知服務端清理狀態,服務端返回 session.finished 後關閉串連。

串連建立後,服務端返回如下 session.created 事件:

{
    "event_id": "event_xxx",
    "type": "session.created",
    "session": {
        "object": "realtime.session",
        "mode": "server_commit",
        "model": "qwen3-tts-flash-realtime",
        "voice": "Cherry",
        "response_format": "pcm",
        "sample_rate": 24000,
        "id": "sess_xxx"
    }
}