iflyRecognition

来自于:官方立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

本模块封装了科大讯飞的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文件上传自定义模块,云编译时勾选该模块。

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

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。