uni-app App端实现文字语音播报(Ba-TTS)

前言

  • 最近在遇到消息提示语音播放出来,查了一圈文档发现并没有自带api

  • 后面想起支付宝收钱播报,不受限与系统环境和版本环境(后面查阅他是音频实现的)

  • 如果是由安卓端需要语音播放功能-直接使用Ba-TTs救急(需要付费20元)

官网:文字转语音(文字播报、语音合成、免服务费)、震动提示 Ba-TTS - DCloud 插件市场

代码实现

1.来到官网可以试用-不用收取费用确定可以用再说

2.manifest.json - App原生插件设置-选择云端插件

3.编写业务代码(看官网文档)- 测试不用太多代码-按钮触发就行

 // vue页面script标签里面即可-跟api引入方式一样
 const tts = uni.requireNativePlugin('Ba-TTS')
  
  speak() { //播放声音
                tts.speak({
                        text: "测试语音合成", //文本; 注意:如果是数字单读(如叫号1001),可用空格隔开,如“1 0 0 1”)
                        //pitch: 0.6, // 设置音调,值越大声音越尖(女生),值越小则变成男声,默认是1
                        //speed: 1 //设定语速 ,默认1正常语速
                    },
                    (res) => {
                        console.log(res)
                    });
            },

4.试用包只支持自定义基座运行

5.先打一个自定义包-才能运行到自定义基座(不知道可以搜一下)

发行-原生App云打包-安卓包-自定义包-传统打包

6.运行 -运行到手机或者模拟器- 运行到Android App基座-测试

细节

1.如果控制台报错speak找不到

  • 检查app原生插件设置(步骤二)云端插件是否导入

  • 是否是自定义包运行测试(标准基座可能会报错)


总结:

经过这一趟流程下来相信你也对 uni-app App端实现文字语音播报(Ba-TTS) 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

有什么不足的地方请大家指出谢谢 -- 風过无痕

### 实现原生文字转语音(TTS)功能 在 UniApp实现原生文字转语音(TTS)功能,可以通过多种方式来完成。以下是几种常见的方法: #### 1. 使用 Minimax API Minimax 提供了一种文本转语音的解决方案,支持文本分段、队列播放、暂停恢复等功能。Minimax 的语音生成技术以其自然、情感丰富和实时性强而著称。要使用 Minimax API,需要获取 API_KEY 和 GroupId [^1]。 #### 2. 使用 Ba-TTS 插件 Ba-TTS 是一个适用于 UniApp文字转语音插件,支持文字播报、语音合成以及震动提示等功能。此插件需要付费 20 元,但官网提供了试用版本,可以先测试其可用性再决定是否购买。具体实现步骤包括: - 在 `manifest.json` 中配置 App 原生插件设置。 - 编写业务代码,通过按钮触发语音播放功能: ```javascript const tts = uni.requireNativePlugin('Ba-TTS'); methods: { speak() { tts.speak({ text: "测试语音合成", // 可选参数 pitch 和 speed }, (res) => { console.log(res); }); }, stopSpeak() { tts.stopSpeak((res) => { console.log(res); }); }, playVibrate() { let params = { repeat: 0, pattern: [500, 200, 500, 100] }; tts.playVibrate(params, (res) => { console.log(res); }); }, cancelVibrate() { tts.cancelVibrate((res) => { console.log(res); }); } } ``` - 测试时需使用自定义基座运行,并确保云插件已正确导入 [^4]。 #### 3. 使用 TTSSpeech 插件 TTSSpeech 插件允许开发者初始化 TTS 引擎并进行语音合成。初始化过程涉及检查设备上安装的 TTS 引擎,并选择合适的引擎进行初始化: ```javascript TTSSpeech.getInstallTTS(list => { uni.$emit('yqm', list); list.forEach(v => console.log(`引擎名 ${v.label} 包名:${v.name}`)); }); TTSSpeech.init((status) => { if (status === 0) {} }, "com.google.android.tts"); ``` 这种方法依赖于设备上的特定 TTS 引擎,例如科大讯飞或 Google TTS [^3]。 ### 总结 以上三种方法都可以在 UniApp实现原生文字转语音功能,具体选择哪种方法取决于项目需求和技术偏好。Minimax API 适合需要高级语音合成特性的应用;Ba-TTS 插件则提供了一个较为简便的集成方案,适合快速开发;而 TTSSpeech 插件则更适合那些希望利用设备内置 TTS 引擎的应用。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-風过无痕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值