語種識別功能用于識別音頻中語言種類,目前支持中、英、粵三個語種。
使用須知
支持的輸入格式:PCM編碼(無壓縮的PCM或WAV文件)、16 bit采樣位數、單聲道(mono)。
音頻時長限制小于60秒,建議實際有效時長大于5秒。
支持的音頻采樣率:8000 Hz。
服務地址
訪問類型 | 說明 | URL |
外網訪問 | 所有服務器均可使用外網訪問URL(SDK中默認設置了外網訪問URL,無需您設置)。 | wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1 |
阿里云上海ECS內網訪問 | 使用阿里云上海ECS(ECS地域為華東2(上海)),可使用內網訪問URL。 ECS的經典網絡不能訪問AnyTunnel,即不能在內網訪問語音服務;如果希望使用AnyTunnel,需要創建專有網絡在其內部訪問。 說明
| ws://nls-gateway-cn-shanghai-internal.aliyuncs.com:80/ws/v1 |
交互流程
1. 鑒權
客戶端在與服務端建立WebSocket連接時,使用Token進行鑒權。Token獲取請參見獲取Token概述。
2. 開始檢測
客戶端發起請求,服務端確認請求有效。其中在請求消息中進行參數設置,各參數通過SDK中CommonRequest對象的相關set方法設置,含義如下。
參數名稱 | 參數類型 | 參數說明 |
namespace | String | 命名空間,請在創建CommonRequest時設置為LanguageIdentification。 |
format | String | 音頻編碼格式,默認值:PCM。支持的格式:PCM、WAV。 |
sample_rate | Integer | 音頻采樣率,默認值:8000,單位:Hz。 |
language_type | String | 語種類型。
|
3. 接收識別結果
客戶端循環發送語音數據,持續接收識別結果。
onEvent事件表示服務端檢測到聲音事件,舉例如下:
{ "header":{ "namespace":"LanguageIdentification", "name":"TaskResult", "status":20000000, "message_id":"6b97ae72cf434e19aa797996fad9****", "task_id":"ce70e356743b47b9b80dc283bdf0****", "status_text":"Gateway:SUCCESS:Success." }, "payload":{ "language":"engl", "score":-0.5 } }
header對象參數說明:
參數名稱
參數類型
參數說明
namespace
String
消息所屬的命名空間。
name
String
消息名稱,TaskResult表示一個音頻事件。
status
Integer
狀態碼,表示請求是否成功,具體請參見服務狀態碼。
status_text
String
狀態消息。
task_id
String
任務全局唯一ID,請記錄該值,便于排查問題。
message_id
String
本次消息的ID。
payload對象參數說明:
參數名稱
參數類型
參數說明
type
Integer
語種。
mand:中文
engl:英文
cant:粵語
Empty:表示未識別出語種
score
Float
當前結果的置信度,取值范圍:[-1000.0,0.0]。值越大表示置信度越高。
4. 結束識別
通知服務端語音數據發送完成,服務端識別結束后通知客戶端檢測完畢。
服務狀態碼
在服務的每一次響應中,都包含status字段,即服務狀態碼。通用錯誤碼、網關錯誤碼、配置錯誤碼各種取值含義如下。
通用錯誤碼
錯誤碼
原因
解決辦法
40000001
身份認證失敗
檢查使用的令牌是否正確,是否過期。
40000002
無效的消息
檢查發送的消息是否符合要求。
40000004
空閑超時
確認是否長時間(10秒)沒有發送數據到服務端。
40000005
請求數量過多
檢查是否超過了并發連接數或者每秒鐘請求數。如果超過并發數,建議從免費版升級到商用版,或者商用版擴容并發資源。
40000000
默認的客戶端錯誤碼
檢查對應的錯誤消息。
40000010
試用期已結束,并且未開通商用版、或賬號欠費。
請登錄控制臺確認服務開通狀態以及賬戶余額。
41010120
客戶端超時錯誤
客戶端連續10秒及以上沒有發送數據,導致客戶端超時錯誤。
41160001
采樣率參數錯誤
檢查采樣率參數設置。
41160002
音頻格式參數設置錯誤
檢查音頻格式參數設置。
41160003
音頻解碼失敗
檢查音頻格式是否正常。
41160004
音頻時長過長
檢查音頻是否超過60秒。
網關錯誤碼
錯誤碼
原因
解決辦法
40010001
不支持的接口
請升級到最新的SDK。
40010002
不支持的指令
請升級到最新的SDK。
40010003
無效的指令
請升級到最新的SDK。
40010004
客戶端提前斷開連接
檢查是否在請求正常完成之前關閉了連接。
40010005
任務狀態錯誤
發送了當前任務狀態不能處理的指令。
配置錯誤碼
錯誤碼
原因
解決辦法
40020105
應用不存在
解析路由時找不到應用。
40020106
Appkey和Token不匹配
檢查應用Appkey是否正確,是否與令牌歸屬同一個賬號。
40020503
RAM用戶(子賬號)鑒權失敗
使用阿里云賬號對調用的RAM用戶(子賬號)授權POP API的訪問權限。