iflyRecognition
来自于:官方立即使用
createUtility record stopRecord cancelRecord addRecordHUD showRecordHUD hideRecordHUD read stopRead pauseRead resumeRead
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
本模块封装了科大讯飞的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 打包成一个附加自定义模块上传 APICloud 平台。制作方法如下:
下载 iflyRecognitionAppendix 模块 zip 包并解压,把 zip 包内 target 目录下的 iflyMSC.framework 文件替换为自己从科大讯飞开放平台动态生成的。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。 (重新压缩时注意不要多一层目录,使用压缩软件打开压缩包,看到目录结构为iflyRecognitionAppendix\iflyRecognitionAppendix\target|module.json。 外面为两层模块名目录则正确,为3层模块名目录则错误。)(_MACOSX 文件夹删掉,这是由于压缩包是Mac上制作的,在windows解压产生多的文件。 或者使用winRAR解压。)
注意:iOS端最低适配版本为 iOS8.0
【android平台该模块配置】
动态库配置 ——- 附加模块制作
由于科大讯飞的 SDK 是动态生成的。所以需要开发者将动态生成的的 SDK 打包成一个附加自定义模块上传 APICloud 平台。制作方法如下:
下载 iflyRecognitionAppendix模块zip包并解压,将讯飞语音平台sdk中的的Msc.jar和Sunflower.jar放置在解压文件的source下,将sdk中armeabi目录下的的libmsc.so放置在解压文件的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
创建科大讯飞引擎
createUtility({params}, callback(ret, err))
params
android_appid:
- 类型:字符串
- 描述:从科大讯飞开放平台得到的 appid(android端)
ios_appid:
- 类型:字符串
- 描述:从科大讯飞开放平台得到的 appid(iOS端)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
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
识别语音返回文字
record({params}, callback(ret, err))
params
vadbos:
- 类型:数字
- 描述:(可选项)前断点时间(静音时间,即用户多长时间不说话做超时处理),范围是0-10000单位ms
- 默认值:5000
vadeos:
- 类型:数字
- 描述:(可选项)后断点时间(静音时间,即用户多长时间不说话做超时处理),单位ms,范围是0-10000
- 默认值:5000
rate:
- 类型:数字
- 描述:(可选项)采样率(支持16000,8000)
- 默认值:16000
asrptt:
- 类型:数字
- 描述:(可选项)返回的语句是否有标点符号,取值范围:0-无,1-有
- 默认值:1
audioPath:
- 类型:字符串
- 描述:(可选项)录制的音频文件保存路径(如fs://123.pcm,一定要加后缀名),不支持widget 协议。注意:在 iOS 平台上由于科大讯飞 SDK 限制,只支持 pcm 格式音频保存
- 备注:若不传则不保存
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;操作成功状态值,true|false
wordStr: //字符串类型;识别语音后的文字
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
停止录音
stopRecord()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.stopRecord();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
cancelRecord
取消语音识别
cancelRecord()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.cancelRecord();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addRecordHUD
添加录音音量显示器
addRecordHUD({params}, callBack(ret, err))
params
centerX:
- 类型:数字
- 描述:(可选项)录音音量标识的圆心坐标
- 默认值:当前设备屏幕的宽的一半
centerY:
- 类型:数字
- 描述:(可选项)录音音量标识的圆心坐标
- 默认值:100
radius:
- 类型:数字
- 描述:(可选项)录音音量标识的圆心半径
- 默认值:60
transparentR:
- 类型:数字
- 描述:(可选项)中间透明区域的半径
- 默认值:radius的1/2
bg:
- 类型:字符串
- 描述:(可选项)录音标识的背景色,支持 rgb,rgba,#
- 默认值:#AAAAAA
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
volume: //数字类型;录音音量大小
}
err:
- 类型:JSON 对象
- 内部字段:
{
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
显示录音音量显示器
showRecordHUD()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.showRecordHUD();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hideRecordHUD
隐藏录音音量显示器
hideRecordHUD()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.hideRecordHUD();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
read
用语音读取文字信息,最大的字节数为1k
read({params}, callback(ret, err))
params
readStr:
- 类型:字符串
- 描述:要读取的文字信息
speed:
- 类型:数字
- 描述:(可选项)朗读的语速,范围是0-100
- 默认值:60
volume:
- 类型:数字
- 描述:(可选项)朗读的声音大小,范围是0-100
- 默认值:60
voice:
- 类型:字符串
- 描述:(可选项)朗读人(兼容旧版本:0-xiaoyan;1-xiaoyu;)
- 默认值:xiaoyan
- 取值范围:
- xiaoyan:小燕
- xiaoyu:小宇
- catherine:凯瑟琳
- henry:亨利
- vimary:玛丽
- vixy:小研
- vixq:小琪
- vixf:小峰
- vixl:小梅
- vixq:小莉
- vixr:小蓉(四川话)
- vixyun:小芸
- vixk:小坤
- vixqa:小强
- vixying:小莹
- vixx:小新
- vinn:楠楠
- vils:老孙
rate:
- 类型:数字
- 描述:(可选项)采样率(支持16000,8000)
- 默认值:16000
audioPath:
- 类型:字符串
- 描述:(可选项)朗读的音频保存路径(如fs://123.pcm,一定要加后缀名),不支持widget 协议。注意:在 iOS 平台上由于科大讯飞 SDK 限制,只支持 pcm 格式音频保存
- 备注:若不传则不保存
disableDefaultSettings:
- 类型:布尔
- 描述:(可选项)是否禁用讯飞 SDK 默认设置。禁用后可避免与音视频录制模块冲突问题
- 默认:false
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: //布尔类型;操作成功状态值,true|false
speakProgress: //数字类型;朗读的进度
}
err:
- 类型:JSON 对象
- 内部字段:
{
msg: //字符串类型;返回错误信息
}
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.read({
readStr: 'APICloud平台',
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及更高版本
stopRead
停止朗读
stopReead()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.stopRead();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pauseRead
暂停朗读(用 resumeRead 接口恢复朗读)
pauseRead()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.pauseRead();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resumeRead
恢复朗读
resumeRead()
示例代码
var iflyRecognition = api.require('iflyRecognition');
iflyRecognition.resumeRead();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。