日前因工作需求,着手研究了語音識別技術,發現github上有網友發布了一款叫做voix.js的javascript框架。在拜讀voix.js的源碼后發現了不少問題,於是自己寫了一款語音識別框架MyVoix。
話不多說,下面將介紹MyVoix框架的使用。首先敬上MyVoix源碼地址。
使用前和別的js庫一樣,我們需要引入myvoix.js文件
1 <script src="myvoix.js"></script>
上面的代碼是傳統的加載javascript文件的方法,當然你也可以使用javascript代碼加載myvoix.js文件,關於javascript文件的加載機制已經有很多文章涉及到了,這里就不加贅述了。你只需要確認myvoix文件加載完畢后再使用里面的方法即可。
使用myvoix.js中的方法,我們需要首先實例化一個MyVoix的對象。
var _myVoix = new MyVoix(undefined,undefined,true);
MyVoix實例化的時候有三個參數
第一個參數:用於傳入 webkitSpeechRecognition 對象的各種配置,具體參數可以參考WebSpeech的API文檔。
第二個參數:用於傳入MyVoix中smart learning模塊記憶的數據,之后我們會詳細解讀smart learning模塊。
第三個參數:是否一直保持語音監聽,通常情況下在完成一次語音檢測后,webkitSpeechRecognition對象會停止偵測語音輸入。
在實例化_myVoix對象的時候,構造函數會內部執行‘開始監聽語音輸入’的函數,如果沒用開啟第三個參數‘一直保持語音監聽’。在結束一次偵聽后,可以使用以下代碼再次開啟語音監聽。
_myVoix.Recognition.start();
對應的,你可以調用stop方法停止語音監聽。
_myVoix.Recognition.stop();
在實例化_myVoix后,我們需要綁定語音指令已經對應的方法。下例中,我們為一個自定義的myfunc方法綁定各種語音指令。
_myVoix.bind('go',myfunc);
值得一提的是,MyVoix支持語音指令的批量綁定
_myVoix.bind(['go','start'],myfunc);
在解綁方法的時候,我們還是只能一個個來。
_myVoix.unbind('go',myfunc);
到此為止,你已經可以使用MyVoix執行語音識別了。下一章我們將進一步帶你了解MyVoix,提升你的語音識別的精准度。