科大讯飞语音读写(无障碍)

科大讯飞语音读写

模块名称

  • iflyonlinemsc

模块引入

  • Weex

const iflymsc = app.requireModule("iflyonlinemsc");

  • H5

let iflymsc = requireModuleJs('iflyonlinemsc');

模块方法

语音合成:

  • iflyTTS(text,params, exParams, callback)

    • 在线语音合成(文字转语音)

    • 入参text 格式:字符串,测试时不能传入空字符串

    • 入参params 格式:字符串,包含:appid 、vid 、auf 、aue、svc 、type 、uid 、url 、time_out等

      字段 描述 备注
      url IP+端口 私有云后台服务接口地址,具体形式为:ip:port(https请求形式为 https://ip:port) 必选
      appid 英文数字组合 AI+管理平台创建应用时设置的应用ID 必选
      vid 默认值:65040 表示选择的发音人id,根据合成服务授权选择:60020 xiaoyan 60030 xiaofeng 65040 xiaoxue 必选(个性化模板音时注意,如果有pretts组件时不能传,没有pretts组件时传65900)
      auf 默认值:4 4:表示16k16bit 3:表示8k16bit 必选
      aue 默认值:raw 支持如下格式:raw speex(8k音频使用speex)speex-wb(16k音频使用speex-wb 必选
      svc 默认值:tts 表示当前使用能力类型tts(语音合成) 必选
      time_out 默认值:10 调用接口超时时间,单位:秒 超时时间实际的是设置的3倍 可选
      uid 预留 支持如下格式:32位字符串 可选
      chpersize 默认值:2250 文本每个字节所占的音频大小(一个中文占3个字节),主要用于中文文本估计音频总大小 可选
      output 表示是否保存音频,不传该字段时,不保存音频。传递output=pcm时,音频保存到应用沙盒中的Documents目录下,音频的格式是xxx.pcm 可选
      extend_param 扩展参数,默认可以不设置此参数 实例如下:extend_params={“params”:“token=D2572AD26,ability=ab_atsnlp,eos=2000”} 可选

      extend_params中参数说明:

      字段 描述 备注
      token 英文数字组合 授权码,由管理平台进行分配 如果使用鉴权,这个字段是必选的
      ability 默认值:ab_tts 表示当前使用识别能力ab_tts 如果使用鉴权,这个字段是必选的
    • 入参exParams 格式:字符串,包含:spd 、vid、scene等

      字段 描述 备注
      vid 个性化模板音使用 60190 可选,个性化模板音时,如果有pretts组件时传60190
      scene 个性化模板音使用 4 可选,个性化模板音时,如果有pretts组件时传4
      irf_path 个性化模板音资源路径 文件存放路径 可选,个性化模板音,如果没有pretts组件时需要传
      rdn 数字读取方式 0-自动判断处理,不能确定的按照值发音;1-按数值发音;2-按数字发音;3-自动判断处理,不能确定的按数字发音 可选
      tte 文本编码类型 1 - GB-2312;2 - GBK;3 - BIG5;4 - Unicode;5 - GB18030;6 - UTF8; 可选
      ttp 文本类型 0 - AUTO 缺省情况下按照普通文本阅读;1 - PLAINTEXT 普通文本;2 - CSSML TEXT ;3 - SSMLTEXT;4 - EMAILTEXT; 可选
      reg 英文读取方式 0-自动判断处理,如果不确定将按照英文词语拼写处理;1-所有英文按字母发音;2-自动判断处理,如果不确定将按照字母朗读;无效值; 可选
      ram 是否读出所有的标点符号 0代表不读出所有标点 1代表读出所有标点 可选
      spd 语速 取值范围-500~+500,0为原速,数值大则语速快,对应于0.5~1.5倍线性关系 可选
      vol 音量 有效范围-20~20,0为缺省音量 可选
      pit 音高 取值范围-500~+500,0为默认,数值大则音调越高 可选
      ahf 音频头格式 0 - DEFAULT 44字节音频数据头,只有在输出格式为Wave PCM时才有意义;1 - NONE 无数据头格式;2 - STAND 标准音频数据头格式,根据具体格式头长度可能为 44(标准PCM格式)、58(Alaw和Ulaw)或0字节(Vox格式); 可选
  • ttsStop

    • 停止播放(是否需要回调)
  • ttsOnPause

    • 暂停播放(是否需要回调)
  • ttsOnResume

    • 恢复播放(是否需要回调)

语音识别:

  • iflyISR(parmas、callback) :

    • 语音识别(语音转文字)。不带界面的语音听写
    • 参数同下
  • iflyJointISR(params,callback):

    • 连续语音识别(语音转文字)。不带界面的语音听写

    • 入参params 格式:字符串,包含:url 、time_out 、svc 、auf 、aue 、uid 等,参数说明如下:

      字段 描述 备注
      url Ip+端口 私有云后台服务接口地址,具体形式为:ip:port(https请求形式为 https://ip:port) 必选
      appid 英文数字组合 AI+管理平台创建应用时设置的应用ID 必选
      auf 默认值:audio/L16;rate=16000 表示支持的音频格式支持如下格式:audio/L16;rate=8000 audio/L16;rate=16000 必选
      svc 默认值:iat 必选
      aue 默认值:raw 表示当前使用能力类型,支持如下格式:iat(语音识别)iatnlp(识别+理解) 必选
      uid 预留 支持如下格式:32位字符串 可选
      res_id 默认值:无 表示选择的资源(资源可以通过在引擎配置,也可以通过sdk热词上传接口上传) 可选
      handle_time 默认值:5 调用stop后的处理时间(弱网环境下结束会比较慢)单位:秒 可选
      time_out 默认值:10 调用接口超时时间单位:秒 可选
      pgs key=value dwa=wpgs开启会话pgs功能 可选(返回中间结果)
      hotword 默认值:无 会话级热词,支持如下格式:张三;李四 可选
      output 表示是否保存音频,不传该字段时,不保存音频。传递output=pcm时,音频保存到应用沙盒中的Documents目录下,音频的格式是xxx.pcm 可选
      hotword 默认值:无 会话级热词,支持如下格式:张三;李四 可选
      extend_params 扩展参数,默认可以不设置此参数 扩展参数,扩展参数中的参数之间以逗号分隔,如下:{“params”:“eos=3500,bos=3000”} 可选

      extend_params中参数说明

      字段 描述 备注
      eos 默认值:无 表示引擎端点超时时间支持如下格式:数字,单位ms 可选
      bos 默认值:无 表示引擎前端点超时时间 支持如下格式:数字,单位ms 可选
      token 英文数字组合 授权码,由AI+管理平台分配 如果使用鉴权,这个字段是必选的
      ability 默认值:ab_tts 表示当前使用识别能力ab_tts 如果使用鉴权,这个字段是必选的
    • 返回参数: 回调数据类型(Map类型,即字典对象,json对象)。注意,这里是长期活跃的回调,可多次回调。回调返回数据会有下边3种情况: 1、录音开始回调 {“func”:“begin”} 2、录音正在录制回调 {“func”:“record”,“result”:“录音生成的字符串”} 3、录音结束回调 {“func”:“end”}

  • isrStop

    • 停止识别(是否需要回调)
  • isrCancel

    • 取消识别(是否需要回调)

示例

iflymsc.iflyISR(data => {
   if (data.func == 'begin') {
      this.alert = true
   }
   if (data.func == 'record') {
      this.VoiceWord = data.result
   }
   if (data.func == 'end') {
      this.alert = false
      this.clickFlag = true
   }
})

iOS集成注意事项:

  • iOS暂不支持本地pod导入,必须手动导入,导入流程如下:
    • 第一步工程配置:
      • 添加库:将AIPIFlyMsc下的libs文件以及插件模块添加到工程中,同时也要将依赖的其他系统库添加到工程中:系统库如下图所示:

        库名称 类型 功能
        AIPIFlyIVW.framework 讯飞库 提供讯飞语音唤醒服务
        AIPIFlyMSC 讯飞库 提供讯飞语音识别、语音合成等服务
        QuartzCore.framework 必要 用于界面显示。
        AudioToolbox.framework 系统库 用于系统录音和播放。
        SystemConfiguration.framework 系统库 用于系统设置。
        CoreGraphics.framework 系统库 用于界面显示。
        AVFoundation.framework 系统库 用于系统录音和播放 。
        Foundation.framework 系统库 基本库。
        UIKit.framework 系统库 用于界面显示。
        libc++.tbd 系统库 用于支持C++。
        libz.tbd 必要 用于压缩、加密算法。

        注意:添加AIPIFlyMSC.framework时,请检查工程BuildSetting中的framwork path的设置,如果出现找不到framework的情况,可以将path清空,在Xcode中删除framework,然后重新添加

      • 设置Bitcode:在Targets - Build Settings 中搜索Enable Bitcode 即可,找到相应选项,设置为NO。

      • 用户隐私权限配置 :iOS 10发布以来,苹果为了用户信息安全,加入隐私权限设置机制,让用户来选择是否允许。 隐私权限配置可在info.plist 新增相关privacy字段,MSC SDK中需要用到的权限主要包括麦克风权限、联系人权限和地理位置权限

        privacy字段 说明
        NSMicrophoneUsageDescription 麦克风权限
        NSLocationUsageDescription 地理位置权限
        NSLocationAlwaysUsageDescription 地理位置权限
        NSContactsUsageDescription 联系人权限