wxVoicePlus
来自于:AC模块工作室立即使用
语音识别
speechRecognizerConfiguration startSpeechRecognizer finishSpeechRecognizer cancelSpeechRecognizer startContinusRecognizer finishContinusRecognizer addRecognizeVolumListener removeRecognizeVolumListener
语音合成
speechSynthesizerConfiguration startSpeechSynthesizer cancelSpeechSynthesizer
概述
wxVoicePlus 封装了微信语音识别SDK。模块接口分为两部分:1.语音识别,2.语音合成。wxVoicePlus是wxVoice的升级版,封装了微信语音识别的最新SDK,不再支持带有UI的语音识别,支持iPhone X。
使用本模块需先去 微信开放平台 申请开发者账号以及创建APP 获取相应参数。
开发准备工作
首先到“管理中心”创建移动应用,点击“创建移动应用”,填写相关资料,然后将该应用提交审核,只有审核通过的应用才能进行开发。 注册完毕,微信开放平台会在 7 个工作日内完成审核工作。 审核通过之后,开放平台将分配给该移动应用全局唯一的AppID。
使用本模块前需要了解的知识
语音识别有两种方式
- 连续性识别:调用startContinusRecognizer接口开始识别,只有调用
- 接口才能停止本次识别,否则一直处于等待语音输入待识别状态。
- 非连续性识别:调用startSpeechRecognizer接口开始识别,超过一定时间(可通过speechRecognizerConfiguration接口silTime参数配置)后自动停止等待输入语音识别状态,自动进入下个语音识别流程(将录制的语音发送服务器识别后返回结果),自动停止本次识别。
注意!由于原生SDK限制,连续性识别时其识别结果分段依次返回,非连续性识别时其识别结果会一次全部返回
speechRecognizerConfiguration
配置语音识别时的参数
speechRecognizerConfiguration({params})
params
appId:
- 类型:字符串
- 描述:微信开放平台分配给移动应用的AppID。
resultType:
- 类型:数值
- 描述:(可选项)设置识别类型,0无标点,1有标点
- 默认:0
silTime:
- 类型:数值
- 描述:(可选项)静音检查时间。开始录音,并检测到有语音产生后,超过此时间没有声音,则自动完成本次录音,单位:秒(s)。本参数仅对非连续性识别(通过startSpeechRecognizer接口开启的语音识别)有效。
- 默认:1.5
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechRecognizerConfiguration({
appId : 'wxd9dbb2f20a952a5d'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startSpeechRecognizer
开始非连续性语音识别。当长时间静默时(默认设置为:开始5秒仍没有说话,或者说话后1.5秒)录音会停止。
startSpeechRecognizer(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
- iOS错误码(errorCode)
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
finishSpeechRecognizer
结束非连续性识别的语音采集。
调用本接口后等待识别结果,不再继续采集声音,只等待服务器返回当前已录音的识别结果。
finishSpeechRecognizer()
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishSpeechRecognizer();
可用性
iOS系统
可提供的1.0.0及更高版本
cancelSpeechRecognizer
取消/停止非连续性识别。调用本接口后会完全中断本次识别。
注意:在iOS端 如果调用了finishSpeechRecognizer接口,则必须调用本接口,否则会出现未知问题。
cancelSpeechRecognizer()
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechRecognizer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startContinusRecognizer
开始连续性语音识别。
模块会持续录音并识别。当长时间静默时,识别一次。再次说话会继续识别,直到调用 finishContinusRecognizer 接口。
startContinusRecognizer(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
- iOS错误码(errorCode)
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
finishContinusRecognizer
停止连续性语音识别的语音采集。
finishContinusRecognizer()
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.finishContinusRecognizer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addRecognizeVolumListener
添加语音识别音量监听
addRecognizeVolumListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
volumn:10 //数值类型;音量大小,界限为0-30,通常音量范围在0-15之间
}
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.addRecognizeVolumListener(function(ret) {
if (ret) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeRecognizeVolumListener
移除语音识别音量监听
removeRecognizeVolumListener()
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.removeRecognizeVolumListener();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
speechSynthesizerConfiguration
语音合成配置。
speechSynthesizerConfiguration({params})
params
appId:
- 类型:字符串
- 描述:微信开放平台分配给移动应用的AppID
volumn:
- 类型:数值
- 描述:(可选项)音量范围0-2
- 默认:1.0
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.speechSynthesizerConfiguration({
appId : 'wxd9dbb2f20a952a5d'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startSpeechSynthesizer
开始语音合成。
startSpeechSynthesizer({params},callback(ret))
params
text:
- 类型:字符串类型
- 描述:需要合成的文本
- iOS错误码(errorCode)
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
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) {
alert(JSON.stringify(ret));
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelSpeechSynthesizer
取消语音合成,若已经合成完成在播放阶段,则也会停止播放合成后的语音
cancelSpeechSynthesizer()
示例代码
var wxVoicePlus = api.require('wxVoicePlus');
wxVoicePlus.cancelSpeechSynthesizer();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本