国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

HTML用javascrip在瀏覽器上實現語音輸入和語義理解功能(speex壓縮)

沈建明 / 3038人閱讀

摘要:返回的字串如下我要聽三國演義這本書正在努力搜索中,請稍等我要聽三國演義這本書三國演義通過解析這段,可以得到類型,用于查詢書名,是表示行為是播放。

基于javascript用olamisdk實現web端語音識別語義理解(speex壓縮)

轉載請注明原文地址:傳送

olami 開放平臺 sdk 除了支持語音識別功能外,更強大的在于支持語義理解功能,在 Android 平臺和 iOS 平臺都有示例 demo 供大家下載。

語音在線聽書demo:傳送

語音記賬demo:傳送

在 web 端,基于 JavaScript 用 olami 開放平臺 sdk 也可以實現語音識別語義理解。本文就實現了這樣一個小程序,web 客戶端本地用麥克風錄音,錄音的數據用 speex 壓縮,然后跨域向服務器發送請求,返回識別的語音和語義字符串并顯示。

先上圖:

如下圖剛載入的時候,未錄音前界面

點擊開始錄音button后

一句話說完自動檢測尾音結束標志然后壓縮上傳給服務器進行識別

將從服務器獲取的識別結果顯示到界面上

本例中說的語音是:“我要聽三國演義這本書”,用的是 android 平臺聽書 app 建立的語法。
返回的json字串如下:

{
    “data”: {
        “asr”: {
            “result”: “我要聽三國演義這本書”,
            “speech_status”: 0,
            “final”: true,
            “status”: 0
        },
        “nli”: [
            {
                “desc_obj”: {
                    “result”: “正在努力搜索中,請稍等”,
                    “status”: 0
                },
                “semantic”: [
                    {
                        “app”: “musiccontrol”,
                        “input”: “我要聽三國演義這本書”,
                        “slots”: [
                            {
                                “name”: “songname”,
                                “value”: “三國演義”
                            }
                        ],
                        “modifier”: [
                            “play”
                        ],
                        “customer”: “58df512384ae11f0bb7b487e”
                    }
                ],
                “type”: “musiccontrol”
            }
        ]
    },
    “status”: “ok”
}

通過解析這段 json,可以得到 app 類型,songname (用于查詢書名),modifier 是 play 表示行為是播放。

這段 json 的語法當然是用戶自定義的,獲得了 json 字串就可以解析得到程序需要的字段用于對應的操作,從而實現了語義理解功能。olami 開放平臺語法編寫介紹

下面來看看實現的 code,用 eclipse 建立 J2EE 工程 WebVoiceRecognize

初次搭建可以參考如下網站: 傳送

下面是建立的工程目錄結構,發布后,網頁打開運行在chrome或者QQ瀏覽器均可。

下面講述下 voiceRecognize.html 這個文件,其他都是 min.js,只需知道如何調用就可以了。



    
    
    voice recognize test 
    
     
      
          
     

    
        

點擊開始button錄音,點擊停止button停止錄音并進行識別

result:

瀏覽器載入的時候,先調用load()進行初始化

function load(){
setAuthorization(
                "http://cn.olami.ai/cloudservice/api",//serverurl
                "51a4bb56ba954655a4fc834bfdc46af1", //appkey             
                "asr",//api類型
                "68bff251789b426896e70e888f919a6d",//appSecret
                "nli");//seq
setCallBackFromServerResult(getResultFromServer);
}

initAudio()中初始化了recorder用于獲取麥克風資源做錄音使用。

setAuthorization函數,參數分別是

url :服務器地址
appkey:開放平臺注冊應用后獲得的appkey
api:api類型選asr為語音
appSecret:開放平臺注冊應用后獲得的appSecret
nli:為seq表示包含語音語義返回,為stt表示只有語音返回

setCallBackFromServerResult(getResultFromServer) 注冊錄音介紹并且識別出結果后的回調,在回調函數中可以把結果輸出到界面上。

當點擊開始錄音 button 后,調用

function StartRecording()
{
      // start recording
      if (audioRecorder == null)
      {
         initAudio();   
         alert("need initialize media");    
      }        
      audioRecorder.clear();
      audioRecorder.record();  
      recording = true;  
      bRecorded = false;
      ToggleLabels(); 
      RegisterCallBackToRecorder(); //注冊recoder回調        
}

當在錄音的js代碼中,會自動檢測尾音結束,然后回調注冊的函數speexEncode (),點擊停止錄音button一樣調用這個函數

window.speexEncode =  function()
 {
    exportSpeex();      
 };


  function exportSpeex()
{
    recording = false;
    bRecorded = true;
    ToggleLabels();//更新界面的button狀態
    audioRecorder.stop();               
    audioRecorder.exportPCM(uploadSpeexData);
} 

audioRecorder.exportPCM(uploadSpeexData) 實現了將錄好的 16Kpcm 語音壓縮成 speex 格式并上傳到服務器,從服務器取得結果后調用注冊的

setCallBackFromServerResult(getResultFromServer)函數,然后再函數 getResultFromServer 中進行結果的輸出顯示。

代碼下載地址:

https://github.com/ls0609/Web...

相關網站鏈接:

olami開放平臺語法官方介紹:https://cn.olami.ai/wiki/?mp=...
olami開放平臺語法編寫簡介:http://blog.csdn.net/ls0609/a...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84627.html

相關文章

  • HTMLjavascrip覽器上實語音輸入語義理解功能speex壓縮

    摘要:返回的字串如下我要聽三國演義這本書正在努力搜索中,請稍等我要聽三國演義這本書三國演義通過解析這段,可以得到類型,用于查詢書名,是表示行為是播放。 基于javascript用olamisdk實現web端語音識別語義理解(speex壓縮) 轉載請注明原文地址:傳送 olami 開放平臺 sdk 除了支持語音識別功能外,更強大的在于支持語義理解功能,在 Android 平臺和 iOS 平臺都...

    darkbug 評論0 收藏0
  • GitChat · 人工智能 | 語音自然語言控制智能家居——實例分享

    摘要:代碼下載語音和自然語言控制智能家居輸出協議實例源碼注下載代碼后請仔細閱讀說明文檔。表示處理來自接口的語義結果錄音處理為文字處理為是和的數據傳遞媒介,中會將需要的控件傳過去用來處理智能家居的語法解析和命令輸出。 GitChat 作者:晶晶郭原文:用語音和自然語言控制智能家居——實例分享關注公眾號:GitChat 技術雜談,一本正經的講技術 前言 ZigBee作為一種短距離、低功耗的無線通...

    妤鋒シ 評論0 收藏0

發表評論

0條評論

沈建明

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<