更新记录

1.0.5(2025-03-06)

优化回调函数

1.0.4(2025-03-05)

添加@UTSJS.keepAlive

1.0.3(2025-03-05)

添加音量设置; 添加离线、在线、混合模式选择;集成本地语音库等

查看更多

平台兼容性

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

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问