Android自动朗读(TTS)的实现

前言: Android提供了自动朗读支持。可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,方便以后播放。Android的自动朗读主要通过TextToSpeech来完成,构造器如:TextToSpeech(Context context, TextToSpeech.OnInitListennet listener);当创建TextToSpeech对象时,必须先提供一个OnInitListener监听器——负责监听TextToSpeech的初始化结果。

效果图如下:

使用TextToSpeech的步骤如下:

  1. 创建TextToSpeech对象,创建时传入OnInitListener监听器监听示范创建成功。
  2. 设置TextToSpeech所使用语言国家选项,通过返回值判断TTS是否支持该语言、国家选项。
  3. 调用speak()或synthesizeToFile方法。
  4. 关闭TTS,回收资源。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><EditText
        android:id="@+id/input_text"android:layout_marginTop="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"/><LinearLayout
        android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"><Button
            android:id="@+id/speech"android:text="Speech"android:layout_width="wrap_content"android:layout_weight="1"android:layout_height="wrap_content"/><Button
            android:id="@+id/record"android:text="Record"android:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout></LinearLayout>

Activity文件

public class SpeechActivity extends AppCompatActivity {private EditText input;private Button speech,record;private TextToSpeech textToSpeech;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_speech);textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int status) {if (status == textToSpeech.SUCCESS) {int result = textToSpeech.setLanguage(Locale.CHINA);if (result != TextToSpeech.LANG_COUNTRY_AVAILABLE&& result != TextToSpeech.LANG_AVAILABLE){Toast.makeText(SpeechActivity.this, "TTS暂时不支持这种语音的朗读!",Toast.LENGTH_SHORT).show();}}}});input = (EditText) findViewById(R.id.input_text);speech = (Button) findViewById(R.id.speech);record = (Button) findViewById(R.id.record);speech.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {textToSpeech.speak(input.getText().toString(),TextToSpeech.QUEUE_ADD, null);}});record.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String inputText = input.getText().toString();HashMap<String, String> myHashRender = new HashMap<>();myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, inputText);textToSpeech.synthesizeToFile(inputText, myHashRender,"/mnt/sdcard/my_recorder_audios/sound.wav");Toast.makeText(SpeechActivity.this, "声音记录成功。", Toast.LENGTH_SHORT).show();}});}@Overrideprotected void onDestroy() {if (textToSpeech != null)textToSpeech.shutdown();super.onDestroy();}
}

这里我们使用的是中文,int result = textToSpeech.setLanguage(Locale.CHINA);你也可以根据自己的需求更改为其他支持的语言。

最后在AndroidManifest.xml中加入权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

总结:通过使用Android提供的TTS,我们可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,保存到本地。

Android自动朗读(TTS)的实现相关推荐

  1. android学习笔记53——自动朗读TTS

    自动朗读TTS android提供了自动朗读功能--其指的是支持可以对指定文本内容进行朗读,从而发出声音: 同时android的自动朗读支持还允许把文本对应的音频录制成音频文件,方便后续播放. 这种自 ...

  2. android tts实现方案,Android自动朗读(TTS)的实现

    前言: Android提供了自动朗读支持.可以对指定文本内容进行朗读,从而发生声音:还允许把文本对应的音频录制成音频文件,方便以后播放.Android的自动朗读主要通过TextToSpeech来完成, ...

  3. Android的数据存储和IO - 自动朗读(TTS)

    Android的数据存储和IO - 自动朗读(TTS) 自动朗读又是Android提供的另一种另类的IO,蛮不错的哦,支持对指定文本内容进朗读,学习完这个内容我立马就让它朗读:wwj is a goo ...

  4. android 文字选中朗读,Android开发之文本内容自动朗读功能实现方法

    本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...

  5. android的发音功能实现,Android开发之文本内容自动朗读功能实现方法

    本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...

  6. Android应用开发提高篇(2)-----文本朗读TTS(TextToSpeech)

    链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/26/2368696.html 一.概述 TextToSpeech,就是将文本内容转换成语音,在其 ...

  7. 利用Node中间层,对接讯飞实现h5页面文章tts(自动朗读)功能

    很多时候在看文章的时候都会有自动朗读文章内容的功能,那么这种功能如何在h5上是怎么实现的呢,下面就拿我司一个基本需求作为线索,看是怎么一步一步实现的 需求提出 经过我司产品经理的想法,做出如下功能 1 ...

  8. 【无障碍】自动朗读的弹窗和浮层实现

    使用Aria-modal属性 在弹窗元素上增加属性: <section id="alert-dialog" role="dialog" aria-moda ...

  9. android 屏幕旋转流程,android自动屏幕旋转流程分析.doc

    android自动屏幕旋转流程分析.doc android自动屏幕旋转流程分析 在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox, 如 ...

最新文章

  1. 数学建模之图像处理---颜色建模
  2. 使用React Hooks你可能会忽视的作用域问题
  3. abs 不会整数 方法 溢出_在 Golang 中针对 int64 类型优化 abs()
  4. Python网络爬虫与信息提取(三)(正则表达式的基础语法)
  5. mysql etc rc.local_CentOS 7 开机启动自定义配置文件:/etc/rc.local 不执行解决办法 | IT运维网...
  6. Oracle数据隐式乱码,正则匹配中文数据失败
  7. dll注入工具_UnmanagedPowerShell工具分析
  8. django 403 错误:CSRF token missing or incorrect
  9. 兔子mq框架_春天兔子MQ
  10. 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
  11. IT行业的发展前景分析
  12. 腾达ap设置说明_腾达Tenda F6无线信号放大模式(Client+AP)设置方法
  13. Android当方法总数超过64K时(Android Studio)
  14. 软件项目中引用头文件的几种方法及要点
  15. 基于聚类算法的图像分割技术
  16. 【wanaflyCamp】电音之王
  17. 中南大学计算机学院闭委,2019-2020计算机学院第一学期学委会议顺利召开
  18. js(JavaScript)操作字符串的方法
  19. dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
  20. 女人本性的47个心理阴暗面 承受力差的谨慎阅读

热门文章

  1. TIA博途V13安装的必要条件
  2. Android使用 Java 反射实现 API Hook
  3. excel 瀵煎叆mysql_odoo 瀵煎叆鏂囦欢xml鍒朵綔,浣跨敤csv 鏂囦欢鍒朵綔xml 鏂囦欢(示例代码)...
  4. Franka Emika新款机器人FP3震撼发布,带来全新生态,重新定义协作机器人
  5. 小猫说话叫自己阿贵 专家称可会说更多(图)
  6. 当美术生遇上疫情,隔离在家应该怎么安排?
  7. 遍历寻找给定两点之间的所有路径
  8. 自学web前端开发能找到工作吗?
  9. oracle中使用 (trunc\add_months\last_day\case when)根据二月的天数判断是平年(二月28天)还是闰年(二月29天)
  10. 十年磨一剑,SparkSQL来一题!