更新记录
1.0.5(2025-03-06)
优化回调函数
1.0.4(2025-03-05)
添加@UTSJS.keepAlive
1.0.3(2025-03-05)
添加音量设置; 添加离线、在线、混合模式选择;集成本地语音库等
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.91,Android:支持,iOS:不支持,HarmonyNext:不确定 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
fy-bdtts
android自带的tts可能部分手机不兼容,所以就需要接入第三方的语音合成插件。
开发文档
UTS 语法
UTS API插件
UTS 组件插件
Hello UTS
导出FyBDTTS类
构造函数options 参数说明
参数名 |
类型 |
必填 |
说明 |
appId |
string |
是 |
百度开放平台创建应用后分配的鉴权信息 |
appKey |
string |
是 |
百度开放平台创建应用后分配的鉴权信息 |
secretKey |
string |
是 |
百度开放平台创建应用后分配的鉴权信息 |
sn |
string |
否 |
离线模型的序列号,当前用的是在线模型。 |
ttsMode |
string |
否 |
当前用的是在线模型 ONLINE,MIX,OFFLINE. 默认是MIX |
PARAM_SPEAKER |
string |
否 |
仅在线生效,在线的发音人,默认是 "0" |
PARAM_VOLUME |
string |
否 |
在线及离线合成的音量 。范围["0" - "15"], 不支持小数。 "0" 最轻,"15" 最响(取值为0时为音量最小值,并非为无声) |
PARAM_SPEED |
string |
否 |
在线及离线合成的语速 。范围["0" - "15"], 不支持小数。 "0" 最慢,"15" 最快 |
PARAM_PITCH |
string |
否 |
在线及离线合成的语调 。范围["0" - "15"], 不支持小数。 "0" 最低沉, "15" 最尖 |
接口事件说明
方法 |
参数 |
返回 |
说明 |
init |
TTSOptions |
void |
初始化回调监听 |
speak |
SpeakOptions |
number |
文本合成语音,调用方法后会返回状态码,当状态码不等于0时,说明出错了 |
synthesize |
SpeakOptions |
number |
只合成不播放, 返回0表示成功 |
batchSpeak |
texts: Array<Pair<String, String>> |
number |
批量合成并播放接口 |
pause |
void |
void |
暂停播放。仅调用speak后生效 |
resume |
void |
void |
继续播放。仅调用speak后生效,调用pause生效 |
stop |
void |
ResultOptions |
中断当前话语(无论是播放还是渲染到文件)并丢弃队列中的其他话语。 |
release |
void |
void |
停止合成引擎。即停止播放,合成,清空内部合成队列。 |
setStereoVolume |
leftVolume: Float, rightVolume: Float |
void |
设置播放音量,默认已经是最大声音;0.0f为最小音量,1.0f为最大音量 |
SpeakOptions参数说明
参数名 |
类型 |
必填 |
说明 |
text |
string |
是 |
语音播放的文本 |
uuid |
string |
否 |
当前播放的唯一标识 |
start |
function |
否 |
发言开始时调用 |
done |
function |
否 |
发言完成时调用 |
error |
function |
否 |
发言出错时调用 |
例子
<template>
<view class="content">
</view>
</template>
<script>
import { FyBDTTS } from '@/uni_modules/fy-bdtts'
export default {
data() {
return {
title: 'Hello'
}
},
onReady() {
const bdTTS = new FyBDTTS({
appId: 'xxx', // 百度开放平台创建应用后分配的鉴权信息
appKey: 'xxx', // 百度开放平台创建应用后分配的鉴权信息
secretKey: 'xxx', // 百度开放平台创建应用后分配的鉴权信息
PARAM_SPEAKER: "1",
PARAM_SPEED: "6",
PARAM_PITCH: "5"
});
bdTTS.init({
done: function (uuid) {
console.log(uuid);
}
})
setTimeout(() => {
bdTTS.speak({ text: '你好啊!' });
}, 1000);
},
}
</script>
<style>
</style>
百度语音合成有免费额度,一定需要先领取免费额度再调用,否则会报错"(-7)request result contains error message[(502)110: Access token invalid or no longer valid]"
注意需要合成的每个文本text不超过120的GBK字节,即60个汉字或英文字母数字。超过请自行按照句号问号等标点切分,调用多次合成接口。返回结果不为0,表示出错。错误码请参见“错误码及解决方法”一节