Appearance
使用方法
介绍
安卓百度语音合成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>