createUtility record stopRecord cancelRecord addRecordHUD showRecordHUD hideRecordHUD read stopRead pauseRead resumeRead fileIdentify
为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
本原生插件封装了科大讯飞的SDK 的语音听写、语音在线合成功能。
使用本原生插件之前需要先去科大讯飞开放平台注册开发者账号,然后创建app,获取 appid ,接着给创建的 app 添加语音听写、在线语音合成服务。最后下载SDK包。
【ios平台使用原生插件的配置】
1,配置 plist 文件
在 iOS 9 下直接进行 HTTP 请求时会收到错误提示。不能直接使用 HTTP 进行请求,需要在 Info.plist 新增一段用于控制 ATS 的配置:
<key>NSAppTransportSecurity</key> <dict>
<key>NSAllowsArbitraryLoads</key> <true/>
</dict>
2,云编译时的配置
云编译时,需要申请访问的权限:麦克风、定位(使用期间)、定位(始终)、通讯录。注意:iOS最低适配版本为 iOS8, 需要在云编译界面,右上角的高级设置里,选择支持iOS版本为8.0以上。
3,动态库配置 ----- 附加原生插件制作
由于科大讯飞的 SDK 是动态生成的。所以需要开发者将动态生成的的 SDK 打包成一个附加自定义原生插件上传 Yonbuilder 移动开发平台。制作方法如下:
下载 iflyRecognitionAppendix 原生插件 zip 包并解压,把 zip 包内 target 目录下的 iflyMSC.framework 文件替换为自己从科大讯飞开放平台动态生成的。然后重新压缩为 zip 包文件上传自定义原生插件,云编译时勾选该原生插件。 (重新压缩时注意不要多一层目录,使用压缩软件打开压缩包,看到目录结构为iflyRecognitionAppendix\iflyRecognitionAppendix\target|module.json。 外面为两层原生插件名目录则正确,为3层原生插件名目录则错误。)(_MACOSX 文件夹删掉,这是由于压缩包是Mac上制作的,在windows解压产生多的文件。 或者使用winRAR解压。)
注意:iOS端最低适配版本为 iOS8.0
【android平台该原生插件配置】
动态库配置 ----- 附加原生插件制作
由于科大讯飞的 SDK 是动态生成的。所以需要开发者将动态生成的的 SDK 打包成一个附加自定义原生插件上传 Yonbuilder 移动开发平台。制作方法如下:
下载 iflyRecognitionAppendix原生插件zip包并解压,将讯飞语音平台sdk中的的Msc.jar放置在解压文件的source下,将sdk中armeabi(讯飞新版sdk不再支持armeabi,可将armeabi-v7a中的libmsc.so放到target下)目录下的的libmsc.so放置在解压文件的target下,如果需要支持armeabi-v7a & arm64-v8a 版so库,可以将armeabi-v7a & arm64-v8a 目录拷贝到target目录下,重新打包成iflyRecognitionAppendix.zip文件上传自定义原生插件,云编译时勾选该原生插件。 注意:在新版本sdk中可能没有Sunflower.jar,只需要Msc.jar即可
【tips】 : 相关错误码描述,进入http://www.xfyun.cn/doccenter/faq?go=contitle66查看,更详细的错误说明http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=13056
创建科大讯飞引擎
createUtility({params}, callback(ret, err))
android_appid:
ios_appid:
ret:
{
status:true //布尔类型;操作成功状态值,true|false
}
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.createUtility({
ios_appid: ‘******’,
android_appid: ‘******’
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: '创建成功'});
} else {
api.alert({ msg: "创建失败" });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
识别语音返回文字
record({params}, callback(ret, err))
vadbos:
vadeos:
rate:
asrptt:
audioPath:
ret:
{
status:true //布尔类型;操作成功状态值,true|false
wordStr: //字符串类型;识别语音后的文字
eventType:'', //字符串类型;交互事件类型:
//record_end:录音结束事件 (仅支持ios)
//recognize_end:识别结束事件
//recognize_start: 识别开始事件(仅支持Android)
}
err:
{
msg: //字符串类型;返回的错误信息
}
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.record({
vadbos: 5000,
vadeos: 5000,
rate: 16000,
asrptt: 1,
audioPath: 'fs://speechRecogniser/speech.pcm'
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.wordStr });
} else {
api.alert({ msg: err.msg });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止录音
stopRecord()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.stopRecord();
iOS系统,Android系统
可提供的1.0.0及更高版本
取消语音识别
cancelRecord()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.cancelRecord();
iOS系统,Android系统
可提供的1.0.0及更高版本
添加录音音量显示器
addRecordHUD({params}, callBack(ret, err))
centerX:
centerY:
radius:
transparentR:
bg:
fixedOn:
fixed:
ret:
{
volume: //数字类型;录音音量大小
}
err:
{
msg: //字符串类型;返回错误信息
}
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.addRecordHUD({
centerX: 160,
centerY: 120,
radius: 80,
transparentR: 40,
bg: '#AAAAAA',
fixedOn: api.frameName,
fixed: false
}, function(ret, err) {
var volume = ret.volume;
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示录音音量显示器
showRecordHUD()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.showRecordHUD();
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏录音音量显示器
hideRecordHUD()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.hideRecordHUD();
iOS系统,Android系统
可提供的1.0.0及更高版本
用语音读取文字信息,最大的字节数为1k
read({params}, callback(ret, err))
readStr:
speed:
volume:
voice:
rate:
audioPath:
disableDefaultSettings:
ret:
{
status: //布尔类型;操作成功状态值,true|false
speakProgress: //数字类型;朗读的进度
}
err:
{
msg: //字符串类型;返回错误信息
}
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.read({
readStr: 'YonBuilder移动开发平台',
speed: 60,
volume: 60,
voice: 1,
rate: 16000,
audioPath: 'fs://speechRecogniser/read.mp3'
}, function(ret, err) {
if (ret.status) {
ret.speakProgress
} else {
api.alert({ msg: err.msg });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止朗读
stopReead()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.stopRead();
iOS系统,Android系统
可提供的1.0.0及更高版本
暂停朗读(用 resumeRead 接口恢复朗读)
pauseRead()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.pauseRead();
iOS系统,Android系统
可提供的1.0.0及更高版本
恢复朗读
resumeRead()
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.resumeRead();
iOS系统,Android系统
可提供的1.0.0及更高版本
识别音频文件
fileIdentify({params}, callback(ret, err))
filePath:
ret:
{
status:true //布尔类型;操作成功状态值,true|false
wordStr: //字符串类型;识别语音后的文字
}
err:
{
msg: //字符串类型;返回的错误信息
}
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.fileIdentify({
filePath: 'widget://res/car.wav'
}, function(ret, err) {
if (ret.status) {
api.alert({ msg: ret.wordStr });
} else {
api.alert({ msg: err.msg });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。