本文介紹通過 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 |
是 |
鑒權令牌,格式為 |
|
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。
關鍵流程說明:
-
串連階段:用戶端發起 WebSocket 串連,服務端返回
session.created,表示會話已初始化。 -
配置會話:用戶端發送
session.update事件設定音色、格式、模式等參數。 -
文本輸入階段:用戶端通過多次發送
input_text_buffer.append添加文本到緩衝區。 -
觸發合成階段:
-
ServerCommit 模式中系統自動判斷合成時機,或用戶端手動調用
input_text_buffer.commit強制觸發。 -
Commit 模式中僅
input_text_buffer.commit操作才會真正觸發語音合成流程。
-
-
音頻產生階段:服務端發出
response.created表示任務已啟動,隨後分區返迴音頻response.audio.delta(base64 編碼),直到response.audio.done。 -
會話結束階段:用戶端顯式調用
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"
}
}