更新记录

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();
});

插件测试使用方法

  1. 选择试用,绑定要试用的项目appid,

  2. 选择后下载到对应的本地项目,

  3. 按照文档 -》把插件引入项目(即 import {TTS} from "@/uni_modules/echo-tts" 需要先引入),

  4. 发布-》云打包-》选择制作基座-》打包等基座制作完成

  5. 运行 -》 运行到手机或模拟器-》运行到Androidapp基座-》选择使用自定义基座运行-》选择手机-》运行

  6. 若之前手机安装过基座需要先卸载之前的基座

隐私、权限声明

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

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

插件不采集任何数据

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