更新记录
1.0.2(2025-09-16)
更新
1.0.1(2025-09-16)
无
1.0.0(2025-09-15)
发布
查看更多平台兼容性
uni-app x(4.0)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
- | - | 11.0 | - | - | - |
echo-tts
调用安卓自带TTS功能实现语音播报、小说朗读。 可以在本机安装第三方TTS,例如MultiTTS,然后导入各种离线语音包。
使用示例
// 导入插件包
import {TTS} from "../../uni_modules/echo-tts";
let tableData = reactive<TableDataType>({
sentenceList: [] as string[]
});
// 测试文本
let text = ref(`
少年智则国智,少年富则国富。 \n
少年强则国强,少年独立则国独立。\n
少年自由则国自由;少年进步则国进步。 \n
少年胜于欧洲,则国胜于欧洲。\n
少年雄于地球,则国雄于地球。\n
`);
tableData.sentenceList = text.value.split('\n');
let currentIndex = ref(-1);
// 初始化 监听播放回调
let tts = new TTS();
tts.onInit(function(res:string){
if(res!=null && res != "") {
console.log(res);
let arr = res.split('_');
if(arr[0] == "start") {
log.value = `当前正在播放第${arr[1]}段`;
currentIndex.value = Number.from(arr[1]);
} else if(arr[0] == "end") {
log.value = `播放完成`;
}
}
});
// 打开系统设置TTS(图2)
function openTTSSetting() {
tts.openTTSSetting();
}
// 播放文本 接收三个参数
// 参数1:朗读文本列表数组string[],此处先分好段落再传入,避免出现分段不同的情况
// 参数2:是否需要跳过段落 true-> 是 false -> 否
// 参数3:需要要跳过的段落,下标从0开始
function speak() {
tts.onPlayTTS(tableData.sentenceList, false, 0);
}
// 暂停播放
function pause() {
tts.onPauseTTS()
}
// 恢复播放
function resume(){
tts.onResumeTTS();
}
// 停止播放,无法恢复
function stop() {
tts.onStop()
}
// 设置语速
// 此处接收的参数是使用了<slider></slider>组件的回调
// <slider @change="setSpeechRate" :value="1" :min="0.5" :max="5" :step="0.1" :show-value="true" />
function setSpeechRate(e : UniSliderChangeEvent){
// uniapp vue
//tts.setSpeechRate(parseFloat(e.detail.value));
//uniapp X uvue
tts.setSpeechRate(e.detail.value.toFloat());
}
// 退出页面记得要销毁
onBeforeUnmount(() => {
tts.onCloseTTS();
});
插件测试使用方法
-
选择试用,绑定要试用的项目appid,
-
选择后下载到对应的本地项目,
-
按照文档 -》把插件引入项目(即 import {TTS} from "@/uni_modules/echo-tts" 需要先引入),
-
发布-》云打包-》选择制作基座-》打包等基座制作完成
-
运行 -》 运行到手机或模拟器-》运行到Androidapp基座-》选择使用自定义基座运行-》选择手机-》运行
-
若之前手机安装过基座需要先卸载之前的基座