speick

init stop

概述

speick 封装了百度开放平台的语音合成SDK,可以实现离线或在线语音合成。
开发流程:
1.先在百度云申请账号,然后在控制台创建应用(APP包名必须与在百度云创建的应用语音包名一致,否则离线语音合成不可用)。
2.按照以下示例配置config.xml文件

配置方法如下:

  • 名称:baiduTTSauthorization
  • 参数:appid、appkey、secretkey
  • 配置示例:

3.调用dataCopy方法,将离线资源文件拷贝至手机存储中,该方法只需要调用一次即可。
4.调用init方法并携带参数。
5.调用play方法实现语音合成功能。

dataCopy

拷贝离线语音合成资源文件到手机内存,路径为:/手机存储/Android/data/你的应用包名/file/baiduTTS,例如:/sdcard/Android/data/com.yourapp.tts/file/baiduTTS
提示:如果只使用在线模式进行语音合成,则不需要运行此方法。

dataCopy(callback(ret))

ret:

  • 类型:JSON对象
  • 内部字段:
  1. state: "ok" //"ok" 代表成功,返回其他值则为失败
  2. }
  1. var wx = api.require('speick');
  2. var errpd = function (ret,err) {
  3. if(ret){
  4. }
  5. if(err){
  6. alert('返回:'+JSON.stringify(err))
  7. }
  8. }
  9. speick.dataCopy(errpd);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

init

语音合成初始化

init({params}, callback(ret, err))

params

onlyOnline:

  • 类型:布尔
  • 描述:(必填)是否只使用在线语音合成模式
    true:只使用在线合成模式
    false:使用离在线混合模式

speakId:

  • 类型:int
  • 范围:1-4
  • 描述:(选填)离线模式下的发音人。默认为离线女生。
    1:离线女生
    2:离线男生
    3:离线度丫丫
    4:离线度逍遥

file:

  • 类型:布尔
  • 范围:true或false
  • 描述:(选填)是否保存语音合成的文件到手机存储(路径为/手机存储/Android/data/你的应用包名/file/wav/voice.wav,例如:/sdcard/Android/data/com.yourapp.tts/file/wav/voice.wav)。
  • 类型:JSON对象
  • 内部字段:

    1. {
    2. msg: "初始化成功", //字符串,初始化结果描述
    3. }

示例代码

iOS系统,Android系统

可提供的1.0.0及更高版本

play

开始合成语音,如果初始化时参数file为true,调用本方法则会存储合成的语音音频文件到手机存储中,存储路径上面有介绍。
提示:根据百度官方SDK文档,目前有两种模式
纯在线模式 : WIFI 4G 3G 2G 都会尝试连接百度服务器。如果百度服务器失败,那么合成失败。
离在线混合模式: WIFI下强制尝试在线优先。其它网络情况可以设置是否为在线优先(如果连接失败,那么切换成离线合成)或者直接离线合成。

play({params}, callback(ret, err))

params

text:

  • 类型:字符串
  • 描述:(必填)要进行语音合成的文本,text不超过1024的GBK字节,即512个汉字或英文字母数字。

play:

  • 类型:布尔
  • 描述:(必填)语音合成完毕后是否进行播放。

onlineSpeakId:

  • 类型:int
  • 描述:(选填)在线模式下发音人
  • 取值范围:0-4(默认为普通女声)
    0:普通女声
    1:普通男声
    2:特别男声
    3:情感男声<度逍遥>
    4:情感儿童声<度丫丫>

volume:

  • 类型:int
  • 描述:(选填)合成语音的音量
  • 取值范围:0-9(默认为5)

speed:

  • 类型:int
  • 描述:(选填)合成语音的语速
  • 取值范围:0-9(默认为5)

tone:

  • 类型:int
  • 描述:(选填)合成语音的语调
  • 取值范围:0-9(默认为5)

way:

  • 类型:int
  • 取值范围:1-4(默认为1)
    1:默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
    2:wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
    3:wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
    4:2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线

ret:

  • 类型:JSON对象
  • 内部字段:

    1. {
    2. state:"1" //字符串,返回1则成功,返回其他值则失败
    3. }

stop

stop(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:

    1. {
    2. state:1 //返回1则成功,返回其他值则失败
    3. }

示例代码

  1. var speick = api.require('speick');
  2. var errpd = function (ret) {
  3. if(ret){
  4. alert('返回:'+JSON.stringify(ret))
  5. }
  6. }
  7. speick.stop(errpd);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

listen

监听语音播放事件。
注意:该函数在开始播放合成语音时会不停的进行回调,SpeechError返回的错误代码在此处查询
listen(callback(ret))

ret:

  • 类型:JSON对象
  • 内部字段:

  1. var errpd = function (ret) {
  2. if(ret){
  3. alert('返回:'+JSON.stringify(ret))
  4. }
  5. }
  6. speick.listen(errpd);

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

listenstop

停止语音播放监听

listenstop(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:

    1. {
    2. state:1 //返回1则成功,返回其他值则失败
    3. }

示例代码

  1. var speick = api.require('speick');
  2. var errpd = function (ret) {
  3. if(ret){
  4. alert('返回:'+JSON.stringify(ret))
  5. }
  6. speick.listenstop(errpd);

可提供的1.0.0及更高版本