Skip to content

使用方法

介绍

安卓百度语音合成UTS原生插件是根据语音合成 Android SDK开发的插件,提供高度拟人、流畅自然的语音合成服务,满足泛阅读、订单播报、智能硬件等场景的语音播报需求。插件提供语音合成并生成合成文件以及合成消息回调等功能,支持批量合成并播报,插件支持uniapp和uniapp x

官方文档

https://cloud.baidu.com/doc/SPEECH/s/cltwwjwqm

联系作者

关注微信公众号可联系作者

插件地址

https://ext.dcloud.net.cn/plugin?id=25904

用法

在需要使用插件的页面加载以下代码

js
import * as module from "@/uni_modules/leven-uts-bdTts"

页面内容

vue
<template>
  <view>
    <button type="primary" @click="requestPermissions">申请插件所需权限</button>
    <button type="primary" @click="checkAllFilesPermission">检查是否有所有文件访问权限</button>
    <button type="primary" @click="toAllFilesPermissionPage">跳转到所有文件访问权限页面</button>
    <button type="primary" @click="getVersion">获取sdk版本号</button>
    <button type="primary" @click="init">初始化</button>
    <button type="primary" @click="speak">合成并播放</button>
    <button type="primary" @click="batchSpeak">批量合成并播放</button>
    <button type="primary" @click="synthesize">只合成不播放</button>
    <button type="primary" @click="pause">暂停播放</button>
    <button type="primary" @click="resume">继续播放</button>
    <button type="primary" @click="stop">停止合成</button>
    <button type="primary" @click="release">释放资源</button>
  </view>
</template>

<script>
  // const module = uni.requireNativePlugin("leven-bdTts-TtsModule");
  import * as module from "@/uni_modules/leven-uts-bdTts"
  export default {
    data() {
      return {}
    },
    onLoad() {

    },
    methods: {
      //释放资源
      release() {
        module.release(res => {
          console.log(res)
        })
      },
      //停止合成
      stop() {
        module.stop(res => {
          console.log(res)
        })
      },
      //继续播放
      resume() {
        module.resume(res => {
          console.log(res)
        })
      },
      //暂停播放
      pause() {
        module.pause(res => {
          console.log(res)
        })
      },
      //只合成不播放
      synthesize() {
        module.synthesize({
          //合成内容
          text: "欢迎使用百度语音合成SDK,百度语音为你提供支持。",
          //保存的文件路径,不设置默认保存到安装目录
          saveFilePath: "/storage/emulated/0/levenUtsBdTts/",
          // 设置在线发声音人: 0 普通女声(默认) 1 普通男声 3 情感男声<度逍遥> 4 情感儿童声<度丫丫>, 其它发音人见文档
          // speaker: "0",
          // 设置合成的音量,0-15 ,默认 5
          // volume: "15",
          // 设置合成的语速,0-15 ,默认 5
          // speed: "5",
          // 设置合成的语调,0-15 ,默认 5
          // pitch: "5",
          //模式
          // MIX_MODE_DEFAULT 默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_NETWORK , 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // mixMode: "MIX_MODE_DEFAULT",
          //模式超时时间,可选值:PARAM_MIX_TIMEOUT_TWO_SECOND, PARAM_MIX_TIMEOUT_THREE_SECOND,PARAM_MIX_TIMEOUT_FOUR_SECOND
          // mixModeTimeout: "PARAM_MIX_TIMEOUT_TWO_SECOND",
          //语音模型,可选值:duxiaoyu,navi,duxiaoyao,duyaya
          // voiceType: "duxiaoyu",
          //自定义语音模型,需放置到asset根目录下(dat文件名)
          // customVoiceType:""
        }, res => {
          console.log(res)
        })
      },
      //批量合成并播放
      batchSpeak() {
        module.batchSpeak({
          //合成内容
          texts: [{
            text: "开始批量播放,",
            utteranceId: "a1"
          }, {
            text: "123456,",
            utteranceId: "a2"
          }, {
            text: "欢迎使用百度语音,,,",
            utteranceId: "a3"
          }, {
            text: "重(chong2)量这个是多音字示例",
            utteranceId: "a4"
          }],
          //是否保存合成文件
          saveFile: true,
          //保存的文件路径,不设置默认保存到安装目录
          saveFilePath: "/storage/emulated/0/levenUtsBdTts/",
          // 设置在线发声音人: 0 普通女声(默认) 1 普通男声 3 情感男声<度逍遥> 4 情感儿童声<度丫丫>, 其它发音人见文档
          // speaker: "0",
          // 设置合成的音量,0-15 ,默认 5
          // volume: "15",
          // 设置合成的语速,0-15 ,默认 5
          // speed: "5",
          // 设置合成的语调,0-15 ,默认 5
          // pitch: "5",
          //模式
          // MIX_MODE_DEFAULT 默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_NETWORK , 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // mixMode: "MIX_MODE_DEFAULT",
          //模式超时时间,可选值:PARAM_MIX_TIMEOUT_TWO_SECOND, PARAM_MIX_TIMEOUT_THREE_SECOND,PARAM_MIX_TIMEOUT_FOUR_SECOND
          // mixModeTimeout: "PARAM_MIX_TIMEOUT_TWO_SECOND",
          //语音模型,可选值:duxiaoyu,navi,duxiaoyao,duyaya
          // voiceType: "duxiaoyu",
          //自定义语音模型,需放置到asset根目录下(dat文件名)
          // customVoiceType:""
        }, res => {
          console.log(res);
        })
      },
      //合成并播放
      speak() {
        module.speak({
          //合成内容
          text: "百度语音合成适用于泛阅读、订单播报、智能硬件等应用场景,让您的应用、设备开口说话,更具个性。",
          //是否保存合成文件
          saveFile: true,
          //保存的文件路径,不设置默认保存到安装目录
          saveFilePath: "/storage/emulated/0/levenUtsBdTts/",
          // 设置在线发声音人: 0 普通女声(默认) 1 普通男声 3 情感男声<度逍遥> 4 情感儿童声<度丫丫>, 其它发音人见文档
          // speaker: "0",
          // 设置合成的音量,0-15 ,默认 5
          // volume: "15",
          // 设置合成的语速,0-15 ,默认 5
          // speed: "5",
          // 设置合成的语调,0-15 ,默认 5
          // pitch: "5",
          //模式
          // MIX_MODE_DEFAULT 默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_NETWORK , 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // mixMode: "MIX_MODE_DEFAULT",
          //模式超时时间,可选值:PARAM_MIX_TIMEOUT_TWO_SECOND, PARAM_MIX_TIMEOUT_THREE_SECOND,PARAM_MIX_TIMEOUT_FOUR_SECOND
          // mixModeTimeout: "PARAM_MIX_TIMEOUT_TWO_SECOND",
          //语音模型,可选值:duxiaoyu,navi,duxiaoyao,duyaya
          // voiceType: "duxiaoyu",
          //自定义语音模型,需放置到asset根目录下(dat文件名)
          // customVoiceType:""
        }, res => {
          console.log(res);
        })
      },
      getVersion() {
        module.getVersion(res => {
          console.log(res)
        })
      },
      //初始化
      init() {
        module.initSdk({
          //网页上应用的appId,申请纯离线SDK鉴权的必备信息
          appId: "120626545",
          //网页上应用的appKey
          appKey: "Jeva58gMRCWfCFu3iQX0Qkfu",
          //网页上应用的secretKey
          secretKey: "7azxFEumSZCUTR7dU0Bv0YnZwyuGIhKA",
          //官网获取的激活纯离线sdk的序列号
          sn: "96b4e81a-74de7ca1-2b12-0274-7bbb6-00",
          //以下参数可以在初始化中不设置,支持在合成的时候设置
          // 设置在线发声音人: 0 普通女声(默认) 1 普通男声 3 情感男声<度逍遥> 4 情感儿童声<度丫丫>, 其它发音人见文档,也可以在合成的时候设置
          speaker: "0",
          // 设置合成的音量,0-15 ,默认 5
          volume: "15",
          // 设置合成的语速,0-15 ,默认 5
          speed: "5",
          // 设置合成的语调,0-15 ,默认 5
          pitch: "5",
          //模式
          // MIX_MODE_DEFAULT 默认 ,wifi状态下使用在线,非wifi离线。在线状态下,请求超时6s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE_WIFI wifi状态下使用在线,非wifi离线。在线状态下, 请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_NETWORK , 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          // MIX_MODE_HIGH_SPEED_SYNTHESIZE, 2G 3G 4G wifi状态下使用在线,其它状态离线。在线状态下,请求超时1.2s自动转离线
          mixMode: "MIX_MODE_DEFAULT",
          //模式超时时间,可选值:PARAM_MIX_TIMEOUT_TWO_SECOND, PARAM_MIX_TIMEOUT_THREE_SECOND,PARAM_MIX_TIMEOUT_FOUR_SECOND
          mixModeTimeout: "PARAM_MIX_TIMEOUT_TWO_SECOND",
          //语音模型,可选值:duxiaoyu,navi,duxiaoyao,duyaya
          voiceType: "navi",
          //自定义语音模型,需放置到asset根目录下(dat文件名)
          // customVoiceType:""
        }, res => {
          console.log(res)
        })
      },
      //申请权限
      requestPermissions() {
        module.requestPermissions({
          //申请权限列表
          permissions: [
            'android.permission.WRITE_EXTERNAL_STORAGE',
            'android.permission.READ_EXTERNAL_STORAGE',
            'android.permission.INTERNET'
          ]
        }, res => {
          console.log(res)
        })
      },
      //检查所有文件访问权限
      checkAllFilesPermission() {
        module.checkAllFilesPermission(res => {
          console.log(res)
        })
      },
      //跳转到所有文件访问权限页面
      toAllFilesPermissionPage() {
        module.toAllFilesPermissionPage(res => {
          console.log(res)
        })
      }
    }
  }
</script>

<style>
</style>