Skip to content

初始化

方法名

initTts

注意

识别结果会在该方法中回调

用法

  • 用法如下:
js
module.initTts({
  params: {
    //【可选配置】初始化模式,可选值:Online,Offline,Both,Alternate,File
    //Online:只进行在线合成,不需要配置离线合成相关参数(默认)
    //Offline:只进行离线合成,不需要配置在线合成相关参数
    //Alternate:优先发起在线合成,失败后(网络错误),启动离线合成引擎开始合成
    //Both:同时发起在线合成与离线合成,在线请求失败的情况下,使用离线合成数据,该模式会消耗更多系统性能;
    //File:文件合成-SDK文档未做详细介绍
    workMode: "Online",
    //【可选配置】Debug目录,音频也保存到此目录
    debugDir: "/storage/emulated/0/hsSpeech/debug",
    //【可选配置】日志级别,可选值:DEBUG,TRACE,INFO,WARN,ERROR,FATAL
    logLevel: "DEBUG",
    //【可选配置】User ID(用以辅助定位线上用户问题)
    uid: "leven",
    //【可选配置】DEVICE_ID(用以辅助定位线上用户问题)
    deviceId: "0",
    //【可选配置】是否将合成出的音频保存到设备上
    // TTS 音频文件保存目录,必须在合成之前创建好且 APP 具有访问权限,保存的音频文件名格式为 tts_{reqid}.wav, {reqid} 是本次合成的请求 id
    saveAudio: true,
    //【可选配置】合成出的音频的采样率,默认为 24000
    sampleRate: 24000,
    //【可选配置】打断播放时使用多长时间淡出停止,单位:毫秒。默认值 0 表示不淡出
    audioFadeoutDuration: 0,
    //【必需配置】鉴权相关:Appid
    appId: "4413143697",
    //【必需配置】鉴权相关:Token,Token前需要加上Bearer;
    token: "Bearer;CUT52ZrQxcTNlbY_AtzCxJx4F4SW7KTG",
    //【可选配置】识别服务域名,默认:wss://openspeech.bytedance.com
    address: "wss://openspeech.bytedance.com",
    //【可选配置】识别服务Uri,默认:/api/v1/tts/ws_binary
    uri: "/api/v1/tts/ws_binary",
    //【必需配置】语音合成服务所用集群
    cluster: "volcano_tts",
    //【可选配置】在线合成下发的 opus-ogg 音频的压缩倍率
    compressionRate: 10,
    // ------------------------ 离线合成相关配置 -----------------------
    //离线合成方式,可选值:
    //SingleVoice:单音色资源是指一个资源文件仅包含一个离线音色,新版(V4 及以上)离线合成用的就是单音色资源
    //MultipleVoice:音色资源是指一个资源文件中包含了多个离线音色,这种资源一般是旧版(V2)离线合成所用资源
    ttsOfflineModeFormat: "SingleVoice",
    //离线合成模型名称,ttsOfflineModeFormat为MultipleVoice时有效
    ttsModelName: "aispeech_tts",
    //【必需配置】离线合成鉴权相关:证书文件存放路径
    licenseDirectory: "/storage/emulated/0/hsSpeech/debug",
    //【必需配置】Authenticate Type:可选值:pre_bind,late_bind
    authenticateType: "pre_bind",
    // 证书名,用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    ttsLicenseName: "",
    // 业务 ID, 用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    ttsLicenseBusiId: "",
    //【必需配置】离线合成鉴权相关:Authenticate Address,authenticateType为late_bind时有效
    authenticateAddress: "",
    //【必需配置】离线合成鉴权相关:Authenticate Uri,authenticateType为late_bind时有效
    authenticateUri: "",
    //【必需配置】离线合成鉴权相关:Business Key,authenticateType为late_bind时有效
    businessKey: "",
    //【必需配置】离线合成鉴权相关:Authenticate Secret,authenticateType为late_bind时有效
    authenticateSecret: "fVn88i22Km1zM1WsU4SWc0wcqHOSp8KR",
    // ------------------------ 在离线切换相关配置 -----------------------
    // 断点续播功能在断点处会发生由在线合成音频切换到离线合成音频,为了提升用户体验,SDK 支持
    // 淡出地停止播放在线音频然后再淡入地开始播放离线音频,下面两个参数可以控制淡出淡入的长度
    //【可选配置】断点续播专用,切换到离线合成时淡入的音频长度,单位:毫秒
    ttsFadeInDuration: 30,
    //【可选配置】断点续播专用,在线合成停止播放时淡出的音频长度,单位:毫秒
    ttsFadeoutDuration: 30,
    //【可选配置】APP版本号
    appVersion: "1.0.0",
    //【可选配置】是否使用在线模式
    useOnlineModel: true,
    //【可选配置】离线合成将会使用的音色
    needDownloadVoiceType: [],
    //【可选配置】需要下载的离线合成语种资源
    offlineLanguage: ""
  },
  //成功执行的函数
  success: (res) => {
    console.log(res);
    let data = res.data;
    let status = data.status;
    if (status == "onInitSuccess") {
      //初始化成功
      console.log("初始化成功")
    } else if (status == "onSpeechMessage") {
      //语音消息
      let typeName = data.typeName;
      switch (typeName) {
        case "MESSAGE_TYPE_ENGINE_START":
          console.log("启动引擎成功")
          break
        case "MESSAGE_TYPE_ENGINE_STOP":
          console.log("引擎关闭")
          break
        case "MESSAGE_TYPE_ENGINE_ERROR":
          console.log("错误信息回调:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_SYNTHESIS_BEGIN":
          console.log("合成开始:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_SYNTHESIS_END":
          console.log("合成结束:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_START_PLAYING":
          console.log("播放开始:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_PLAYBACK_PROGRESS":
          console.log("播放进度:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_FINISH_PLAYING":
          console.log("播放结束:" + data.result)
          break
        case "MESSAGE_TYPE_TTS_AUDIO_DATA":
          console.log("音频数据:" + data.result)
          break
      }
    }
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  complete: (res) => {
    // console.log(res)
  }
})
js
module.initTts({
  params: {
    //【可选配置】初始化模式,可选值:Online,Offline,Both,Alternate,File
    //Online:只进行在线合成,不需要配置离线合成相关参数(默认)
    //Offline:只进行离线合成,不需要配置在线合成相关参数
    //Alternate:优先发起在线合成,失败后(网络错误),启动离线合成引擎开始合成
    //Both:同时发起在线合成与离线合成,在线请求失败的情况下,使用离线合成数据,该模式会消耗更多系统性能;
    //File:文件合成-SDK文档未做详细介绍
    workMode: "Online",
    //【可选配置】Debug目录,音频也保存到此目录
    debugDir: "/storage/emulated/0/hsSpeech/debug",
    //【可选配置】日志级别,可选值:DEBUG,TRACE,INFO,WARN,ERROR,FATAL
    logLevel: "DEBUG",
    //【可选配置】User ID(用以辅助定位线上用户问题)
    uid: "leven",
    //【可选配置】DEVICE_ID(用以辅助定位线上用户问题)
    deviceId: "0",
    //【可选配置】是否将合成出的音频保存到设备上
    // TTS 音频文件保存目录,必须在合成之前创建好且 APP 具有访问权限,保存的音频文件名格式为 tts_{reqid}.wav, {reqid} 是本次合成的请求 id
    saveAudio: true,
    //【可选配置】合成出的音频的采样率,默认为 24000
    sampleRate: 24000,
    //【可选配置】打断播放时使用多长时间淡出停止,单位:毫秒。默认值 0 表示不淡出
    audioFadeoutDuration: 0,
    //【必需配置】鉴权相关:Appid
    appId: "4413143697",
    //【必需配置】鉴权相关:Token,Token前需要加上Bearer;
    token: "Bearer;CUT52ZrQxcTNlbY_AtzCxJx4F4SW7KTG",
    //【可选配置】识别服务域名,默认:wss://openspeech.bytedance.com
    address: "wss://openspeech.bytedance.com",
    //【可选配置】识别服务Uri,默认:/api/v1/tts/ws_binary
    uri: "/api/v1/tts/ws_binary",
    //【必需配置】语音合成服务所用集群
    cluster: "volcano_tts",
    //【可选配置】在线合成下发的 opus-ogg 音频的压缩倍率
    compressionRate: 10,
    // ------------------------ 离线合成相关配置 -----------------------
    //离线合成方式,可选值:
    //SingleVoice:单音色资源是指一个资源文件仅包含一个离线音色,新版(V4 及以上)离线合成用的就是单音色资源
    //MultipleVoice:音色资源是指一个资源文件中包含了多个离线音色,这种资源一般是旧版(V2)离线合成所用资源
    ttsOfflineModeFormat: "SingleVoice",
    //离线合成模型名称,ttsOfflineModeFormat为MultipleVoice时有效
    ttsModelName: "aispeech_tts",
    //【必需配置】离线合成鉴权相关:证书文件存放路径
    licenseDirectory: "/storage/emulated/0/hsSpeech/debug",
    //【必需配置】Authenticate Type:可选值:pre_bind,late_bind
    authenticateType: "pre_bind",
    // 证书名,用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    ttsLicenseName: "",
    // 业务 ID, 用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    ttsLicenseBusiId: "",
    //【必需配置】离线合成鉴权相关:Authenticate Address,authenticateType为late_bind时有效
    authenticateAddress: "",
    //【必需配置】离线合成鉴权相关:Authenticate Uri,authenticateType为late_bind时有效
    authenticateUri: "",
    //【必需配置】离线合成鉴权相关:Business Key,authenticateType为late_bind时有效
    businessKey: "",
    //【必需配置】离线合成鉴权相关:Authenticate Secret,authenticateType为late_bind时有效
    authenticateSecret: "fVn88i22Km1zM1WsU4SWc0wcqHOSp8KR",
    // ------------------------ 在离线切换相关配置 -----------------------
    // 断点续播功能在断点处会发生由在线合成音频切换到离线合成音频,为了提升用户体验,SDK 支持
    // 淡出地停止播放在线音频然后再淡入地开始播放离线音频,下面两个参数可以控制淡出淡入的长度
    //【可选配置】断点续播专用,切换到离线合成时淡入的音频长度,单位:毫秒
    ttsFadeInDuration: 30,
    //【可选配置】断点续播专用,在线合成停止播放时淡出的音频长度,单位:毫秒
    ttsFadeoutDuration: 30,
    //【可选配置】APP版本号
    appVersion: "1.0.0",
    //【可选配置】是否使用在线模式
    useOnlineModel: true,
    //【可选配置】离线合成将会使用的音色
    needDownloadVoiceType: [] as string[],
    //【可选配置】需要下载的离线合成语种资源
    offlineLanguage: ""
  },
  //成功执行的函数
  success: (res) => {
    const data = res.data;
    console.log(data)
    let status = data.getString("status")
    if (status == "onInitSuccess") {
      console.log("初始化成功")
    } else if (status == "onSpeechMessage") {
      //语音消息
      let typeName = data.getString("typeName");
      switch (typeName) {
        case "MESSAGE_TYPE_ENGINE_START":
          console.log("启动引擎成功")
          break
        case "MESSAGE_TYPE_ENGINE_STOP":
          console.log("引擎关闭")
          break
        case "MESSAGE_TYPE_ENGINE_ERROR":
          console.log("错误信息回调:" + data.getString("result"))
          break
        case "MESSAGE_TYPE_TTS_SYNTHESIS_BEGIN":
          console.log("合成开始")
          break
        case "MESSAGE_TYPE_TTS_SYNTHESIS_END":
          console.log("合成结束:" + data.getString("result"))
          break
        case "MESSAGE_TYPE_TTS_START_PLAYING":
          console.log("播放开始:" + data.getString("result"))
          break
        case "MESSAGE_TYPE_TTS_PLAYBACK_PROGRESS":
          console.log("播放进度:" + data.getString("result"))
          break
        case "MESSAGE_TYPE_TTS_FINISH_PLAYING":
          console.log("播放结束:" + data.getString("result"))
          break
        case "MESSAGE_TYPE_TTS_AUDIO_DATA":
          console.log("音频数据:" + data.getString("result"))
          break
      }
    }
  },
  //失败执行的函数
  fail: (res) => {
    console.log(res)
  },
  //接口调用完成返回函数,不管成功还是失败都会返回
  // complete: (res) => {
  //   console.log(res)
  // }
} as LevenOptions)
  • 参数说明
    参数名参数类型是否必填默认值参数描述
    paramsObject接口请求参数
    params.workModeStringOnline初始化模式,可选值:
    Online:只进行在线合成,不需要配置离线合成相关参数(默认)
    Offline:只进行离线合成,不需要配置在线合成相关参数
    Alternate:优先发起在线合成,失败后(网络错误),启动离线合成引擎开始合成
    Both:同时发起在线合成与离线合成,在线请求失败的情况下,使用离线合成数据,该模式会消耗更多系统性能
    File:文件合成-SDK文档未做详细介绍
    params.debugDirStringdebug目录,生成的音频文件也在该目录中
    params.logLevelString日志级别,可选值:DEBUGTRACEINFOWARNERRORFATAL
    params.uidString用户id(用以辅助定位线上用户问题)
    params.deviceIdString设备id(用以辅助定位线上用户问题)
    params.saveAudioBooleanfalse是否将合成出的音频保存到设备上,TTS 音频文件保存目录,必须在合成之前创建好且 APP 具有访问权限,保存的音频文件名格式为 tts_{reqid}.wav, {reqid} 是本次合成的请求 id
    params.sampleRateInteger24000合成出的音频的采样率,默认24000
    params.audioFadeoutDurationInteger打断播放时使用多长时间淡出停止,单位:毫秒。默认值 0 表示不淡出
    params.appIdString鉴权相关:Appid
    params.tokenString鉴权相关:Token,Token前需要加上Bearer;
    params.addressStringwss://openspeech.bytedance.com识别服务域名,默认:wss://openspeech.bytedance.com
    params.uriString/api/v1/tts/ws_binary识别服务Uri,默认:/api/v1/tts/ws_binary
    params.clusterString语音合成服务所用集群
    params.compressionRateInteger在线合成下发的 opus-ogg 音频的压缩倍率
    params.ttsOfflineModeFormatStringSingleVoice离线合成方式,可选值:
    SingleVoice:单音色资源是指一个资源文件仅包含一个离线音色,新版(V4 及以上)离线合成用的就是单音色资源
    MultipleVoice:音色资源是指一个资源文件中包含了多个离线音色,这种资源一般是旧版(V2)离线合成所用资源
    params.ttsModelNameString离线合成模型名称,ttsOfflineModeFormat为MultipleVoice时有效
    params.licenseDirectoryString离线合成鉴权相关:证书文件存放路径
    params.authenticateTypeStringAuthenticate Type:可选值:pre_bind,late_bind
    params.ttsLicenseNameString证书名,用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    params.ttsLicenseBusiIdString业务 ID, 用于下载按报名授权的证书文件,authenticateType为pre_bind时有效
    params.authenticateAddressString离线合成鉴权相关:Authenticate Address,authenticateType为late_bind时有效
    params.authenticateUriString离线合成鉴权相关:Authenticate Uri,authenticateType为late_bind时有效
    params.businessKeyString离线合成鉴权相关:Business Key,authenticateType为late_bind时有效
    params.authenticateSecretString离线合成鉴权相关:Authenticate Secret,authenticateType为late_bind时有效
    params.ttsFadeInDurationInteger断点续播功能在断点处会发生由在线合成音频切换到离线合成音频,为了提升用户体验,SDK 支持,淡出地停止播放在线音频然后再淡入地开始播放离线音频,下面两个参数可以控制淡出淡入的长度,断点续播专用,切换到离线合成时淡入的音频长度,单位:毫秒
    params.ttsFadeoutDurationInteger断点续播专用,在线合成停止播放时淡出的音频长度,单位:毫秒
    params.appVersionStringAPP版本号
    params.useOnlineModelBoolean是否使用在线模式
    params.needDownloadVoiceTypeString[]离线合成将会使用的音色
    params.offlineLanguageString需要下载的离线合成语种资源
    successFunction执行成功的函数
    failFunction执行失败的函数
    completeFunction执行完成的函数,不管成功还是失败都会执行

回调

  • 示例
json
{
  "status": "onInitSuccess"
}
json
{
    "typeName": "MESSAGE_TYPE_TTS_PLAYBACK_PROGRESS",
    "status": "onSpeechMessage",
    "debugDir": "/storage/emulated/0/hsSpeech/debug",
    "len": 79,
    "typeValue": 1407,
    "result": "{\"progress\":0.08102496713399887,\"reqid\":\"e8fd3cab-87cf-4af9-b555-271bd05ad606\"}"
}
  • 回调说明:
    参数名参数类型参数描述
    messageString消息提示
    dataObject数据对象
    data.statusString类型
    onInitSuccess:初始化成功
    onSpeechMessage:消息回调
    data.typeNameString事件类型,具体可参考示例文件
    data.typeValueInteger事件值
    data.lenInteger字节数
    data.resultString识别结果
    data.debugDirStringdebug目录,合成的音频文件也在该目录下
    codeInteger返回类型,0.成功,其他:失败