百度語音識別REST API——經過使用Http網絡請求方式得到語音識別功能


百度語音識別經過REST API的方式給開發人員提供一個通用的HTTP接口,基於該接口,開發人員可以輕鬆的獲取語音識別能力,本文檔描寫敘述了使用語音識別服務REST API的方法。後端

長處:api

較之開發人員常常使用的獲取語音識別功能的方法,本方法最大的優點是輕量級。不需要在所開發的應用中集成不論什麼SDK開發工具包,也不需要在測試機中加入不論什麼識別引擎軟件,開發人員僅僅要了解Http網絡請求以及百度語音識別 REST API的使用規則。就能夠輕輕鬆鬆在本身的應用中使用語音識別相關的功能了。網絡

功能介紹:app

REST API支持整段錄音文件的識別,對錄音格式有必定的要求。支持語音識別控件:集成提示音、音量反饋動效整套交互的對話框控件,方便開發人員高速集成。
工具

原始PCM的錄音參數必須符合8k/16k採樣率、16bit位深、單聲道。支持的壓縮格式有:pcm(不壓縮)、wav、opus、speex、amr、x-flac。
開發工具

用法:編碼

註冊開放平臺及創新應用url

註冊方法可參見以前寫的百度語音識別開放平臺SDK用法一文。當中有具體的註冊方法敘述。spa

從管理控制檯進入建立的應用,例如如下圖所看到的,API Key(client_id)和Secret Key(client_secret)即顯示於當中, ID即爲應用id(appid)。
.net

依據百度OAuth的Client Credentials受權方式獲取access_token。百度OAuth的Client Credentials和其它受權方式的說明見百度OAuth介紹的「百度支持的OAuth受權」部分。


當中,grant_type的值固定爲client_credentials,client_id即爲(3)中截圖所看到的的 API Key的值,client_secret即爲截圖所看到的的Secret Key的值。更爲具體的介紹請參見Client Credentials受權說明。
響應例如如下所看到的,當中access_token字段即爲請求REST API所需的令牌, access_token有效期通常爲一個月,開發人員需要對access_token。進行有效性推斷,過時需又一次申請access_token。



API請求方式

 語音識別接口支持POST 方式
 眼下API僅支持整段語音識別的模式,即需要上傳整段語音進行識別
 語音數據上傳方式有兩種:隱示發送和顯示發送
 原始語音的錄音格式眼下僅僅支持評測8k/16k採樣率16bit位深的單聲道語音
 壓縮格式支持:pcm(不壓縮)、wav、opus、speex、amr、x-flac
 系統支持語言種類:中文(zh)、粵語(ct)、英文(en)
 正式地址:http://vop.baidu.com/server_api

語音上傳模型

語音數據和其它參數經過標準JSON格式串行化POST上傳。 JSON裏包含的參數:




當中。開發人員可以把語音數據放在JSON序列的「speech」字段中,需要將語音先進行base64編碼,並標明語音數據的原始長度。填寫「len」字段。也可以直接提供語音下載地址放在「url」字段中。並且提供識別結果的回調地址。放在「callback」參數中。所以「speech」和「len」參數綁定,「url」和「callback」參數綁定,這張組參數二選一填寫。假設都填。默認處理第一種。



表單類型在HTTP-HEADER裏的content-type代表,例:


Content-length請填寫JSON串的長度。
 上傳實例:


 注意事項:
1, len字段表示原始語音長度。不是base64編碼以後的長度。
2, speech和len字段綁定驗證,url和callback綁定驗證。兩組參數二選一必填。假設都填,默認第一種方式。
3。 假設採用base64編碼語音數據。數據量會增大1/3。
 顯示發送:
語音數據直接放在HTTP-BODY中,控制參數以及相關統計信息經過REST參數傳遞。REST參數說明:



語音數據的採樣率和壓縮格式在HTTP-HEADER裏的content-type代表,例:


Content-length請填寫原始語音長度。
 URL演示樣例:


下行接口定義

兩種上傳方式都返回統一的結果,採用 JSON格式封裝。假設識別成功,識別結果放在JSON的「result」字段中,統一採用utf-8方式編碼。



 識別成功返回case:
{\"err_no\":0,\"err_msg\":\"success.\",\"corpus_no\":\"15984125203285346378\",\"sn\":\"481D633F-73BA-726F-49EF-8659ACCC2F3D\",\"result\":[\"\\u6211\\u633a\\u5e05\\u554a\\uff0c\\u5e05\\u54e5\\uff0c\"]}
 識別錯誤返回case:
{"err_no":2000,"err_msg":"data empty.","sn":null}

錯誤碼解釋
33xx:系統內部模塊交互錯誤,服務此時可能不太穩定。
34xx:參數錯誤,請檢查上行參數。
30xx-32xx:後端錯誤。後端資源可能出現錯誤


由於篇幅所限,詳細用法在下篇文章介紹。

相關文章
相關標籤/搜索