speech

Speech模块管理语音输入功能,提供语音识别功能,可支持用户通过麦克风设备进行语音输入内容。通过plus.speech可获取语音输入管理对象。

语音输入接口可使得网页开发人员能快速调用设备的麦克风进行语音输入,而不需要安装额外的浏览器插件。规范不定义底层语音识别引擎的技术架构,浏览器实现可基于语音识别服务器或本地内置语音识别模块。

方法:

对象:

回调方法:

权限:

permissions

  1. {
  2. // ...
  3. "permissions":{
  4. // ...
  5. "Speech": {
  6. "description": "语音输入"
  7. }
  8. }
  9. }

startRecognize

启动语音识别

  1. void plus.speech.startRecognize( options, successCB, errorCB );

说明:

启动语音识别时调用,当语音识别成功后通过successCallback回调返回识别出文本内容,调用语音识别失败则通过errorCallback回调返回。

参数:

  • options: (SpeechRecognizeOptions)必选 语音识别参数,用于控制语音引擎的各种技术参数
  • successCB: (RecognitionSuccessCallback)可选 语音识别成功回调当语音识别引擎识别数据成功时的回调函数,并返回识别出的文本内容。
  • errorCB: (RecognitionErrorCallback)可选 语音识别失败时的回调函数当语音识别引擎识别数据失败时的回调函数,并返回失败的错误信息。

返回值:

void: 无

示例:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  6. <title>Speech Example</title>
  7. <script type="text/javascript">
  8. // 监听plusready事件
  9. document.addEventListener("plusready", function(){
  10. // 扩展API加载完毕,现在可以正常调用扩展API
  11. // ...
  12. }, false);
  13. var text=null;
  14. function startRecognize(){
  15. var options = {};
  16. options.engine = 'iFly';
  17. text = "";
  18. alert("开始语音识别:");
  19. plus.speech.startRecognize(options, function(s){
  20. text += s;
  21. }, function(e){
  22. alert("语音识别失败:"+e.message);
  23. });
  24. }
  25. </script>
  26. </head>
  27. <body>
  28. <button onclick="startRecognize()">开始识别</button><br/>
  29. <button onclick="alert(text);">识别内容</button>
  30. </body>
  31. </html>

uni-app使用plus注意事项

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>
                

uni-app使用plus注意事项

addEventListener

监听语音识别事件


void plus.speech.addEventListener(event, listener, capture);
                

说明:

向语音识别模块添加事件监听器,当指定的事件发生时,将触发listener函数的执行。 可多次调用此方法添加多个监听器,当监听的事件发生时,将按照添加的先后顺序触发执行。

参数:

返回值:

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(){
    // 监听语音识别事件
    plus.speech.addEventListener("start", function(){
        text = null;
    }, false);
    plus.speech.addEventListener("recognition", function(e){
        text += e.result;
    }, false);
    plus.speech.addEventListener("end", function(){
        alert("Success: "+text);
    }, false);
}, false );
var text=null;
function startRecognize() {
    var options = {};
    text = "";
    plus.speech.startRecognize(options);
}
    </script>
    </head>
    <body>
        <button onclick="startRecognize()">开始识别</button><br/>
    </body>
</html>
                

uni-app使用plus注意事项

SpeechRecognizeOptions

JSON对象,语音识别参数


interface plus.speech.SpeechRecognizeOptions {
    attribute Boolean continue;
    attribute String engine;
    attribute String lang;
    attribute Number nbest;
    attribute String punctuation;
    attribute Number timeout;
    attribute Boolean userInterface;
    attribute EventHandler onstart;
    attribute EventHandler onend;
}
                

说明:

控制语音识别引擎内部参数,在JS中为JSON对象,在启动语音识别时使用。

属性:

  • continue: (Boolean类型)语音识别是否采用持续模式设置为true表示语音引擎不会根据语音输入自动结束,识别到文本内容将多次调用successCallback函数返回,如果需要结束语音识别则必须调用stopRecognize接口,默认值为false。

  • engine: (String类型)语音识别引擎标识用于兼容多语音识别引擎的浏览器,使用语音识别厂商的产品名称,如未设置或设置不正确则使用运行环境默认的语音识别引擎。支持以下语音识别引擎:"baidu"-百度语音识别;"iFly"-讯飞语音识别。

  • lang: (String类型)语音识别引擎的语言用于定义语音识别引擎的语言,其取值需符合W3C的Language codes规范。目前讯飞语音支持以下语言:"zh-cn"-中文,普通话;"en-us"-英语;"zh-cantonese"-中文,粤语;"zh-henanese"-中文,河南话(百度语音识别不支持此语言)。默认值为"zh-cn"。

  • nbest: (Number类型)指定识别结果识别包括多候选结果用于指定识别结果识别包括多候选结果。如nbest:3,识别返回3个候选结果,默认值为1。

  • punctuation: (Boolean类型)识别结果中是否包含标点符号true表示识别结果文本中包含标点符号,false表示识别结果文本中不包含标点符号。默认值为true。

平台支持

  • Android - ALL (支持)
  • iOS - ALL (不支持): 百度语音识别不支持标点符号。
    • timeout: (Number类型)语音识别超时时间语音识别超时的时间,单位为ms,默认值为1000(即10秒)。注:百度语音识别不支持此参数。
  • userInterface: (Boolean类型)识别时是否显示用户界面用于指定识别时是否显示用户界面,设置为true表示显示浏览器内置语音识别界面;设置为false表示不显示浏览器内置语音识别界面。默认值为true。

  • onstart: (EventHandler类型)语音识别开始事件(已废弃,使用start事件)事件函数,语音识别开始启动,在调用startRecognize方法后触发,与onend事件成对触发。注:iOS平台未支持

  • onend: (EventHandler类型)语音识别结束事件(已废弃,使用end事件)事件函数,语音识别结束,在调用stopRecognize方法后触发,或者在引擎内部自动完成语音识别后触发,与onstart事件成对触发。注:iOS平台未支持

SpeechRecoginzeEvents

语音识别事件类型

说明:

描述语音过程的触发事件列表,可以通过调用plus.sppech.addEventListener方法进行注册监听。

常量:

  • start: (String类型)开始语音识别调用plus.speech.startRecognize方法开始语音识别时触发。无回调函数参数。

  • volumeChange: (String类型)音量变化开始语音识别后,麦克风录制到的语音音量变化时触发。回调函数参数event={volume:"Number类型,取值范围0-1"}。

  • recognizing: (String类型)临时语音识别结果返回临时语音识别结果时触发。回调函数参数event={partialResult:"String类型,临时识别结果"}。

  • recognition: (String类型)最终语音识别返回最终语音识别结果。回调函数参数event={result:"String类型,最佳识别结果",results:"String数组类型,所有候选结果"}。

  • end: (String类型)结束语音识别调用plus.speech.stopRecognize方法结束语音识别或语音识别完成后自动结束时触发。无回调函数参数。

  • error: (String类型)语音识别错误语音识别发生错误时触发。回调函数参数event={code:"Number类型,错误编码",message:"String类型,错误描述信息"}。

RecognitionEventCallback

语音识别事件回调函数


void onEvent(event){
    // Event code
}
                

说明:

调用plus.speech.addEventListener方法监听语音识别事件的回调函数。

参数:

  • event: (JSON)可选 不同事件返回的参数不一样,详情参考SpeechRecoginzeEvents事件说明。

返回值:

void: 无

RecognitionSuccessCallback

语音识别成功回调


void onSuccess(result){
    // Recognition success code
}
                

说明:

语音识别成功时的回调函数,用于返回语音识别出的文本内容。

参数:

  • result: (String)必选 语音识别出的文本内容

返回值:

void: 无

RecognitionErrorCallback

语音识别失败回调


void onError(error){
    // Recognition error code
}
                

说明:

当语音识别失败时的回调函数,用于返回语音识别失败的错误信息。

参数:

  • error: (Exception)必选 语音识别失败的错误信息可通过error.code(Number类型)获取错误编码;可通过error.message(String类型)获取错误描述信息。详细错误描述信息可参考:http://ask.dcloud.net.cn/article/282。

返回值:

void: 无