即時語音辨識-千問服務通過 WebSocket 通訊協定,接收即時音頻流並即時轉寫。支援VAD 模式和Manual 模式互動流程。
使用者指南:關於模型介紹和選型建議請參見語音辨識,範例程式碼請參見即時語音辨識。
服務端點
WebSocket URL 固定如下,通過查詢參數 model 指定要調用的模型名稱(將 <model_name> 替換為實際的模型):
新加坡
wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
調用時請將WorkspaceId替換為真實的Workspace ID。
華北2(北京)
wss://dashscope.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
新加坡地區的舊版網域名稱 wss://dashscope-intl.aliyuncs.com 即將下線,請及時遷移到新版網域名稱 wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com。
URL 必須使用 wss:// 協議。Authorization 在要求標頭中設定(參見要求標頭),模型通過 URL 查詢參數 model 指定。
要求標頭
要求標頭中需添加如下資訊:
|
參數 |
類型 |
是否必選 |
說明 |
|
Authorization |
string |
是 |
鑒權令牌,格式為 |
|
user-agent |
string |
否 |
用戶端標識,便於服務端追蹤來源。 |
|
X-DashScope-WorkSpace |
string |
否 |
阿里雲百鍊業務空間ID。 |
|
X-DashScope-DataInspection |
string |
否 |
是否啟用資料合規檢測功能。預設不傳或設為 |
Authorization 鑒權在 WebSocket 握手階段驗證。如果 API Key 無效或缺失,握手將失敗並返回 HTTP 401/403 錯誤。
互動流程
用戶端事件和服務端事件的詳細說明,請參見用戶端事件和服務端事件。
支援兩種互動模式:
-
VAD 模式(預設):服務端自動檢測語音的起點和終點(斷句),適用於即時對話、會議記錄等情境。
-
Manual 模式:由用戶端控制斷句,適用於用戶端能明確判斷語句邊界的情境,如聊天軟體中的發送語音。
VAD 模式(預設)
服務端自動檢測語音的起點和終點(斷句)。開發人員只需持續發送音頻流,服務端會在檢測到一句話結束時自動返回最終識別結果。此模式適用於即時對話、會議記錄等情境。
啟用方式:配置用戶端session.update事件的session.turn_detection參數。
-
用戶端通過發送
input_audio_buffer.append事件將音頻追加到緩衝區。 -
服務端在檢測到語音時返回
input_audio_buffer.speech_started事件。注意:如果用戶端尚未收到該事件,就直接發送
session.finish結束會話,服務端會直接返回session.finished事件,隨後用戶端需主動中斷連線。 -
用戶端繼續發送
input_audio_buffer.append事件提交音頻。 -
用戶端在音頻提交完後,發送
session.finish事件通知服務端結束當前會話。 -
服務端在檢測到語音結束時返回
input_audio_buffer.speech_stopped事件。 -
服務端返回
input_audio_buffer.committed事件。 -
服務端返回
conversation.item.created事件。 -
服務端返回
conversation.item.input_audio_transcription.text事件,其中包含語音辨識即時結果。 -
服務端返回
conversation.item.input_audio_transcription.completed事件,其中包含語音辨識最終結果。 -
服務端返回
session.finished事件,通知用戶端識別結束,此時用戶端需要主動中斷連線。
Manual 模式
由用戶端控制斷句。用戶端需要發送完一整句話的音頻後,再發送一個input_audio_buffer.commit事件來通知服務端。此模式適用於用戶端能明確判斷語句邊界的情境,如聊天軟體中的發送語音。
啟用方式:將用戶端session.update事件的session.turn_detection設為null。
-
用戶端通過發送
input_audio_buffer.append事件將音頻追加到緩衝區。 -
用戶端通過發送
input_audio_buffer.commit事件來提交輸入音頻緩衝區。 該提交會在對話中建立一個新的使用者訊息項。 -
用戶端發送
session.finish事件通知服務端結束當前會話。 -
服務端返回
input_audio_buffer.committed事件進行響應。 -
服務端返回
conversation.item.input_audio_transcription.text事件,其中包含語音辨識即時結果。 -
服務端返回
conversation.item.input_audio_transcription.completed事件,其中包含語音辨識最終結果。 -
服務端返回
session.finished事件,通知用戶端識別結束,此時用戶端需要主動中斷連線。