更新记录

4.1(2021-02-05) 下载此版本

  • 优化 队列机制稳定性

  • 修复 obeyMuteSwitch增加条件编译

4.0(2019-07-13) 下载此版本

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

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

3.0(2019-06-28) 下载此版本

删除两次encodeURIComponent语句

查看更多

平台兼容性

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


插件简介

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

更新说明

版本号 更新说明
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限制(每秒查询率)是5,详见百度云文档, 若不够用请看2.
3、默认开启语音队列机制

2.当QPS限制5不够用时

当QPS限制5不够用时, 可以在百度云多创建几个应用, 后端同时维护多个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. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议