为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
本插件封装了讯飞SDK的离线语音合成和离线命令词识别功能。
注意:
使用此插件之前必须先配置 config 文件,配置方法如下:
<feature name="IFlyVoice">
<param name="appId_iOS" value="123ab67" />
<param name="appId_Android" value="123ab67" />
</feature>
字段描述:
appId:注册应用的appId,注册应用请前往讯飞开放平台。
注意:
Android 需升级环境进行编译
初始化语音合成对象(Android使用语音合成必须先调用此接口)
initSpeechSynthesizer(callback(ret))
ret:
{
state:true //布尔类型;语音合成对象初始化成功
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.initSpeechSynthesizer(function(ret){
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
开始离线语音合成
startSynthetic(params,callback(ret,err))
text:
commonPath_iOS:
pronouncePath_iOS:
commonPath_Android:
pronouncePath_Android:
pronounceName:
path:
name:
speed:
volume:
pitch:
ret:
{
status:true //布尔类型;是否合成成功
}
err:
{
code:0, //错误码
Type:0, //错误码类型(Android不支持)
msg:'' //错误原因 (Android不支持)
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.startSynthetic({
text:'你好柚子',
commonPath_Android:'',
pronouncePath_Android:'',
commonPath_iOS:'',
pronouncePath_iOS:'',
},function(ret,err){
if (ret.status) {
alert('合成成功');
} else {
api.alert({
msg: JSON.stringify(err)
})
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
暂停语音播放,暂停播放之后,合成不会暂停,仍会继续
pauseSpeaking()
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.pauseSpeaking();
iOS系统,Android系统
可提供的1.0.0及更高版本
恢复播放
resumeSpeaking()
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.resumeSpeaking();
停止播放并停止合成
stopSpeaking()
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.stopSpeaking();
iOS系统,Android系统
可提供的1.0.0及更高版本
语音合成相关监听
addSyntheticListener(callback(ret))
ret:
{
reason:'', //字符类型;合成相关事件回调,取值范围如下:
//onSpeakBegin:开始合成回调
//onSpeakResumed : 恢复播放回调(Android)
//onSpeakPaused:暂停播放回调
//onSpeakCompleted :播放完成回调(Android)
bufferProgress:10, //数字类型;缓冲进度;0-100
speakProgress:10 //数字类型;播放进度回调;0-100
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.addSyntheticListener(function(ret){
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
初始化命令词对象(Android使用命令词必须先调用此接口)
initSpeechRecognizer(callback(ret))
ret:
{
state:true //布尔类型;语音合成对象初始化成功
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.initSpeechRecognizer(function(ret){
api.alert({
msg: JSON.stringify(ret)
})
});
Android系统
可提供的1.0.0及更高版本
语法上传
buildGrammar(params,callback(ret,err))
commonPath_Android:
bnfPath_Android:
commonPath_iOS:
bnfPath_iOS:
ret:
{
status:true //布尔类型;是否上传成功
}
err:
{
code:0, //错误码
Type:0, //错误码类型(支持ios)
msg:'' //错误原因
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.buildGrammar({
commonPath_Android:'',
bnfPath_Android:''
},function(ret,err){
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
开始本地识别
startListening(callback(ret,err))
ret:
{
status:true //布尔类型;是否识别成功
result:{} //json对象;识别结果,可能多次回调
isLast:true //布尔类型;是否最后一个结果
}
err:
{
code:0, //错误码
Type:0, //错误码类型(支持ios)
msg:'' //错误原因
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.startListening(function(ret,err){
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
调用此函数会停止录音,并开始进行语音识别
stopListening()
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.stopListening();
取消本次会话
cancel()
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.cancel();
iOS系统,Android系统
可提供的1.0.0及更高版本
离线命令词识别相关监听
addGrammarListener(callback(ret))
ret:
{
reason:'', //字符类型;离线命令词识别相关监听事件回调,取值范围如下:
//onBeginOfSpeech:开始录音回调,当调用了`startListening`接口之后,如果没有发生错误则会回调此字段
//onEndOfSpeech:停止录音回调, 当调用了`stopListening`接口或者引擎内部自动检测到断点,如果没有发生错误则回调此字段
//onCancel:取消识别回调,当调用了`cancel`接口之后,会回调此函数
volume:10 //数字类型;在录音过程中,回调音频的音量;范围从0-30
}
var IFlyVoice = api.require('IFlyVoice');
IFlyVoice.addGrammarListener(function(ret){
api.alert({
msg: JSON.stringify(ret)
})
});
iOS系统,Android系统
可提供的1.0.0及更高版本
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。