Android实现TTS语音播报
TTS工具类:
public class SystemTTS {private static SystemTTS singleton;private Context mContext;//核心播放对象private TextToSpeech textToSpeech;private boolean isSupport = true;private static final String TAG = "SystemTTS";private boolean isFirstPlay = false;private SystemTTS(Context context) {this.mContext = context.getApplicationContext();textToSpeech = new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int i) {//textToSpeech的配置init(i);isFirstPlay = false;}});}public static SystemTTS getInstance(Context context) {if (singleton == null) {synchronized (SystemTTS.class) {if (singleton == null) {singleton = new SystemTTS(context);}}}return singleton;}//textToSpeech的配置private void init(int i) {if (i == TextToSpeech.SUCCESS) {int result = textToSpeech.setLanguage(Locale.CHINESE);// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {//系统不支持中文播报isSupport = false;} else {textToSpeech.setPitch(1.0f);textToSpeech.setSpeechRate(1.0f);} }}public boolean play(String text) {boolean ret=false;if (!isSupport) {Toast.makeText(mContext, "TTS不支持", Toast.LENGTH_SHORT).show();ret=true;}if (textToSpeech != null) {if(!isFirstPlay){speak(text);isFirstPlay = true;ret=true;}else{if(!textToSpeech.isSpeaking()){speak(text);ret=true;}}}return ret;}private void speak(String text){textToSpeech.speak(text, TextToSpeech.QUEUE_ADD, null, null);textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {@Overridepublic void onStart(String utteranceId) {Log.d(TAG, "播放开始");}@Overridepublic void onDone(String utteranceId) {Log.d(TAG, "播放结束");}@Overridepublic void onError(String utteranceId) {Log.d(TAG, "播放出错");}});}public void stop() {if (textToSpeech != null) {textToSpeech.stop();}}public boolean TTsIsSpeeking() {return textToSpeech.isSpeaking();}public void destroy() {stop();if (textToSpeech != null) {textToSpeech.shutdown();}}
}
有些android手机上面自带的语音引擎是Pico不支持中文,需要自己下载一个tts引擎,然后在无障碍->文字转语音TTS->首选引擎设置为自己安装的引擎。
Android实现TTS语音播报相关推荐
- 2019-详细Android Studio开发百度地图(5)—百度地图_导航和TTS语音播报的实现
百度地图_导航和TTS语音播报的实现 前言 从小白一步步开始,很多资源是很久以前的,而且没有操作配套截图和资源分享.现在本踩过了很多坑,现在开发完成后决定重新写一份教程,希望能借此帮助到许多其他有这方 ...
- Android 9.0 设置讯飞语音引擎为默认tts语音播报引擎
1.前言 在9.0的系统rom定制化开发中,在产品开发中,一些内置的app需要用到tts语音播报功能,所以需要用到讯飞语音引擎作为默认的系统tts语音引擎功能,所以就需要 了解系统关于tts语音引擎默 ...
- Android TTS语音播报
TTS 语音播报: 代码摘要: private TextToSpeech mTts;private EditText et_setPitch;private EditText et_setSpeec ...
- JS实现TTS语音播报
JS实现TTS语音播报 function speckText(str){//var request= new URLRequest();var url = "http://tts.baidu ...
- Android TTS语音播报实践
在工作中遇到了语音播报的需求,在收到push后,用语音播报push携带的播报内容.类似于微信支付宝的收款信息一样.调研后主要的语音播报方案有一下几种: 基于第三方的TTS SDK,如百度.思必驰.讯飞 ...
- Android自带语音播报+讯飞语音播报封装(直接用)
一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开'设置' -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...
- Android讯飞语音播报新闻
1:讯飞开放平台注册登录:https://www.xfyun.cn/?ch=bdtg 2: 3:创建新应用获取APPID值 4:注册好就可以直接在项目中使用appid值 5:将下载的sdk中libs文 ...
- TTS语音播报程序部署与配置
本功能已经在Windows7,Windows8.1,Windows10上测试过,其他版本操作系统未进行过测试. 1. 下载程序包 [32位]下载地址:http://pan.baidu.com/s/1i ...
- 基于Android studio的语音播报功能
效果图: 进入软件时,弹出欢迎使用xxx系统,有一个文本框.可以自己输入想要说的话,之后进行朗读,调用的是自己手机的语音包 首先导入TTS包 MainActivity: package com.hua ...
最新文章
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)
- [BZOJ5249][九省联考2018]IIIDX(线段树)
- OpenGL缩放转换
- 学php要懂js吗,js要怎么学
- Struts2 中 Session 的使用
- 互联网行业常见的需要考虑的问题
- 【紫书第十章】数论与概率入门
- 深圳雷赛智能自动控制软件使用说明(运动控制卡)
- 工厂无线wifi短信验证码认证方案
- 【C++学习五】STL库的应用
- 游戏安全02:手游外挂简单分类和实现原理介绍
- Kindle 2 初探
- html登录qq页面无法显示,如何解决QQ可以登录网页而无法打开的问题
- cadz轴归零命令_CAD图形如何Z轴归0?
- 名校400门免费人文社科公开课视频合集!
- Linux两主机之间快速传输大量小文件
- On-premise是什么意思?
- HTML知识点学习(二)
- [虚拟机]hyper-v简介及安装使用(图文详解)
- JS写下雨特效,樱花落特效,滑块成功效果
热门文章
- linux vi编辑器删除多行,vim编辑器如何删除一行或者多行内容
- rtx腾讯通环境配置
- C++自学教程第一课——你好世界,我是柠檬鲸。
- C++积累02_隔定时长放炮问题的OOP解决
- Collection集合入门
- 黑人是晒黑的吗_Indibiome是新的黑人
- latex中英文字体设置
- AST实战|手把手教你还原ob混淆:ob混淆代码特征
- 计算机主板i3 i5区别,装机那些事儿之挑选适合自己的CPU;i3/i5/i7的区别
- cleanup(cleanup什么意思中文)