阿裏數加(1-2)api調用分析
https://data.aliyun.com/product/nls?spm=5176.doc30437.2.1.UPDABu
下面以最常用的”一句話識別”服務給大家做一個入門級的示例,為您介紹如何快速使用“智能語音交互”的各種服務。
1. 賬號和服務申請,獲取Access Key ID和Access Key Secret兩個數加認證參數。
2. 語音識別服務下的”一句話識別”服務支持的app_key如下表,選擇“社交領域”的app_key為nls-service。
一句話識別 app_key | 語音數據格式 | 結果返回方式 | 領域 |
---|---|---|---|
nls-service | 16kHz采樣 16bit 音頻流 | 非流式 | 社交聊天 |
nls-service-streaming | 16kHz采樣 16bit 音頻流 | 流式 | 社交聊天 |
nls-service-tv | 16kHz采樣 16bit 音頻流 | 非流式 | 家庭娛樂 |
nls-service-shopping | 16kHz采樣 16bit 音頻流 | 非流式 | 電商購物領域 |
nls-service-care | 16kHz采樣 16bit 音頻流 | 非流式 | 智能客服服務領域 |
註:
(1) “支持的結果返回方式”式包括“非流式”和“流式”兩種模式,“非流式”簡單來說就是用戶整句話說完後返回識別結果,“流式”模式下用戶一邊說話一邊返回識別結果。
(2) “一句話識別”支持的領域包括:社交聊天、家庭娛樂、電商購物、智能客服等。用戶可針對具體的使用場景選擇對應領域的app_key。
3. 下載JAVA SDK和DEMO,開始語音識別。
3.1 運行demo來測試語音服務
到“一句話識別”服務的Java SDK頁面下載對應的下載包,包括JAVA SDK和DEMO工程。
打開Java DEMO工程中的AsrDemo.java方法,將其中的app_key、Access Key ID、Access Key Secret 替換成自己的賬號信息,然後直接 run->java application即可。
NlsRequest req = new NlsRequest();
req.setApp_key("app_key"); // 替換為選定的app_key
req.setAsr_sc("pcm"); // 這裏為測試準備的語音文件是pcm語音文件。
req.authorize("Access Key ID", "Access Key Secret"); // 替換為在數加平臺申請到的"Access Key ID"和 "Access Key Secret"
若執行成功,將會輸出中【”result” : “你好小雲”】的log信息,至此,您已成功完成了一次語音識別服務的調用。
3.2 DEMO工程的簡要介紹
3.2.1 發送語音請求
由AsrDemo.java的方法startAsr()進行處理,首先提取語音數據,然後創建語音識別請求,將提取的語音分批發送至服務端。
分批發送的好處是可以在您進行語音收集的同時,服務器就開始處理識別,這樣當語音結束的時候可以最快地得到識別結果並返回。
3.2.2 接收語音識別結果
由AsrDemo.java的回調方法onMessageReceived()進行處理,用於監聽服務器的返回,在這個demo中,服務端返回的識別結果json字段參數如下:
{
"status" : "1",// 服務器狀態,0為失敗,非零為成功
"id" : "",
"finish" : "1",// 0為未結束,非零為結束,識別是否已經結束
"results" : {
"asr_out" : {
"result" : "你好小雲",// 語音識別結果
"status" : 1,
"finish" : 1,
"version" : "4.0"
},
"out" : {}//保留字段
},
"bstream_attached" : false,
"version" : "4.0"
}
參數中您可以重點關註字段 asr_out,其中的”result” : “你好小雲”即為語音識別結果。
阿裏數加(1-2)api調用分析