Android 语音播放(文字TTS)
2022-02-15 16:03
3187 查看
原文地址:Android 语音播放(文字TTS) | Stars-One的杂货小窝
基于Google内置的TTS引擎,封装了个语音播放的工具类
使用
//初始化 SpeechService.init(this); //在如何地方调用都可以 SpeechService.speakText("这是一段文本的语音测试"); //别忘记释放资源 SpeechService.release();
坑说明
1.Flyme系统不支持
测试发现,如果是魅族手机,Flyme系统已经把TTS引擎删了,所以会出现语音引擎初始化失败的原因,可以试着安装下其他的TTS引擎来进行尝试
2.Android 11无法播放
需要在清单文件假如下面代码
<queries> <intent> <action android:name="android.intent.action.TTS_SERVICE" /> </intent> </queries>
如下图所示
工具类源码
public class SpeechService { private static TextToSpeech textToSpeech; /** * 初始化 * @param activity * @return */ public static void init(Activity activity) { if (textToSpeech == null) { //初始化tts语音 textToSpeech = new TextToSpeech(activity, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { // 如果装载TTS引擎成功 if (status == TextToSpeech.SUCCESS) { // 设置使用美式英语朗读 int result = textToSpeech.setLanguage(Locale.CHINA); // 如果不支持所设置的语言 if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE && result != TextToSpeech.LANG_AVAILABLE) { ToastUtils.showShort("该tts不支持中文"); } } else { textToSpeech = null; } } }); } } /** * 朗读语音 * @param text */ public static void speakText(String text) { if (textToSpeech != null) { textToSpeech.speak(text, TextToSpeech.QUEUE_ADD, null); } else { Log.e("test","语音还未初始化"); } } /** * 关闭并释放资源 */ public static void release() { if (textToSpeech != null) { // 不管是否正在朗读TTS都被打断 textToSpeech.stop(); // 关闭,释放资源 textToSpeech.shutdown(); textToSpeech = null; } } }
相关文章推荐
- Android文字转语音引擎(TTS)简单比较及下载
- Android中使用TTS(TextToSpeech)将文字转为语音
- android TTS语音播放
- android 语音提醒,文字转语音播放
- 关于Android文字转语音(TTS)开发
- Android TTS 中文 文字转语音 使用TextToSpeech Svox .
- Android TTS 中文 文字转语音 使用TextToSpeech Svox
- Android TTS文字转语音开发
- Android TTS 中文 文字转语音 使用TextToSpeech Svox
- AndroidTTS离线文字转语音技术
- TTS文字转语音工具汇总
- 【转】VC用TTS实现文字语音朗读
- vue项目或网页上实现文字转换成语音播放功能
- Android 通过流播放声音(语音全双工通信)
- iOS TTS文字转语音
- Android文字转语音播报
- Android TTS 英文或中文(要下载中文支持包)转语音 使用TextToSpeech
- 汉字转拼音 文字转语音tts(语音识别)
- Android 语音播放Media Player
- Android-文件及字符流方式的语音保存播放功能