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及更高版本