更新记录

4.0(2019-07-13)

1、Object传参模式新增returnAudio属性,用于返回音频对象, 详见4.0.2

2、完善audioCallback参数支持所有audio状态监听回调(除onCanplay外), 详见4.0.2

3.0(2019-06-28)

删除两次encodeURIComponent语句

查看更多

下载示例项目, 拖进项目即可运行

QQ交流群: 750104037 点我加入


插件简介

非常轻便使用的语音合成接口,一般用于对推送过来的消息进行语音播报

更新说明

版本号 更新说明
v4.0新增 1、Object传参模式新增returnAudio属性,用于返回音频对象, 详见4.0.2
2、完善audioCallback参数支持所有audio状态监听回调, 详见4.0.2
v3.0修复 删除两次encodeURIComponent语句,有需求的自己加上去多测试
v2.0重要 1、新增语音队列机制, 默认加入语音队列
2、完善参数文档, 详见4.
3、新增测试url, 运行项目即可体验,因为是测试的,并且是前端直接获取token,如果有多人同时使用,则有可能播放失败,换成自己的并且token由后端维护就好

1. 注意

1、强烈建议token的获取与维护交由后端, 在获取token的接口中有返回expires_in, 该参数为token有效期,文档中token有效期为30天,后端可以每一段时间获取一次
2、该api接口QPS限制(每秒查询率)是100,详见百度云文档, 若不够用请看2.
3、默认开启语音队列机制
4、IOS上应用在后台时播放不出,manifest文件中IOS配置里的后台运行能力里面添加audio也不行,这是对于uni.getBackgroundAudioManager() 使用的,但是背景音乐是会在通知栏有音乐播放的样式的 所以 目前没有找到合适的办法

2.当QPS限制100不够用时

当QPS限制100不够用时, 可以在百度云多创建几个应用, 后端同时维护多个token,前端访问时可以按顺序返回token, 在下已经申请了4个……

3. 百度语音合成接口使用说明

注:需先在百度云注册账号并创建应用(内有文档地址),获得API Key和Secret Key并填入js的url地址中, 强烈建议由后端访问并维护token

引入js

import Voice from /* QS-baiduyy.js 地址 */

使用

Voice('想要播报的内容');

4.参数说明

4.0.1 String类型

示例代码: 
Voice('想要播报的内容');

4.0.2 Object类型

示例代码:
Voice({
  voiceSet: {
    tex: '想要播报的内容'
  },
  audioSet: {
    volume: 1
  },
  audioCallback: {
    o-n-P-l-a-y: ()=>{   //属性名去掉 - , 不知道为什么全名显示不了
      console.log('音频开始播放了')
    }
  }
  lineUp: true   // 加入语音队列
  returnAudio: false  // 返回音频对象
})
属性名 是否必填 参数类型 默认值 说明
voiceSet Object 百度接口参数设置,详见4.0.2.0.1
audioSet Object 音频组件参数设置,详见4.0.2.0.2
audioCallback Object 音频组件回调函数设置,详见4.0.2.0.3
lineUp Boolean true 是否加入语音队列, 详见4.0.2.0.4
returnAudio(v4.0新增) Boolean false 是否返回音频对象, 详见4.0.2.0.5

4.0.2.0.1 voiceSet参数详解

属性名 是否必填 参数类型 默认值 说明
tex String 合成的文本,使用UTF-8编码。小于2048个中文字或者英文数字。(文本在百度服务器内转换为GBK后,长度必须小于4096字节)
spd Number 5 语速,取值0-15,默认为5中语速
pit Number 5 音调,取值0-15,默认为5中语调
vol Number 5 音量,取值0-15,默认为5中音量
per Number 0 发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声

4.0.2.0.2 audioSet参数详解

属性名 是否必填 参数类型 默认值 说明
volume Number 1 音量。范围 0~1
startTime Number 0 开始播放的位置(单位:s),默认 0
loop Boolean false 是否循环播放,默认 false
obeyMuteSwitch Boolean true 是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true (微信小程序、百度小程序、头条小程序)

4.0.2.0.3 audioCallback参数详解

详见官方-innerAudioContext 对象的方法列表中的on事件(除onCanplay外)

4.0.2.0.4 lineUp参数详解

lineUp-是否加入语音队列
若为true则加入语音队列,当正在播放语音时,有推送过来的消息要进行语音播报,则先等上一个音频播放完后再继续播放下一个

4.0.2.0.5 returnAudio参数详解

若传returnAudio为true, 会返回一个最终返回音频对象的Promise对象, 若采用此方式,则不会加入语音队列,并且音频状态的监听需要自己得到音频对象后加上,默认是监听停止或错误后移除此对象

隐私、权限及商业化声明

1. 本插件需要申请的手机端权限列表:

2. 本插件采集的手机端数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问