更新记录

1.0.6(2025-08-15)

更新蓝牙权限

1.0.5(2025-03-06)

优化回调函数

1.0.4(2025-03-05)

添加@UTSJS.keepAlive

查看更多

平台兼容性

uni-app(4.72)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ 1.0.2 √ 1.0.2 - - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.72)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

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,表示出错。错误码请参见“错误码及解决方法”一节

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。