对TextToSpeech的介绍就不多说了,直接在下面的连接里面看,很详细

点击查看Android官网对TextToSpeech的介绍

这里直接介绍使用方法,一看就会

首先实例化TextToSpeech语音对象

        //实例化自带语音对象textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if (status == textToSpeech.SUCCESS) {              //判断是否支持下面两种语言(英文/中文)int result1 = textToSpeech.setLanguage(Locale.US);int result2 = textToSpeech.setLanguage(Locale.SIMPLIFIED_CHINESE);boolean a = (result1 == TextToSpeech.LANG_MISSING_DATA || result1 == TextToSpeech.LANG_NOT_SUPPORTED);boolean b = (result2 == TextToSpeech.LANG_MISSING_DATA || result2 == TextToSpeech.LANG_NOT_SUPPORTED);Log.i("TTS", "US是否支持?--》" + a + "\nzh-CN是否支持?--》" + b);} else {Toast.makeText(MainActivity.this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();}}});

可以写一个调用方法,直接把要朗读的内容带进去在需要朗读的地方调用

private void startTTS(String data) {// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规textToSpeech.setPitch(0.1f);// 设置语速textToSpeech.setSpeechRate(1.5f);//输入中文,若不支持的设备则不会读出来textToSpeech.speak(data,TextToSpeech.QUEUE_FLUSH, null);}

最后就是使用了,直接在需要朗读的地方调用

startTTS("床前明月光,疑是地上霜,举头望明月,低头思故乡。");

别忘记在使用完之后关闭释放资源

@Overrideprotected void onStop() {super.onStop();textToSpeech.stop(); // 不管是否正在朗读TTS都被打断textToSpeech.shutdown(); // 关闭,释放资源}

下面是完整的代码用来参考

public class MainActivity extends AppCompatActivity {private Button mLook;private TextToSpeech textToSpeech = null;//创建自带语音对象@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mLook = findViewById(R.id.look);initTTS();mLook.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {startTTS("床前明月光,疑是地上霜,举头望明月,低头思故乡。");}});}private void initTTS() {//实例化自带语音对象textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if (status == textToSpeech.SUCCESS) {textToSpeech.setPitch(1.0f);//方法用来控制音调textToSpeech.setSpeechRate(1.0f);//用来控制语速//判断是否支持下面两种语言(英文/中文)int result1 = textToSpeech.setLanguage(Locale.US);int result2 = textToSpeech.setLanguage(Locale.SIMPLIFIED_CHINESE);boolean a = (result1 == TextToSpeech.LANG_MISSING_DATA || result1 == TextToSpeech.LANG_NOT_SUPPORTED);boolean b = (result2 == TextToSpeech.LANG_MISSING_DATA || result2 == TextToSpeech.LANG_NOT_SUPPORTED);Log.i("TTS", "US是否支持?--》" + a + "\nzh-CN是否支持?--》" + b);} else {Toast.makeText(MainActivity.this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();}}});}private void startTTS(String data) {// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规textToSpeech.setPitch(0.1f);// 设置语速textToSpeech.setSpeechRate(1.5f);//输入中文,若不支持的设备则不会读出来textToSpeech.speak(data,TextToSpeech.QUEUE_FLUSH, null);}@Overrideprotected void onStop() {super.onStop();textToSpeech.stop(); // 不管是否正在朗读TTS都被打断textToSpeech.shutdown(); // 关闭,释放资源}
}

但是TTS系统默认是不支持中文的,只能进行英文发音,当然也不是没有解决办法,只要在本地安装一个支持中文发音的语音包插件就ok了

科大讯飞语音包

下载上面的语音包,解压出来是个apk文件,安装到手机上即可

实现短促音效请看Android点击按钮触发音效

Android使用TextToSpeech实现语音播报-及默认不支持中文的方案相关推荐

  1. Android中语音识别与语音播报功能(记录)

    功能需求: (1)语音识别,将语音识别为文字,用于语音文字输入功能. (2)语音播报,将文字通过语音的形式播放出来. 主要思路: (1)语音识别:使用百度的第三方免费语音识别SDK.(特别注意,只要是 ...

  2. Android仿微信发送语音消息动态提示,支持上滑取消发送

    Android仿微信发送语音消息动态提示,支持上滑取消发送 先来几张图说明一下,简单直接: 是不是看了图片就秒懂 了. 下面来分析代码实现,直接撸代码. 主页面 AudioSendActivity.j ...

  3. Android自带语音播报+讯飞语音播报封装(直接用)

    一.Android自带的语音播报 1.查看是否支持中文,在测试的设备中打开'设置' -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文. 使用如下: public ...

  4. android----Android语音播报的两种简单实现

    转自 https://blog.csdn.net/xialong_927/article/details/84256354 a.两种方案 1.Android自带的语音播报(老版本手机Android6. ...

  5. android 最简单TextToSpeech控件实现语音播报(朗读文字)

    TextToSpeech实现播报 android有自带语音播报功能,比较简单,这里只做一个朗读文字功能. JAVA代码如下: 应用前需添加 import android.speech.tts.Text ...

  6. Android 语音播报,语音识别demo

    该功能是基于百度智能云实现的根据文字进行语音播报. 1.首先到百度智能云创建语音应用 https://console.bce.baidu.com/ai/ 填写包名创建百度语音应用,获取AppID,AP ...

  7. Android 语音播报 , 百度在线语音合成封装;

    Android自带的语音播报不支持中文: 科大讯飞开始收费了: 百度离线语音合成也收费,但是! 在线语音合成不收费,需要在百度开放平台申请AppId: 文档:https://cloud.baidu.c ...

  8. Android实现TTS语音播报

    TTS工具类: public class SystemTTS {private static SystemTTS singleton;private Context mContext;//核心播放对象 ...

  9. iOS 语音播报解决方案(实现支付宝语音收款功能)

    iOS10 语音播报填坑详解(解决串行播报中断问题) 在来聊这类需求的解决方案之前,咱们还是先来聊一聊这类需求的真实使用场景:语音播报.语音播报需求运用最为广泛的应该是收银对账了,就类似于支付宝.微信 ...

最新文章

  1. php display_errors
  2. linux C 快速排序法
  3. MaxCompute理解数据、运算和用户的大脑:基于代价的优化器
  4. 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队
  5. 台式计算机 评标细则,附:认证评分项目及评分细则
  6. 利达主机联网接线端子_拾遗●接线端子或连接器(1)
  7. paip.提升用户体验-----可访问性大原则及一些方法
  8. 信号与系统—傅里叶级数
  9. 用户心中十大最具影响力国产软件评选揭晓
  10. 大规模集成电路数字计算机
  11. 给UILabel中的文字加删除线
  12. Deeplink最全解析
  13. 数据湖统一存储在 OPPO 的实践
  14. VLAN 主干道配置
  15. 笔记本电脑的WIFI图标不见了,只剩下飞行模式的图标。
  16. 计算机组成原理相关话题,“计算机组成原理”教学改革研究
  17. redis:客户端管理
  18. 第41课:Checkpoint彻底解密:Checkpoint的运行原理和源码实现彻底详解
  19. 数据库八股文--藤原豆腐店自用
  20. 判断深度学习的效果好坏loss和val_loss比较

热门文章

  1. 网页下载模板前台后台
  2. ZYNQ_MPSoC启动
  3. 森林防火(资源监管)“空天地人”四位一体监测系统方案
  4. 计算机视觉、模式识别、机器学习牛人主页
  5. 刷分区linux,【无聊】Linux下的磁盘分区利器——GParted简明介绍
  6. 西门菲莎大学计算机专业排名,2019-2020西门菲莎大学世界排名多少【QS最新第314名】...
  7. 治精神疾病不能光靠吃药,还要学会自救
  8. 京东快递开接外单偏平台商户
  9. 一篇文让你秒懂CDN
  10. 计算机win10内存,win10系统电脑可用内存异常的解决方法