成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

darkbug / 1021人閱讀

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

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

轉(zhuǎn)載請注明原文地址:傳送

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

語音在線聽書demo:傳送

語音記賬demo:傳送

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

先上圖:

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

點(diǎn)擊開始錄音button后

一句話說完自動檢測尾音結(jié)束標(biāo)志然后壓縮上傳給服務(wù)器進(jìn)行識別

將從服務(wù)器獲取的識別結(jié)果顯示到界面上

本例中說的語音是:“我要聽三國演義這本書”,用的是 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 的語法當(dāng)然是用戶自定義的,獲得了 json 字串就可以解析得到程序需要的字段用于對應(yīng)的操作,從而實現(xiàn)了語義理解功能。olami 開放平臺語法編寫介紹

下面來看看實現(xiàn)的 code,用 eclipse 建立 J2EE 工程 WebVoiceRecognize

初次搭建可以參考如下網(wǎng)站: 傳送

下面是建立的工程目錄結(jié)構(gòu),發(fā)布后,網(wǎng)頁打開運(yùn)行在chrome或者QQ瀏覽器均可。

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



    
    
    voice recognize test 
    
     
      
          
     

    
        

點(diǎn)擊開始button錄音,點(diǎn)擊停止button停止錄音并進(jìn)行識別

result:

瀏覽器載入的時候,先調(diào)用load()進(jìn)行初始化

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

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

setAuthorization函數(shù),參數(shù)分別是

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

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

當(dāng)點(diǎn)擊開始錄音 button 后,調(diào)用

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

當(dāng)在錄音的js代碼中,會自動檢測尾音結(jié)束,然后回調(diào)注冊的函數(shù)speexEncode (),點(diǎn)擊停止錄音button一樣調(diào)用這個函數(shù)

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


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

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

setCallBackFromServerResult(getResultFromServer)函數(shù),然后再函數(shù) getResultFromServer 中進(jìn)行結(jié)果的輸出顯示。

代碼下載地址:

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

相關(guān)網(wǎng)站鏈接:

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/51107.html

相關(guān)文章

  • HTMLjavascrip覽器上實現(xiàn)語音輸入語義理解功能speex壓縮

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

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

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

    妤鋒シ 評論0 收藏0

發(fā)表評論

0條評論

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