iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现自动朗读功能(TTS)
  • 768
分享到

Android实现自动朗读功能(TTS)

2024-04-02 19:04:59 768人浏览 薄情痞子
摘要

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

前言: 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;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_speech);

        textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
            @Override
            public 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() {
            @Override
            public void onClick(View view) {
                textToSpeech.speak(input.getText().toString(),
                        TextToSpeech.QUEUE_ADD, null);
            }
        });

        record.setOnClickListener(new View.OnClickListener() {
            @Override
            public 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();
            }
        });
    }

    @Override
    protected 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,我们可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,保存到本地。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android实现自动朗读功能(TTS)

本文链接: https://www.lsjlt.com/news/133713.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现自动朗读功能(TTS)
    前言: Android提供了自动朗读支持。可以对指定文本内容进行朗读,从而发生声音;还允许把文本对应的音频录制成音频文件,方便以后播放。Android的自动朗读主要通过TextToS...
    99+
    2022-11-12
  • Android开发之自动朗读TTS用法分析
    本文实例讲述了Android自动朗读TTS用法。分享给大家供大家参考,具体如下: TextToSpeech简称 TTS,是自Android 1.6版本开始比较重要的新功能。将所...
    99+
    2022-06-06
    自动 tts android开发 Android
  • Android中怎么实现文本内容自动朗读功能
    Android中怎么实现文本内容自动朗读功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android提供了自动朗读支持。自动朗读支持可以对指定文本内容进行朗读,从而发生声音...
    99+
    2023-05-30
    android
  • Android实现短信验证码自动拦截读取功能
    本文实例为大家分享了Android短信验证码自动拦截读取 的具体代码,供大家参考,具体内容如下 知识准备:  1.观察者模式的理解【文章稍后来到~~】  ...
    99+
    2022-06-06
    自动 验证码 短信验证码 Android
  • android实现NFC读写功能
    一、NFC是什么? 近距离无线通讯技术,这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司)、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。近...
    99+
    2022-11-12
  • android怎么实现自动点击功能
    要实现Android自动点击功能,可以使用Android提供的AccessibilityService服务。步骤如下:1. 创建一个...
    99+
    2023-10-07
    android
  • Android实现app开机自启动功能
    本文实例为大家分享了Android实现app开机自启动的具体代码,供大家参考,具体内容如下 最近要做个大屏的开发板程序,需要长期稳定运行,并开机自启运行此软件。 废话不多说,上...
    99+
    2022-06-07
    启动 app Android
  • Android 实现钉钉自动打卡功能
    目录提前准备自动打开防止熄屏打开钉钉,签到后返回随机时间提前准备 首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。 自动打开 我们只需要...
    99+
    2022-11-11
  • android自动截图功能怎么实现
    要在Android中实现自动截图功能,可以使用以下步骤:1. 在AndroidManifest.xml文件中添加权限声明,以允许访问...
    99+
    2023-08-24
    android
  • Android自定义View实现自动吸附功能
    本文实例为大家分享了Android实现自动吸附功能的具体代码,供大家参考,具体内容如下 1.简述 最近开发app过程中要实现拖动view后要可以自动吸附功能,所以需要自定义vi...
    99+
    2022-06-06
    自动 view Android
  • Android中怎么实现动画自动播放功能
    本篇文章给大家分享的是有关Android中怎么实现动画自动播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:private ImageView ...
    99+
    2023-05-31
    android
  • Android应用自动更新功能实现的方法
    本文给大家分享Android里应用版本更新功能这一块的实现。 一个好的应用软件都是需要好的维护,从初出版本到最后精品,这个过程需要版本不停的更新,那么如何让用户第一时间获取最新...
    99+
    2022-06-06
    自动 自动更新 更新 方法 Android
  • Android 实现电话来去自动录音的功能
    我们在使用Android手机打电话时,有时可能会需要对来去电通话自动录音,本文就详细讲解实现Android来去电通话自动录音的方法,大家按照文中的方法编写程序就可以完成此功能。...
    99+
    2022-06-06
    自动 电话 Android
  • Android实现自动填写获取验证码功能
    本文实例讲解了Android自动提取短信验证码解决方案,分享给大家供大家参考,具体内容如下 <uses-permission android:name="android...
    99+
    2022-06-06
    自动 验证码 Android
  • Android实现登录邮箱的自动补全功能
    本文实例为大家分享了Android登录邮箱自动补全功能的实现方法,供大家参考,具体内容如下 效果: 实现原理: 1、继承重写简单控件AutoCompleteTextView ...
    99+
    2022-06-06
    自动 Android
  • Android实现短信验证码自动填写功能
    本实例为大家分享了Android实现短信验证码自动填写功能,供大家参考,具体内容如下 实现思路很简单: 1、在需要输入验证码的Activity代码注册监听短信的广播 2...
    99+
    2022-06-06
    自动 验证码 短信验证码 Android
  • Android 软件自动更新功能实现的方法
    相信所有的用户都遇到过软件提醒更新的情况,下面就将实现此功能 首先看一下程序目录结构    步骤: 1、新建一个类UpdateManger,用于显...
    99+
    2022-06-06
    自动 自动更新 更新 方法 软件 Android
  • Android怎么实现自动文本框提示功能
    这篇文章主要介绍Android怎么实现自动文本框提示功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下activity_main.xml布局<LinearLayout xmlns:andr...
    99+
    2023-05-30
    android
  • Android编程实现输入框动态自动提示功能
    本文实例讲述了Android编程实现输入框动态自动提示功能。分享给大家供大家参考,具体如下: 关于AutoCompleteTextView的使用,我想大家并不陌生,对其设定上A...
    99+
    2022-06-06
    自动 输入 动态 输入框 Android
  • 怎么在Android中实现一个自动打卡功能
    这篇文章给大家介绍怎么在Android中实现一个自动打卡功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。提前准备首先我们需要一直不用的Android手机,插上公司的电源。下载安装钉钉并设置为极速打卡。自动打开我们只需...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作