更新记录

1.0.3(2025-08-06)

增加tts installEngine类型说明

1.0.2(2025-03-06)

修复回调不能持续问题;新增tts引擎下载和检测

1.0.1(2024-07-18)

1.0.1

  1. 完善android语音播放.
查看更多

平台兼容性

uni-app(4.72)

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

uni-app x(4.72)

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

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

fy-tts

开发文档

UTS 语法 UTS API插件 UTS 组件插件 Hello UTS

接口事件说明

方法 参数 返回 说明
init TTSOptions void 初始化回调监听
isSuccess void ResultOptions 测试TTS初始化是否成功
installEngine void ResultOptions 下载tts引擎; 部分android手机可能没有自带的tts引擎服务,可以使用getDefaultEngine判断是否有引擎,没有需要提示用户安装后再使用
getDefaultEngine void ResultOptions 获取默认语音合成引擎的包名称
getContentStatus void Promise 获取当前tts状态;0未连接,1=连接成功,2连接失败
speak speakOptions ResultOptions 文本合成语音;多次调用speak方法,会自动加入语音合成队列中;
stop void ResultOptions 中断当前话语(无论是播放还是渲染到文件)并丢弃队列中的其他话语。
close void void 销毁TTS服务
getDefaultVoice void ResultOptions 返回语音实例,该实例是默认的文本语音转换语言的默认语音。
getVoice void ResultOptions 返回描述当前用于发送到TextToSpeech引擎的综合请求的语音的语音实例。
getVoices void ResultOptions 向引擎查询可用语音集
isSpeaking void ResultOptions 检查TTS引擎是否正忙于说话
setSpeechRate speechRate: Float ResultOptions 设置语音速率; speechRate 语音速率。1.0是正常的语音速率,较低的值会减慢语音(0.5是正常语音速率的一半),较大的值会加速语音(2.0是正常语音率的两倍)。
setPitch voicePitch: Float ResultOptions 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
setVoice voiceName: string ResultOptions 设置文本到语音的语音

TTSOptions 参数说明

参数名 类型 必填 说明
onStart Function 否 发言开始时执行
onDone Function 否 发言完成时执行
onError Function 否 发言出错时执行

ResultOptions返回参数说明

参数名 类型 说明
code number 判断是否是成功还是错误。0成功,其他为失败
message string 返回调用说明
data any 返回的数据

例子

<template>
    <view class="content">
        <view class="">
            <button @click="handleStart">开始</button>
            <button @click="handleStop">结束</button>
        </view>
    </view>
</template>

<script>
import { FyTTS } from '@/uni_modules/fy-tts';
let tts = null;
export default {
    data() {
        return {
            title: 'Hello'
        }
    },
    onReady() {
        // 实例化tts
        tts = new FyTTS();
        // 检测是否有tts引擎
        const engineRes = tts.getDefaultEngine();
        if (engineRes?.code != 1) {
            uni.showModal({
                content: `当前设备缺少tts引擎,是否前往安装?`,
                success(e) {
                    if (e.confirm) {
                        tts.installEngine();
                    }
                }
            })
        }
        // 因uniapp的限制,回调监听需放在函数中。
        tts.init({
            onStart(uuid) { // 发言开始
                console.log(uuid)
            },
            onDone(uuid) { // 发言完成
                console.log(uuid)
            },
            onError(uuid) { // 发言报错
                console.log(uuid)
            },
        });
    },
    methods: {
        handleStart() {
            // tts.speak('你好', [uuid]);
            tts.speak({ text: '你好' });
            tts.speak({ text: '今天天气真不错!', uuid: '123144' });
        },
        handleStop() {
            // tts.stop();
            // 建议使用close销毁
            tts.close();
        }
    }
}
</script>

重点:部分设备可能不支持,建议先调用tts.getContentStatus方法检测后再使用

隐私、权限声明

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

无

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

插件不采集任何数据

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

无