更新记录

0.0.1(2025-11-03) 下载此版本

  • init

平台兼容性

uni-app(4.81)

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

uni-app x(4.81)

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

lime-tts

一个基于UTS的文本转语音(TTS)插件,支持多平台(安卓、iOS、鸿蒙),提供丰富的语音合成与播报功能,包括多语种支持、自定义语速音量、事件监听等特性。

文档链接

📚 插件详细文档请访问以下站点: -tts插件文档 - 站点1 -tts插件文档 - 站点2 -tts插件文档 - 站点3

安装方法

  1. 在uni-app插件市场中搜索并导入lime-tts
  2. 导入后在页面引入相关方法

代码演示

基础用法

简单的文本朗读功能实现:

<template>
  <view style="padding: 30rpx 0;">
    <button type="primary" @click="startSpeak">开始朗读</button>
    <button type="default" @click="pauseSpeak">暂停朗读</button>
    <button type="default" @click="resumeSpeak">恢复朗读</button>
    <button type="warn" @click="stopSpeak">停止朗读</button>
  </view>
</template>

<script setup lang="ts">
// 导入我们开发的 TTS 工具函数  
import { useTTS } from '@/uni_modules/lime-tts';

// 创建 TTS 实例
const tts = useTTS();

// 事件处理函数
const handleStart = (event: any) => {
  console.log('语音播放开始');
};

const handleEnd = (event: any) => {
  console.log('语音播放结束');
};

const handleError = (event: any) => {
  console.error('语音播放错误:', event);
};

// 语音控制函数
const startSpeak = () => {
  tts.speak('欢迎使用 Lime TTS 插件!');
};

const pauseSpeak = () => {
  tts.pause();
};

const resumeSpeak = () => {
  tts.resume();
};

const stopSpeak = () => {
  tts.stop();
};

// 生命周期
onMounted(() => {
  // 注册事件监听器
  tts.on('start', handleStart);
  tts.on('end', handleEnd);
  tts.on('error', handleError);
});

onUnmounted(() => {
  // 移除事件监听器并销毁实例
  tts.off('start', handleStart);
  tts.off('end', handleEnd);
  tts.off('error', handleError);
  tts.destroy();
});
</script>

API文档

useTTS 方法

创建TTS实例,这是插件的主要入口方法

import { useTTS } from '@/uni_modules/lime-tts';

// 创建TTS实例
const tts = useTTS();

TTS 实例方法

方法名 语法 说明
speak speak(text: string): void;
speak(text: string, options: SpeakOptions): void;
朗读指定文本,可配置朗读参数
stop stop(): void; 停止当前朗读
pause pause(): void; 暂停当前朗读
resume resume(): void; 恢复暂停的朗读
getVoices getVoices(): Promise<VoiceInfo[]>; 获取可用语音列表,返回Promise
getStatus getStatus(): SpeechStatus; 获取当前语音状态
destroy destroy(): void; 销毁TTS实例,释放资源
on on(event: 'start' \| 'end' \| 'error' \| 'stop', callback: SpeechCallback): void; 监听TTS事件
off off(event: 'start' \| 'end' \| 'error' \| 'stop'): void;
off(event: 'start' \| 'end' \| 'error' \| 'stop', callback: SpeechCallback): void;
移除事件监听

SpeakOptions 选项

参数 类型 必填 说明
speed number 语速,支持范围 [0.5-2],默认值为 1
volume number 音量,支持范围 [0-2],默认值为 1
pitch number 音调,支持范围 [0.5-2],默认值为 1
language Language 语境,播放阿拉伯数字用的语种,默认 "zh-CN"
audioType string 音频类型,当前仅支持 "pcm",默认 "pcm"
playType number 合成类型,0:仅合成不播报,1:合成与播报,默认 1
soundChannel number 播报通道,默认 3(语音助手通道)
queueMode number 播报模式,0:排队模式,1:抢占模式,默认 0
person number 音色

数据类型定义

Language 类型

type Language = 'zh-CN' | 'en-US';

SpeakOptions 接口

属性 类型 必填 说明
speed number 语速,支持范围 [0.5-2],默认值为 1
volume number 音量,支持范围 [0-2],默认值为 1
pitch number 音调,支持范围 [0.5-2],默认值为 1
language Language 语境,播放阿拉伯数字用的语种,默认 "zh-CN"
audioType string 音频类型,当前仅支持 "pcm",默认 "pcm"
playType number 合成类型,0:仅合成不播报,1:合成与播报,默认 1
soundChannel number 播报通道,默认 3(语音助手通道)
queueMode number 播报模式,0:排队模式,1:抢占模式,默认 0
person number 音色

VoiceInfo 接口

属性 类型 说明
language Language 语种
person number 音色ID
name string 音色名称
gender 'male' | 'female' 性别
description string 音色描述
status 'available' | 'downloadable' | 'unavailable' 状态

SpeechStatus 类型

说明
'idle' 空闲状态
'speaking' 正在朗读
'paused' 已暂停
'uninitialized' 未初始化

SpeechCallback 类型

type SpeechCallback = (event: UTSJSONObject) => void;

功能特点

  • 支持多平台:兼容安卓、iOS、鸿蒙平台
  • 多语种支持:支持中文、英文等多种语言
  • 自定义语音参数:可调整语速、音量、音调
  • 丰富的事件监听:支持开始、结束、错误、停止等事件
  • 灵活的播报控制:支持暂停、恢复、停止等操作
  • 离线模式:支持离线语音合成,无需网络连接
  • 多种音色选择:提供多种男女声音色
  • 完善的TypeScript类型支持

常见问题

  • APP端需要自定义基座才能使用
  • 不同平台支持的音色可能有所不同
  • 在线模式目前暂不支持
  • 建议使用try-catch捕获可能的错误
  • 页面卸载时请调用destroy方法释放资源

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。