更新记录
1.0.2(2026-06-11)
优化文档
1.0.1(2026-06-11)
震动方法优化
1.0.0(2026-03-16)
文字转语音(文字播报、语音合成、免服务费)、震动提示 ba-tts-u-new(UTS版)
查看更多平台兼容性
uni-app(3.7.13)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | - | - | √ | √ | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(3.7.13)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | √ | √ | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | × | √ |
ba-tts-u-new
UTS语音合成插件,提供 TTS 语音合成 和 振动 能力(无服务费),可用于播报提示、朗读内容等场景。(注意:建议先试用,再购买)。
- 同时支持 uni-app 与 uni-app x(API 一致;uni-app x 的
.uvue页面需按 UTS 规范显式标注类型,见下方示例) - 同时支持三端(安卓、iOS、Harmony)
- 支持语音合成,文本转语音
- 支持震动
支持定制,有建议和需要,可点击这里
也可关注博客,实时更新最新插件
文字转语音(文字播报、语音合成、免服务费)、震动提示 Ba-TTS
安装与基座
- 在 HBuilderX 插件市场导入,或将
uni_modules/ba-tts-u-new拷贝到项目uni_modules/目录。 - 本插件为 UTS 原生插件,App 端调试与真机运行须使用自定义基座(或使用云打包 / 正式打包)。标准运行基座不包含本插件,直接运行会报插件不存在或调用失败。
- 导入或更新插件后,请在 HBuilderX 中 重新制作自定义基座,并在真机上安装该自定义基座后再调试。
- 正式发版时走云打包或本地打包即可,插件原生代码会一并编译进安装包。
使用说明
uni-app(.vue / .nvue,JavaScript)
import { speak, stopSpeak, playVibrate, cancelVibrate } from '@/uni_modules/ba-tts-u-new';
speak({
text: '你好,世界',
pitch: 1.0,
speed: 1.0,
success: (res) => console.log('speak success', res),
fail: (res) => console.error('speak fail', res),
complete: (res) => console.log('speak complete', res),
statusChange: (res) => console.log('status', res.action, res.status),
});
stopSpeak({ success: (res) => console.log('stop success', res) });
playVibrate({ success: (res) => console.log('vibrate success', res) });
cancelVibrate({ success: (res) => console.log('cancel vibrate success', res) });
uni-app x(.uvue,<script setup lang="uts">)
UTS 编译器要求:导入类型、回调参数显式标注类型、options 对象使用 as StartOptions 等断言后再传入,否则可能报「参数类型不匹配 UTSJSONObject」等错误。
import {
speak, stopSpeak, playVibrate, cancelVibrate,
StartOptions, StopOptions, PlayVibrateOptions, CancelVibrateOptions,
ApiResult, StatusResult
} from '@/uni_modules/ba-tts-u-new';
const options = {
text: '你好,世界',
pitch: 1.0,
speed: 1.0,
success: (res : ApiResult) => { console.log('speak success', res.msg) },
fail: (res : ApiResult) => { console.error('speak fail', res.msg) },
complete: (res : ApiResult) => { console.log('speak complete', res.msg) },
statusChange: (res : StatusResult) => { console.log('status', res.action, res.status) }
} as StartOptions;
speak(options);
const stopOpts = {
success: (res : ApiResult) => { console.log('stop success', res.msg) }
} as StopOptions;
stopSpeak(stopOpts);
const vibrateOpts = {
// pattern: [0, 500],
success: (res : ApiResult) => { console.log('vibrate success', res.msg) }
} as PlayVibrateOptions;
playVibrate(vibrateOpts);
const cancelOpts = {
success: (res : ApiResult) => { console.log('cancel vibrate success', res.msg) }
} as CancelVibrateOptions;
cancelVibrate(cancelOpts);
方法与参数清单
speak(options: StartOptions)
功能:文本转语音播报。
参数 StartOptions:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
text |
string |
是 | 要朗读的文本,不能为空字符串。 |
pitch |
number |
否 | 音调,默认 1.0,> 0 时有效。 |
speed |
number |
否 | 语速,默认 1.0,> 0 时有效。 |
success |
(res: ApiResult) => void |
否 | 调用成功回调,res.ok === true。 |
fail |
(res: ApiResult) => void |
否 | 调用失败回调,res.ok === false。 |
complete |
(res: ApiResult) => void |
否 | 成功或失败都会回调一次。 |
statusChange |
(res: StatusResult) => void |
否 | TTS 状态回调:res.action 为 onStart / onDone / onError。 |
回调结构:
type ApiResult = {
ok: boolean; // true/false
msg: string; // 描述信息,如 'success'、错误原因等
};
type StatusResult = {
action: string; // "onStart" | "onDone" | "onError"
status: string; // 平台返回的状态描述
};
stopSpeak(options: StopOptions)
功能:停止当前朗读并释放 TTS 实例(重复调用安全)。
参数 StopOptions:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
success |
(res: ApiResult) => void |
否 | 停止并释放成功时回调。 |
fail |
(res: ApiResult) => void |
否 | 停止失败时回调(较少出现)。 |
complete |
(res: ApiResult) => void |
否 | 成功或失败都会回调一次。 |
playVibrate(options: PlayVibrateOptions)
功能:触发振动(单次约 500ms,具体以平台为准)。
参数 PlayVibrateOptions:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
pattern |
number[] |
否 | 振动节奏数组,单位毫秒,如 [静默, 振动, 静默, 振动, ...],当前实现会优先取首项时长,未传则默认 500。 |
repeat |
number |
否 | 从 pattern 的某一索引开始重复;-1 表示不重复,当前实现主要使用单次振动。 |
success |
(res: ApiResult) => void |
否 | 振动调用成功时回调。 |
fail |
(res: ApiResult) => void |
否 | 振动调用失败时回调。 |
complete |
(res: ApiResult) => void |
否 | 成功或失败都会回调一次。 |
cancelVibrate(options: CancelVibrateOptions)
功能:取消振动(若平台支持)。iOS 系统级振动本身不可取消,实现上直接返回成功以保证接口一致性。
参数 CancelVibrateOptions:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
success |
(res: ApiResult) => void |
否 | 取消成功时回调。 |
fail |
(res: ApiResult) => void |
否 | 取消失败时回调。 |
complete |
(res: ApiResult) => void |
否 | 成功或失败都会回调一次。 |

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 14446
赞赏 6
下载 12473251
赞赏 1936
赞赏
京公网安备:11010802035340号