更新记录
1.0.1(2026-03-18)
- 修复 Android 真机下暂停/继续链路,优化任务超时判定与暂停期间计时策略。
- 优化插队与停止场景的任务状态收敛,减少并发测试下的误报日志。
- 增强运行时探测日志,新增
nativeChannel 与适配器可用性明细输出。
- 补齐
utssdk 目录最小结构,满足插件市场 UTS 插件目录校验要求。
- 完成 Android 真机(PBAM00 / Android 8.1.0)一键自检通过验证。
平台兼容性
uni-app(4.84)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
uni-app x(4.84)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| √ |
√ |
√ |
√ |
√ |
√ |
lizhao-smart-tts
全端语音播报编排插件,支持统一 API、任务队列、多层回退与长文本分段。
1. 能力概览
- 统一 API:
initTTS、speak、pause、resume、stop、getVoices、getCapabilities、on/off
- 编排能力:任务队列、优先级、插队(interrupt)、长文本分段
- 回退策略:
native -> web speech -> cloud audio
- 组件支持:
<lizhao-smart-tts />
2. 快速使用(API)
import { initTTS, speak, stop } from '@/uni_modules/lizhao-smart-tts'
await initTTS({
lang: 'zh-CN',
fallbackChain: ['native', 'web', 'cloud'],
cloud: {
endpoint: 'https://your-api.example.com/tts',
method: 'POST',
responseField: 'audioUrl'
}
})
await speak({
text: '你好,这是 lizhao-smart-tts 的全端播报演示。',
priority: 1,
maxSegmentLength: 120
})
await stop()
3. 快速使用(组件)
<lizhao-smart-tts
text="这是组件方式触发的语音播报。"
:options="ttsOptions"
@ready="onReady"
@start="onStart"
@end="onEnd"
@error="onError"
/>
4. API 说明
initTTS(options): Promise<Capabilities>
初始化 TTS 引擎与回退链。
speak(options): Promise<{ taskId: string; status: 'completed' }>
创建并执行一个播报任务。
pause(): Promise<{ paused: boolean; reason?: string }>
暂停当前正在播报的任务。
resume(): Promise<{ resumed: boolean; reason?: string }>
继续已暂停的任务。
stop(options?): Promise<{ stopped: boolean; queueCleared: boolean }>
停止当前任务,并可选择清空队列。
getVoices(): Promise<VoiceInfo[]>
获取当前可用音色列表。
getCapabilities(): Capabilities
获取当前运行时能力与可用适配器。
on(eventName, handler) / off(eventName, handler)
订阅与取消订阅运行事件。
TTSInitOptions
| 参数 |
类型 |
必填 |
说明 |
lang |
string |
否 |
默认语言。支持 BCP47 语言标记(如 zh-CN、en-US、ja-JP),插件会透传给适配器/云端,默认 zh-CN。 |
rate |
number |
否 |
语速。建议范围 0.5 ~ 2,默认 1;超出范围时由底层适配器决定是否截断或忽略。 |
pitch |
number |
否 |
音调。建议范围 0 ~ 2,默认 1;超出范围时由底层适配器决定是否截断或忽略。 |
volume |
number |
否 |
音量。建议范围 0 ~ 1,默认 1;超出范围时由底层适配器决定是否截断或忽略。 |
maxSegmentLength |
number |
否 |
长文本分段阈值,默认 120。 |
timeout |
number |
否 |
单段执行超时毫秒数,默认 12000。 |
fallbackChain |
Array<'native' \| 'web' \| 'cloud'> |
否 |
适配器回退顺序,默认 ['native', 'web', 'cloud']。 |
cloud |
CloudOptions |
否 |
云端回退配置对象。 |
SpeakOptions
| 参数 |
类型 |
必填 |
说明 |
text |
string |
是 |
待播报文本。 |
priority |
number |
否 |
队列优先级,值越大越优先。 |
interrupt |
boolean |
否 |
是否插队执行;为 true 时会抢占当前任务。 |
lang |
string |
否 |
本次任务覆盖默认语言。支持 BCP47 语言标记(如 zh-CN、en-US、ja-JP)。 |
rate |
number |
否 |
本次任务覆盖默认语速。建议范围 0.5 ~ 2。 |
pitch |
number |
否 |
本次任务覆盖默认音调。建议范围 0 ~ 2。 |
volume |
number |
否 |
本次任务覆盖默认音量。建议范围 0 ~ 1。 |
voiceName |
string |
否 |
指定音色名称。支持值来自 getVoices() 返回结果中的 name 字段。 |
maxSegmentLength |
number |
否 |
本次任务覆盖分段阈值。 |
timeout |
number |
否 |
本次任务覆盖超时毫秒数。 |
cloud |
CloudOptions |
否 |
本次任务覆盖云端配置。 |
StopOptions
| 参数 |
类型 |
必填 |
说明 |
clearQueue |
boolean |
否 |
是否清空等待队列,默认 true。 |
5. 组件 Props / Events
Props
| 参数 |
类型 |
必填 |
说明 |
text |
string |
否 |
按钮触发时播报的默认文本。 |
options |
TTSInitOptions & SpeakOptions |
否 |
透传给内部初始化与播报调用的配置。 |
buttonText |
string |
否 |
按钮文案,默认“开始语音播报”。 |
disabled |
boolean |
否 |
是否禁用交互。 |
Events
| 参数 |
类型 |
必填 |
说明 |
ready |
(capabilities: Capabilities) => void |
否 |
初始化成功后触发。 |
start |
(payload: { taskId: string; text: string; segmentCount: number }) => void |
否 |
任务开始时触发。 |
progress |
(payload: { taskId: string; adapter: string; segment: string; progress: number }) => void |
否 |
播报进度更新时触发。 |
end |
(payload: { taskId: string; text: string }) => void |
否 |
任务完成时触发。 |
error |
(err: any) => void |
否 |
初始化或播报失败时触发。 |
success |
(result: { taskId: string; status: 'completed' }) => void |
否 |
本次组件触发任务成功时触发。 |
6. 云端回退配置(CloudOptions)
| 参数 |
类型 |
必填 |
说明 |
synthesize |
(payload: { text: string; lang: string; voiceName: string }) => Promise<string \| { url: string }> |
否 |
建议优先使用;直接返回音频 URL 或 { url }。 |
endpoint |
string |
否 |
未提供 synthesize 时,插件通过 uni.request 请求该地址。 |
method |
'GET' \| 'POST' |
否 |
请求方法,默认 POST。 |
headers |
Record<string, string> |
否 |
请求头配置。 |
responseField |
string |
否 |
响应中音频地址字段名,默认 audioUrl。 |
7. 错误码
| 参数 |
类型 |
必填 |
说明 |
NOT_INITIALIZED |
string |
是 |
未初始化。 |
INVALID_TEXT |
string |
是 |
文本为空或无有效分段。 |
ADAPTER_UNAVAILABLE |
string |
是 |
当前适配器不可用。 |
ADAPTER_FAILED |
string |
是 |
适配器执行失败。 |
TASK_STOPPED |
string |
是 |
任务被停止或清队列。 |
TASK_TIMEOUT |
string |
是 |
单段播放超时。 |
NO_AVAILABLE_ADAPTER |
string |
是 |
回退链全部失败。 |
CLOUD_CONFIG_REQUIRED |
string |
是 |
云端回退缺少必要配置。 |
8. 平台兼容性
uni-app
- Vue2、Vue3
- Chrome、Safari
- app-vue、app-nvue
- Android、iOS、鸿蒙
- 微信小程序
uni-app x
- Chrome、Safari
- Android、iOS、鸿蒙
- 微信小程序