speechRecognizerConfiguration startSpeechRecognizer finishSpeechRecognizer cancelSpeechRecognizer startContinusRecognizer finishContinusRecognizer addRecognizeVolumListener removeRecognizeVolumListener voiceDataRead endVoiceDataRead
wxVoicePlus 封装了微信语音识别SDK。插件接口分为两部分:1.语音识别,2.语音合成。wxVoicePlus是wxVoice的升级版,封装了微信语音识别的最新SDK,不再支持带有UI的语音识别,支持iPhone X。
使用本插件需先去 微信开放平台 申请开发者账号以及创建APP 获取相应参数。
开发准备工作
首先到“管理中心”创建移动应用,点击“创建移动应用”,填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发。 注册完毕,微信开放平台会在 7 个工作日内完成审核工作。 审核通过之后,开放平台将分配给该移动应用全局唯一的AppID。
使用本插件前需要了解的知识
语音识别有两种方式
配置语音识别时的参数
speechRecognizerConfiguration({params})
appId:
resultType:
silTime:
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechRecognizerConfiguration({
   appId : 'wxd9dbb2f20a952a5d'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开始非连续性语音识别。当长时间静默时(默认设置为:开始5秒仍没有说话,或者说话后1.5秒)录音会停止。
startSpeechRecognizer(callback(ret))
ret:
{
    eventType:'complete',    //字符串类型;交互事件类型,取值范围如下:
                             // complete:本次识别结束(完成)
                               // finish:停止(完成)语音采集(android不支持)
                               // error:出现错误,错误码请参见官方网站
                               // cancel:取消识别时回调
    result: '',              // 字符串类型;仅当eventType为complete时返回,语音识别结果的文本内容
    errorCode: -501,         // 数字类型;仅当eventType为error时返回
    recognizeFile: {         // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
       status:true,         // 布尔类型;是否获取识别音频文件成功
       file:''              // 字符串类型;文件保存的路径
       sampleRate:8000      // 数字类型;采样率
  }
}
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startSpeechRecognizer(function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
结束非连续性识别的语音采集。
调用本接口后等待识别结果,不再继续采集声音,只等待服务器返回当前已录音的识别结果。
finishSpeechRecognizer()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishSpeechRecognizer();
iOS系统
可提供的1.0.0及更高版本
取消/停止非连续性识别。调用本接口后会完全中断本次识别。
注意:在iOS端 如果调用了finishSpeechRecognizer接口,则必须调用本接口,否则会出现未知问题。
cancelSpeechRecognizer()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechRecognizer();
iOS系统,Android系统
可提供的1.0.0及更高版本
开始连续性语音识别。
插件会持续录音并识别。当长时间静默时,识别一次。再次说话会继续识别,直到调用 finishContinusRecognizer 接口。
startContinusRecognizer(callback(ret))
ret:
{
    eventType:'complete',   //字符串类型;交互事件类型,取值范围如下:
                            //complete:最后一次识别成功的回调事件
                              //singleRecognition:单次(片段)语音识别结果回调事件
                              //finish:停止语音采集事件(android不支持)
                              //error:出现错误事件
    result:'',              //字符串类型;仅当 eventType 为 complete 或 singleRecognition 时返回,语音识别结果的文本内容
    errorCode: -501,        //数字类型;eventType 为 error 时返回,错误码请参见官方网站
    recognizeFile: {        // JSON对象,语音识别时采集的音频文件(pcm格式)保存信息。仅当eventType complete时返回。为由于SDK限制,本参数仅支持 iOS端。
       status:true,        //布尔类型;保存的状态
       file:''             //字符串类型;文件保存的路径
       sampleRate:8000     //数字类型;采样率
  }
}
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startContinusRecognizer(function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止连续性语音识别的语音采集。
finishContinusRecognizer()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishContinusRecognizer();
iOS系统,Android系统
可提供的1.0.0及更高版本
添加语音识别音量监听
addRecognizeVolumListener(callback(ret))
ret:
{
    volumn:10       //数值类型;音量大小,界限为0-30,通常音量范围在0-15之间
}
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.addRecognizeVolumListener(function(ret) {
  if (ret) {
       api.alert({msg: JSON.stringify(ret)});
  }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除语音识别音量监听
removeRecognizeVolumListener()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.removeRecognizeVolumListener();
iOS系统,Android系统
可提供的1.0.0及更高版本
语音合成配置。
speechSynthesizerConfiguration({params})
appId:
volumn:
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechSynthesizerConfiguration({
    appId : 'wxd9dbb2f20a952a5d'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开始语音合成。
startSpeechSynthesizer({params},callback(ret))
text:
ret:
{
     eventType:'finishPlaying',   //字符串类型;语音合成结果类型 取值范围:
                                  //finishPlaying:播放完成的回调
                                  //playError:播放错误 (android不支持)的回调
                                  //error:合成出现错误的回调
                                  //cancel:调用cancelSpeechSynthesizer后的回调
     errorCode: -501,             //数字类型;仅当 eventType 为 error 时返回,错误码请参见官方网站
     recognizeFile:              //字符串类型;合成后的音频文件(mp3格式)保存的路径信息
}
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.startSpeechSynthesizer(function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    }
 });
iOS系统,Android系统
可提供的1.0.0及更高版本
取消语音合成,若已经合成完成在播放阶段,则也会停止播放合成后的语音
cancelSpeechSynthesizer()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechSynthesizer();
iOS系统,Android系统
可提供的1.0.0及更高版本
识别音频文件
voiceDataRead(callback(ret))
path:
ret:
{
    eventType:'complete',   //字符串类型;交互事件类型,取值范围如下:
                            //complete:最后一次识别成功的回调事件
                              //singleRecognition:单次(片段)语音识别结果回调事件(仅iOS支持
                              //finish:停止语音采集事件(仅iOS支持)
                              //error:出现错误事件
    result:'',              //字符串类型;仅当 eventType 为 complete 或 singleRecognition 时返回,语音识别结果的文本内容
    errorCode: -501,        //数字类型;eventType 为 error 时返回,错误码请参见官方网站
}
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.voiceDataRead({
    path:'',
},function(ret) {
    if (ret) {
        api.alert({msg: JSON.stringify(ret)});
    }
});
iOS系统,Android系统
可提供的1.0.0及更高版本
结束识别音频文件
endVoiceDataRead()
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.endVoiceDataRead();
Android系统,iOS系统
可提供的1.0.0及更高版本
