Android自动朗读(TTS)的实现
Android自动朗读(TTS)的实现
前言: Android提供了自动朗读支持。可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,方便以后播放。Android的自动朗读主要通过TextToSpeech来完成,构造器如:TextToSpeech(Context context, TextToSpeech.OnInitListennet listener);当创建TextToSpeech对象时,必须先提供一个OnInitListener监听器——负责监听TextToSpeech的初始化结果。
效果图如下:
使用TextToSpeech的步骤如下:
- 创建TextToSpeech对象,创建时传入OnInitListener监听器监听示范创建成功。
- 设置TextToSpeech所使用语言国家选项,通过返回值判断TTS是否支持该语言、国家选项。
- 调用speak()或synthesizeToFile方法。
- 关闭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)的实现相关推荐
- android学习笔记53——自动朗读TTS
自动朗读TTS android提供了自动朗读功能--其指的是支持可以对指定文本内容进行朗读,从而发出声音: 同时android的自动朗读支持还允许把文本对应的音频录制成音频文件,方便后续播放. 这种自 ...
- android tts实现方案,Android自动朗读(TTS)的实现
前言: Android提供了自动朗读支持.可以对指定文本内容进行朗读,从而发生声音:还允许把文本对应的音频录制成音频文件,方便以后播放.Android的自动朗读主要通过TextToSpeech来完成, ...
- Android的数据存储和IO - 自动朗读(TTS)
Android的数据存储和IO - 自动朗读(TTS) 自动朗读又是Android提供的另一种另类的IO,蛮不错的哦,支持对指定文本内容进朗读,学习完这个内容我立马就让它朗读:wwj is a goo ...
- android 文字选中朗读,Android开发之文本内容自动朗读功能实现方法
本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...
- android的发音功能实现,Android开发之文本内容自动朗读功能实现方法
本文实例讲述了Android开发之文本内容自动朗读功能实现方法.分享给大家供大家参考,具体如下: Android提供了自动朗读支持.自动朗读支持可以对指定文本内容进行朗读,从而发生声音:不仅如此,An ...
- Android应用开发提高篇(2)-----文本朗读TTS(TextToSpeech)
链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/26/2368696.html 一.概述 TextToSpeech,就是将文本内容转换成语音,在其 ...
- 利用Node中间层,对接讯飞实现h5页面文章tts(自动朗读)功能
很多时候在看文章的时候都会有自动朗读文章内容的功能,那么这种功能如何在h5上是怎么实现的呢,下面就拿我司一个基本需求作为线索,看是怎么一步一步实现的 需求提出 经过我司产品经理的想法,做出如下功能 1 ...
- 【无障碍】自动朗读的弹窗和浮层实现
使用Aria-modal属性 在弹窗元素上增加属性: <section id="alert-dialog" role="dialog" aria-moda ...
- android 屏幕旋转流程,android自动屏幕旋转流程分析.doc
android自动屏幕旋转流程分析.doc android自动屏幕旋转流程分析 在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox, 如 ...
最新文章
- 数学建模之图像处理---颜色建模
- 使用React Hooks你可能会忽视的作用域问题
- abs 不会整数 方法 溢出_在 Golang 中针对 int64 类型优化 abs()
- Python网络爬虫与信息提取(三)(正则表达式的基础语法)
- mysql etc rc.local_CentOS 7 开机启动自定义配置文件:/etc/rc.local 不执行解决办法 | IT运维网...
- Oracle数据隐式乱码,正则匹配中文数据失败
- dll注入工具_UnmanagedPowerShell工具分析
- django 403 错误:CSRF token missing or incorrect
- 兔子mq框架_春天兔子MQ
- 安装mujoco报错:distutils.errors.DistutilsExecError: command ‘gcc‘ failed with exit status 1
- IT行业的发展前景分析
- 腾达ap设置说明_腾达Tenda F6无线信号放大模式(Client+AP)设置方法
- Android当方法总数超过64K时(Android Studio)
- 软件项目中引用头文件的几种方法及要点
- 基于聚类算法的图像分割技术
- 【wanaflyCamp】电音之王
- 中南大学计算机学院闭委,2019-2020计算机学院第一学期学委会议顺利召开
- js(JavaScript)操作字符串的方法
- dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
- 女人本性的47个心理阴暗面 承受力差的谨慎阅读
热门文章
- TIA博途V13安装的必要条件
- Android使用 Java 反射实现 API Hook
- excel 瀵煎叆mysql_odoo 瀵煎叆鏂囦欢xml鍒朵綔,浣跨敤csv 鏂囦欢鍒朵綔xml 鏂囦欢(示例代码)...
- Franka Emika新款机器人FP3震撼发布,带来全新生态,重新定义协作机器人
- 小猫说话叫自己阿贵 专家称可会说更多(图)
- 当美术生遇上疫情,隔离在家应该怎么安排?
- 遍历寻找给定两点之间的所有路径
- 自学web前端开发能找到工作吗?
- oracle中使用 (trunc\add_months\last_day\case when)根据二月的天数判断是平年(二月28天)还是闰年(二月29天)
- 十年磨一剑,SparkSQL来一题!