實時語音評測:實時語音口語評測服務可實現對連續(xù)音頻流的實時識別,并最終對用戶的讀音進行評測。
Hi,您好,歡迎使用有道智云智能語音評測服務。
如果您想快速體驗服務,建議您前往 實時語音評測體驗中心 或者在體驗中心右下側找到小程序二維碼,掃描進行體驗。
本文檔主要針對需要集成實時語音識別服務HTTP API的開發(fā)工程師
,詳細描述有道智云實時語音評測能力及如何集成的技術內容。
如果您有與我們商務合作的需求,可以通過以下方式聯系我們:
商務郵箱: AIcloud_Business@corp.youdao.com
如果您對文檔內容有任何疑問,可以通過以下幾種方式聯系我們:
客服QQ:1906538062
智云語音技術交流QQ群:861723255
聯系郵箱: zhiyun@corp.youdao.com
溫馨提示:
應用ID
和應用密鑰
;如果您還沒有,請按照 新手指南 獲取。有道實時評測服務對用戶發(fā)音的完整度、流利度、準確度進行全方位評測,并能對發(fā)音錯誤、缺陷進行定位。
支持的音頻格式為16K 采樣率、16bits 精度的 pcm_s16le 音頻,目前支持中、英文。
服務接口的調用分為認證、實時通信兩階段。
接口地址:
wss://openapi.youdao.com/stream_capt?{請求參數}
請求參數格式:
key1=value1&key2=value2&key3=value3&key4=value4
音頻格式要求:
格式支持:wav(不壓縮、pcm編碼)
采樣率:推薦16k。
編碼:16bit位深的單聲道
調用API需要向接口發(fā)送以下字段來訪問服務。
字段名 | 類型 | 含義 | 必填 | 備注 | |
---|---|---|---|---|---|
appKey | String | 是 | 已申請的應用ID | ID | |
salt | String | 是 | 隨機數 | uuid | |
curtime | String | 是 | 時間戳,1970-1-01 00:00:00 至當前的秒數 | 1522292849 | |
sign | String | 是 | 加密數字簽名。 | ||
signType | String | 是 | 數字簽名類型 | v4 | |
langType | String | 是 | 語言選擇,接口目前支持中文(zh-CHS)、英文(en) | zh-CHS, en | |
format | String | 是 | 音頻格式,支持wav | wav | |
channel | String | 是 | 聲道,支持1 | 1 | |
version | String | 是 | api版本 | v1 | |
rate | String | 是 | 采樣率 | 16000 | |
vadHeadSil | String | 否 | 前端靜音檢測,單位ms.范圍:[100,10000] | 1000 | |
vadTailSil | String | 否 | 后端靜音檢測,單位ms.范圍:[100,10000] | 2000 | |
strictness | String | 否 | 注:該參數僅中文接口支持。打分嚴格程度 1(兒童) 2(中等)3(嚴格 成人母語者),默認:2 | 1,2,3 |
簽名
sign
生成方法如下:
sign=sha256(應用ID
+salt
+curtime
+應用密鑰
)。
響應結果是以json形式輸出,包含字段如下表所示:
字段 | 含義 | 說明 |
---|---|---|
errorCode | String | 狀態(tài)碼,詳見狀態(tài)碼說明 |
action | String | 狀態(tài)標識,started:握手,capt:評測,error:錯誤,close:關閉 |
requestId | String | 請求ID |
result | String | 識別結果數據 |
closeCode | String | 關閉的狀態(tài)碼 0正常關閉;1:前置靜音超時;2:后置靜音超時 |
服務端通過 text message 返回 json字符串的認證結果,參數示例:
成功:
{
"result": [],
"action": "started",
"errorCode": "0"
}
失?。?/p>
{
"result": "[]",
"action": "error",
"errorCode": "202"
}
認證成功之后,進入實時通信階段,實時通信分為兩個階段:
1) 客戶端發(fā)送待評測文本,如果不發(fā)送,會返回沒有發(fā)送評測文本的異常
2)客戶端發(fā)送音頻流和結束標識,并接收轉寫結果或錯誤。
此階段客戶端通過 text message 發(fā)送評測文本。示例:
{"text":"have a good day"}
文本長度限制:英文不超過1000單詞。音頻時長不超過120s。
此階段客戶端通過 binary message 發(fā)送音頻流,內容為音頻的二進制數據,此過程的發(fā)送頻率將影響文字結果展示的實時性。
建議以 200ms 間隔發(fā)送音頻數據,若間隔超時 15s 以上,服務端將停止識別。
客戶端完成所有音頻數據的發(fā)送后,需發(fā)送一個特殊的 binary message 到服務端作為音頻流
發(fā)送結束的標識,內容為:
{"end": "true"}
響應結果是以json形式輸出,包含字段如下表所示:
字段 | 含義 |
---|---|
errorCode | 識別結果錯誤碼,一定存在。 詳細信息可見 錯誤代碼列表 |
refText | 請求的文本 |
start | 音頻中句子開始時間,單位是秒 |
end | 音頻中句子結束時間,單位是秒 |
isFinal | 是否是最后一次返回 |
integrity | 句子完整度得分 |
fluency | 句子流利度得分 |
pronunciation | 句子準確度得分 |
speed | 語速,單詞/分鐘 |
overall | 句子綜合評分 |
words | 單詞評分數組 |
-word | 單詞 |
-index | 詞序,從0開始 |
-start | 單詞開始時間,單位是秒 |
-end | 單詞結束時間,單位是秒 |
-pronunciation | 單詞準確度得分 |
-phonemes | 音素數組 |
--phoneme | 音素 |
--start | 音素開始時間,單位是秒 |
--end | 音素結束時間,單位是秒 |
--judge | 判斷音素是否錯誤,true為發(fā)音正確,false為發(fā)音錯誤,同時calibration給出提示 |
--calibration | 如果發(fā)音錯誤,提示用戶該發(fā)音像什么 |
--prominence | 重音程度,分數越高,當前音標越可能是重音,分數在[0,1] |
--stressRef | 元音重音參考/標準答案,如果為true,說明參考答案認為該元音應該發(fā)重音,輔音時無意義 |
--stressDetect | 在一個單詞中,用戶該音標發(fā)音為重音 |
{
"result": {
"refText": "day",
"pronunciation": 73.799362,
"start": 1.530000,
"words": [{
"pronunciation": 73.799362,
"start": 1.530000,
"index": 3,
"end": 1.950000,
"word": "day",
"phonemes": [{
"stressDetect": false,
"pronunciation": 48.216797,
"phoneme": "d",
"start": 1.530000,
"end": 1.650000,
"judge": false,
"calibration": "e",
"prominence": 0.920839,
"stressRef": false
}, {
"stressDetect": false,
"pronunciation": 99.381935,
"phoneme": "e",
"start": 1.680000,
"end": 1.950000,
"judge": true,
"calibration": "e",
"prominence": 1.000000,
"stressRef": false
}]
}],
"fluency": 86.899673,
"speed": 133.333313,
"integrity": 99.999992,
"service": "capt",
"overall": 92.249207,
"end": 1.950000,
"isFinal": false,
"status": "success"
},
"requestId": "9ad0101c-25f1-4336-90c2-e15d5c748e86",
"errorCode": "0",
"action": "capt"
}
目前支持中英文的語音評測。
語言 | 代碼 |
---|---|
英文 | en |
中文 | zh-CHS |
支持格式 | 單次最大請求時長(s) | 支持語言 |
---|---|---|
wav | 120 | 中、英 |
錯誤碼 | 含義 |
---|---|
101 | 缺少必填的參數,首先確保必填參數齊全,然后,確認參數書寫是否正確。 |
102 | 不支持的語言類型 |
103 | 翻譯文本過長 |
104 | 不支持的API類型 |
105 | 不支持的簽名類型 |
106 | 不支持的響應類型 |
107 | 不支持的傳輸加密類型 |
108 | 應用ID無效,注冊賬號,登錄后臺創(chuàng)建應用并完成綁定,可獲得應用ID和應用密鑰等信息 |
110 | 無相關服務的有效實例,應用沒有綁定服務實例,可以新建服,綁定服務。注:某些服務的結果發(fā)音需要tts服務,需要在控制臺創(chuàng)建語音合成服務綁定應用后方能使用。 |
111 | 開發(fā)者賬號無效 |
112 | 請求服務無效 |
113 | q不能為空 |
201 | 解密失敗,可能為DES,BASE64,URLDecode的錯誤 |
202 | 簽名檢驗失敗,如果確認應用ID和應用密鑰的正確性,仍返回202,一般是編碼問題。請確保翻譯文本 q 為UTF-8編碼. |
203 | 訪問IP地址不在可訪問IP列表 |
205 | 請求的接口與應用的平臺類型不一致,確保接入方式(Android SDK、IOS SDK、API)與創(chuàng)建的應用平臺類型一致。如有疑問請參考入門指南 |
206 | 因為時間戳無效導致簽名校驗失敗 |
207 | 重放請求 |
303 | 服務端的其它異常 |
304 | 會話閑置太久超時 |
401 | 賬戶已經欠費停止 |
9001 | 不支持的語音格式 |
9002 | 不支持的語音采樣率 |
9003 | 不支持的語音聲道 |
9004 | 不支持的語音上傳類型 |
9005 | 不支持的語音識別 Language類型 |
9301 | ASR識別失敗 |
9303 | 服務器內部錯誤 |
9411 | 訪問頻率受限(超過最大調用次數) |
9412 | 超過最大處理語音長度 |
403507 | 沒有發(fā)送文本 |
403508 | 文本過長 |
403512 | 15s沒有發(fā)送消息 |
403514 | 發(fā)送音頻過短,請超過 |