# [speech]()
Speech模塊管理語音輸入功能,提供語音識別功能,可支持用戶通過麥克風設備進行語音輸入內容。通過plus.speech可獲取語音輸入管理對象。
### 方法:
- [startRecognize](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.startRecognize): 啟動語音識別
- [stopRecognize](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.stopRecognize): 停止語音識別
### 對象:
- [SpeechRecognizeOption](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.SpeechRecognizeOption): JSON對象,語音識別參數
### 回調方法:
- [RecognitionSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.RecognitionSuccessCallback): 語音識別成功回調
- [RecognitionErrorCallback ](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.RecognitionErrorCallback%20): 語音識別失敗回調
### 權限:
permissions
~~~
"Speech": {
"description": "訪問語音插件"
}
~~~
# [startRecognize]()
啟動語音識別
~~~
void plus.speech.startRecognize( options, successCB, errorCB );
~~~
### 說明:
啟動語音識別時調用,當語音識別成功后通過successCallback回調返回識別出文本內容,調用語音識別失敗則通過errorCallback回調返回。
### 參數:
- options: *( [SpeechRecognizeOption](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.SpeechRecognizeOption) ) 必選 *語音識別參數,用于控制語音引擎的各種技術參數
- successCB: *( [RecognitionSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.RecognitionSuccessCallback) ) 可選 *語音識別成功回調
當語音識別引擎識別數據成功時的回調函數,并返回識別出的文本內容。
- errorCB: *( [RecognitionErrorCallback](http://www.dcloud.io/docs/api/zh_cn/speech.shtml#plus.speech.RecognitionErrorCallback) ) 可選 *語音識別失敗時的回調函數
當語音識別引擎識別數據失敗時的回調函數,并返回失敗的錯誤信息。
### 返回值:
void : 無
### 示例:
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Speech Example</title>
<script type="text/javascript">
// 監聽plusready事件
document.addEventListener( "plusready", function(){
// 擴展API加載完畢,現在可以正常調用擴展API
// ...
}, false );
var text=null;
function startRecognize () {
var options = {};
options.engine = 'iFly';
text = "";
alert( "開始語音識別:" );
plus.speech.startRecognize( options, function ( s ) {
text += s;
}, function ( e ) {
alert( "語音識別失敗:"+e.message );
} );
}
</script>
</head>
<body>
<button onclick="startRecognize">開始識別</button><br/>
<button onclick="alert(text);">識別內容</button>
</body>
</html>
~~~
# [stopRecognize]()
停止語音識別
~~~
void plus.speech.stopRecognize();
~~~
### 說明:
當語音識別完成時或用戶取消語音識別時調用,調用此方法將導致errorCallback回調函數的調用。
### 參數:
無
### 返回值:
void : 無
### 示例:
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Speech Example</title>
<script type="text/javascript">
// 監聽plusready事件
document.addEventListener( "plusready", function(){
// 擴展API加載完畢,現在可以正常調用擴展API
// ...
}, false );
var text=null;
function startRecognize () {
var options = {};
options.engine = 'iFly';
text = "";
alert( "開始語音識別:" );
plus.speech.startRecognize( options, function ( s ) {
text += s;
}, function ( e ) {
alert( "語音識別失敗:"+e.message );
} );
setTimeout( stopRecognize, 10000 );
}
function stopRecognize(){
plus.speech.stopRecognize();
}
</script>
</head>
<body>
<button onclick="startRecognize">開始識別(10s后自動關閉)</button><br/>
<button onclick="alert(text);">識別內容</button>
</body>
</html>
~~~
# [SpeechRecognizeOption]()
JSON對象,語音識別參數
~~~
interface plus.speech.SpeechRecognizeOption {
attribute DOMString engine;
attribute DOMString service;
attribute Number timeout;
attribute DOMString lang;
attribute Boolean continue;
attribute Number nbest;
attribute Boolean userInterface;
attribute EventHandler onstart;
attribute EventHandler onend;
attribute EventHandler onaudiostart;
attribute EventHandler onaudioend;
attribute EventHandler onrecognizestart;
attribute EventHandler onrecognizeend;
}
~~~
### 說明:
控制語音識別引擎內部參數,在JS中為JSON對象,在啟動語音識別時使用。
### 屬性:
- engine: *(DOMString 類型)*語音識別引擎標識
用于兼容多語音識別引擎的瀏覽器,建議使用語音識別廠商的產品名稱,如未設置或設置不正確則使用瀏覽器默認的語音識別引擎。
- service: *(DOMString 類型)*語音識別引擎服務器地址
可使用url地址或ip地址,如service:192.168.1.99指定定制的語音識別引擎服務器。默認值為瀏覽器內置服務器地址。
- timeout: *(Number 類型)*語音識別超時時間
語音識別超時的時間,單位為ms,如timeout:60000,默認值為10s。
- lang: *(DOMString 類型)*語音識別引擎的語言
用于定義語音識別引擎的語言,其取值需符合W3C的Language codes規范。默認值為瀏覽器的默認語言。
- continue: *(Boolean 類型)*語音識別是否采用持續模式
設置為true表示語音引擎不會根據語音輸入自動結束,識別到文本內容將多次調用successCallback函數返回,如果需要結束語音識別則必須調用stopRecognize接口,默認值為false。
- nbest: *(Number 類型)*指定識別結果識別包括多候選結果
用于指定識別結果識別包括多候選結果。如nbest:3,識別返回3個候選結果,默認值為1。
- userInterface: *(Boolean 類型)*識別時是否顯示用戶界面
用于指定識別時是否顯示用戶界面,設置為true表示顯示瀏覽器內置語音識別界面;設置為false表示不顯示瀏覽器內置語音識別界面。默認值為true。
- onstart: *(EventHandler 類型)*語音識別開始事件
事件函數,語音識別開始啟動,在調用startRecognize方法后觸發,與onend事件成對觸發。
- onend: *(EventHandler 類型)*語音識別結束事件
事件函數,語音識別結束,在調用stopRecognize方法后觸發,或者在引擎內部自動完成語音識別后觸發,與onstart事件成對觸發。
- onaudiostart: *(EventHandler 類型)*錄音開始事件
事件函數,錄音開始事件,啟動語音識別后,調用設備麥克風設備開始一段語音錄音時觸發,與onaudioend事件成對觸發。
- onaudioend: *(EventHandler 類型)*錄音結束事件
事件函數,錄音結束事件,調用麥克風完成一段語音錄音時觸發,與onaudiostart事件成對觸發。
- onrecognizestart: *(EventHandler 類型)*錄音識別開始事件
事件函數,錄音識別開始事件,開始對語音錄音數據分析識別,與onrecognizeend事件成對觸發。
- onrecognizeend: *(EventHandler 類型)*錄音識別結束事件
事件函數,錄音識別結束事件,開始對語音錄音數據分析識別完成,與onrecognizestart事件成對觸發。
# [RecognitionSuccessCallback]()
語音識別成功回調
~~~
void RecognitionSuccessCallback ( results ) {
// Recognition success code
}
~~~
### 說明:
當語音識別成功時的回調函數,用于返回語音識別出的文本內容。
### 參數:
- results: *( DOMString[] ) 必選 *語音識別出的文本內容數組
語音識別出的候選文本內容,區配度高的在數組的前面,通過其length屬性可獲取總的候選內容的長度
### 返回值:
void : 無
# [RecognitionErrorCallback ]()
語音識別失敗回調
~~~
void RecognitionErrorCallback ( error ) {
// Recognition error code
}
~~~
### 說明:
當語音識別失敗時的回調函數,用于返回語音識別失敗的錯誤信息。
### 參數:
- error: *( DOMException ) 必選 *語音識別失敗的錯誤信息
### 返回值:
void : 無
- API參考
- Accelerometer
- Audio
- Camera
- Contacts
- Device
- Downloader
- Events
- Gallery
- Geolocation
- IO
- Key
- Messaging
- NativeUI
- Navigator
- Orientation
- Proximity
- SplashScreen
- Storage
- UI
- Uploader
- InterfaceOrientation
- Runtime
- WebView
- XMLHttpRequest
- Zip
- Plugins
- Barcode
- Maps
- Payment
- Push
- Share
- Speech
- Statistic
- Native.js
- Android
- iOS