更新记录
1.0.2(2025-03-06)
修复回调不能持续问题;新增tts引擎下载和检测
1.0.1(2024-07-18)
1.0.1
- 完善android语音播放.
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.6.11,Android:5.0,iOS:不支持,HarmonyNext:不确定 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
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方法检测后再使用