更新记录
1.2.1(2025-04-07)
修复android某些机型只能播报一次的问题
1.2.0(2025-03-18)
重要更新:1.2版本开始调整安卓的的API调用方式,需要升级的可以参考示例调整之前的代码
1.1.1(2025-02-22)
优化
查看更多平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.45,Android:5.0,iOS:12,HarmonyNext:不支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
xwq-tts-speaker
注意!1.2版本开始调整的android的API调用方式,需要升级的可以参考示例调整写法
利用系统TTS将文本转成语音播报,可以自定义第三方TTS引擎(仅支持androi端)
-
Methods 方法(安卓)(旧) 废弃
- init 初始化
- startSpeak 开始播报
- setSpeechRate 设置速度
- getEngines 获取引擎列表
-
Methods 方法(安卓)(新)
- startSpeech 开始
- stopSpeech 暂停
- getEngines 获取引擎列表
-
Methods 方法(ios)
- startSpeech 开始
- pauseSpeech 暂停
- continueSpeech 继续
- stopSpeech 停止
-
代码示例
在UniappX项目中使用(Android示例)
<template>
<view>
<view class="area">
<textarea @input="iptHandle"
style="width: 100%;border: 1px solid #ccc;padding: 15px;background-color: #f2f2f2;margin-bottom: 15px;" />
<button type="default" @click="start">文本转语音播报</button>
<button type="default" @click="stop">播报暂停</button>
<button type="default" @click="getEnginesList">获取手机播报引擎</button>
</view>
<view class="eng-list" style="padding: 15px;">
<view class="title">
<text style="font-weight: bold;font-size: 20px;">引擎列表:</text>
</view>
<view v-for="(i,k) in engineList" :key='k' class="item">
{{i}}
</view>
</view>
</view>
</template>
<script setup>
import { startSpeech, getEngines, stopSpeech, continueSpeech, pauseSpeech } from "@/uni_modules/xwq-tts-speaker";
import { Option, Info } from "@/uni_modules/xwq-tts-speaker/utssdk/interface.uts";
const iptVal = ref("");
const engineList = ref([] as string[]);
const iptHandle = (e : UniInputEvent) => {
iptVal.value = e.detail.value;
};
//开始播报,在开始之前要先初始化TTS,成功后再开始
const start = () => {
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
// speechRate: 0.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val : Info) => {
console.log(val);
},
finish: () => {
console.log('播报结束')
}
} as Option)
};
//停止播报
const stop = () => {
stopSpeech();
};
//获取引擎列表,没有默认系统TTS
const getEnginesList = () => {
let result = getEngines();
engineList.value = result;
}
</script>
在Uniapp项目中使用
<template>
<view>
<view class="area">
<textarea @input="iptHandle"
style="width: 100%;border: 1px solid #ccc;padding: 15px;background-color: #f2f2f2;margin-bottom: 15px;" />
<button type="default" @click="start">文本转语音播报</button>
<button type="default" @click="stop">播报暂停</button>
<button type="default" @click="getEnginesList">获取手机播报引擎</button>
</view>
<view class="eng-list" style="padding: 15px;">
<view class="title">
<text style="font-weight: bold;font-size: 20px;">引擎列表:</text>
</view>
<view v-for="(i,k) in engineList" :key='k' class="item">
{{i}}
</view>
</view>
</view>
</template>
<script setup>
import { startSpeech, getEngines, stopSpeech, continueSpeech, pauseSpeech } from "@/uni_modules/xwq-tts-speaker";
import { Option, Info } from "@/uni_modules/xwq-tts-speaker/utssdk/interface.uts";
const iptVal = ref("");
const engineList = ref([] as string[]);
const iptHandle = (e : UniInputEvent) => {
iptVal.value = e.detail.value;
};
//开始播报,在开始之前要先初始化TTS,成功后再开始
const start = () => {
startSpeech(
{
content: iptVal.value,
enginesName: null, //自定义第三方TTS引擎,前提是手机上已安装
// speechRate: 0.5,//播报速度,有些系统TTS不支持设置
pitch: 0.4,//语调设置,默认1,越小越像男生
fail: (val) => {
console.log(val);
},
finish: () => {
console.log('播报结束')
}
})
};
//停止播报
const stop = () => {
stopSpeech();
};
//获取引擎列表,没有默认系统TTS
const getEnginesList = () => {
let result = getEngines();
engineList.value = result;
}
</script>
在UniappX项目中使用(IOS示例)
<template>
<view>
<button type="default" @click="start">开始播报</button>
<button type="default" @click="pause">暂停播报</button>
<button type="default" @click="contine">继续播报</button>
<button type="default" @click="stop">停止播报</button>
</view>
</template>
<script setup>
import { startSpeech,pauseSpeech,continueSpeech,stopSpeech, Option } from '@/uni_modules/xwq-tts-speaker';
const start=()=>{
startSpeech({
content:"我家住在一个遥远的地方,美丽又安静!",//内容
speechRate:0.5,//设置语速,范围 0.0~1.0
pitch:0.9,// 音高,范围 0.5~2.0
language:'zh-CN',//语言
finish:()=>{
console.log('播报结束')
}
}as Option)
};
const pause=()=>{
pauseSpeech()
};
const contine=()=>{
continueSpeech()
};
const stop=()=>{
stopSpeech()
};
</script>