TextToSpeech语音播报踩坑记录

这是一个TextToSpeech踩坑记录

由于公司特殊需求 , 需要在app接收推送的时候添加一条语音播报的功能 , 所以就有了这篇的踩坑记录

巨大的一个天坑speak failed: not bound to TTS engine 先记录一下

说到语音播报 , 就想起了android自带的TextToSpeech , 经过百度发现 , TextToSpeech这个的使用方法非常简单 , 就需要调用几个简单的方法就可以实现类似于支付宝微信的语音播报功能 .

首先需要 new TextToSpeech对象

new TextToSpeech(Context context,  OnInitListener listener);

实现OnInitListener接口

			@Override
            public void onInit(int status) {
            //		初始化成功
                if (status == TextToSpeech.SUCCESS){
                }else{
                //		初始化失败
                }
			}

启动TextToSpeech开始语音播报

//                语音音调数值越大声音越尖越想女生 , 数值越小声音越沉越想男生
                  textToSpeech.setPitch(1.0f);
//                语音音速
                  textToSpeech.setSpeechRate(0.8f);
                  //开始阅读
                  //str  阅读的文字	
                  //TextToSpeech.QUEUE_ADD添加到队列后面,依次将前面的读完轮序
                  //TextToSpeech.QUEUE_FLUSH刷新队列,将之前的队列取消阅读现在的文字
                  textToSpeech.speak(str,TextToSpeech.QUEUE_ADD,null);

停止TextToSpeech语音播报,释放资源

		//不管是不是在阅读,都打断
        textToSpeech.stop();
        //关闭,释放资源
        textToSpeech.shutdown();
        textToSpeech = null ;

TextToSpeech的用法就这么简单

前面留下的那个大坑咱们在这解决一下
speak failed: not bound to TTS engine
这个不是报错,只是打印一下普通的日志
但是如果出现这个日志,则无法执行语音播报

经过查找资料发现要解决这个原因的办法是:
在实现OnInitListener接口的方法中进行语音播报功能

@Override
public void onInit(int status) {
			textToSpeech.setSpeechRate(speechRate);
            textToSpeech.setPitch(pitch);
			textToSpeech.speak(str,TextToSpeech.QUEUE_FLUSH,null);
}

这样就可以避免speak failed: not bound to TTS engine这个错误

### 回答1: 如果TextToSpeech没有语音播放,有以下几种可能原因: 1. 语音引擎没有正确安装:您需要确保您的设备上已经安装了正确的语音引擎,否则TextToSpeech无法正常工作。 2. 音频设备问题:您需要确保您的音频设备是正确连接的,并且可以正常工作。 3. 代码实现问题:您需要确保您的代码正确地实现了TextToSpeech功能,并且没有出现任何错误。 如果您仍然无法解决问题,请考虑寻求技术支持或进一步的帮助。 ### 回答2: TextToSpeech是用于将文本转换为语音的技术或工具。 通常,当TextToSpeech没有语音播放时,可能有以下几个原因: 1. 硬件问题:首先,需要确保您的设备上有可用的扬声器或耳机。如果设备的扬声器或耳机未连接、损坏或静音,则TextToSpeech无法播放语音。请检查您的设备音量设置并确保它们处于正常工作状态。 2. 权限问题:在某些设备或操作系统上,TextToSpeech可能需要访问设备的音频权限。请确保您已为TextToSpeech应用程序授予所需的权限。您可以在设备设置中的应用程序权限部分找到并检查这些设置。 3. 文本输入问题:TextToSpeech需要文本输入才能生成语音。确保您已正确输入要转换为语音的文本,并使用适当的方法将其传递给TextToSpeech引擎。 4. 引擎设置问题:某些TextToSpeech引擎可能需要特定的配置或设置才能正常工作。请检查您所使用的引擎的设置并确保它们正确配置和激活。 如果您没有找到解决问题的方法,建议您尝试重启设备并重新安装TextToSpeech应用程序。如果问题仍然存在,您可以尝试使用另一个TextToSpeech引擎或与设备制造商或开发人员社区联系以获取进一步的帮助和支持。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值