1. 程式人生 > >阿裏數加(1-2)api調用分析

阿裏數加(1-2)api調用分析

-c demo spm 保留字 使用場景 sta 字段 3.2 app

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即可。

  1. NlsRequest req = new NlsRequest();
  2. req.setApp_key("app_key"); // 替換為選定的app_key
  3. req.setAsr_sc("pcm"); // 這裏為測試準備的語音文件是pcm語音文件。
  4. 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字段參數如下:

  1. {
  2. "status" : "1",// 服務器狀態,0為失敗,非零為成功
  3. "id" : "",
  4. "finish" : "1",// 0為未結束,非零為結束,識別是否已經結束
  5. "results" : {
  6. "asr_out" : {
  7. "result" : "你好小雲",// 語音識別結果
  8. "status" : 1,
  9. "finish" : 1,
  10. "version" : "4.0"
  11. },
  12. "out" : {}//保留字段
  13. },
  14. "bstream_attached" : false,
  15. "version" : "4.0"
  16. }

參數中您可以重點關註字段 asr_out,其中的”result” : “你好小雲”即為語音識別結果。

阿裏數加(1-2)api調用分析