您的位置:

提升用户体验,让应用说话——Android TTS

随着科技的不断进步,人们对于可视化的需求越来越高。而对于导盲软件、语音播报、语音输入等应用,用户对于声音的需求甚至比对于图像的需求还要重要。但是,如何让应用说话,成为了很多开发者面临的难题。Android TTS(即Android Text-To-Speech,中文意为文本转语音)是Google Android团队针对Android平台所提供的一种自然语言合成系统,它能够将自然语言文本转变成能够被人类听懂的语音信息。

一、TTS的基本原理

Android TTS是基于系统默认的TTS Engine。使用TTS Engine需要以下步骤: 1. 引入TTS Engine:需要在配置文件AndroidManifest.xml中添加以下配置信息 2. 创建TTS Engine对象:创建TTS Engine对象需要主要构造函数. private TextToSpeech textToSpeech; ... textToSpeech = new TextToSpeech(this, this); 3. 设置回调函数:为了实现TTS Engine的状态监听,需要设置回调函数. @Override public void onInit(int status) { if(status == TextToSpeech.SUCCESS) { textToSpeech.setOnUtteranceProgressListener(new TTSUtteranceProgressListener()); } } 4. 文本转语音:在完成TTS Engine的初始化工作后,就可以将文本转变成语音信息了. @Override public void speak(String text) { if(textToSpeech == null) { return; } String utteranceId = hashCode() + ""; HashMap params = new HashMap<>(); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, utteranceId); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId); } else { textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, params); } }

二、TTS的使用场景

Android TTS应用场景非常之广泛。其中的一个典型应用场景便是语音导航。通过将行进路线的信息和提醒内容转换成语音,可以使司机在驾车时不用看路,直接听取语音提示,使驾车更加安全。还有一种应用场景便是TTS播报内容。例如,当应用有新消息时,通过TTS播报内容,可以在用户无视觉的情况下提醒用户。

三、TTS的开发注意事项

1. 不同TTS Engine的API、回调函数都存在差异。需要注意调用对应的API。 2. 在初始化TTS Engine的时候,如果网络不可用或者资源下载失败等情况下,使用TTS Engine会出现空指针异常。因此在实现TTS Engine并使用前,应该对Android手机当前的网络状态以及下载耗时进行检测,确保能够正常使用TTS Engine。 3. 在使用TTS Engine时,会有一定的延迟,需要注意使用场景,避免出现较大的延迟。

四、TTS的完整代码示例

public class TTSService extends Service implements TextToSpeech.OnInitListener {

    /**
     * TTS Engine对象
     */
    private TextToSpeech mTts;

    @Override
    public void onCreate() {
        super.onCreate();
        mTts = new TextToSpeech(this, this);
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY_COMPATIBILITY;
    }

    @Override
    public void onDestroy() {
        if (mTts != null) {
            mTts.stop();
            mTts.shutdown();
        }
        super.onDestroy();
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    /**
     * 播放语音
     * @param text 文本
     * @param utteranceId 语音ID
     */
    public void playTalkText(String text, String utteranceId) {
        if (mTts == null) {
            return;
        }
        if (text.length() == 0) {
            return;
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mTts.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId);
        } else {
            mTts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
        }
    }

    /**
     * TTS Engine初始化完成回调函数
     * @param status 初始化状态,成功时为TextToSpeech.SUCCESS
     */
    @Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {
            mTts.setLanguage(Locale.CHINA);
            mTts.setSpeechRate(0.8f);
        }
    }

}
提升用户体验,让应用说话——Android TTS

2023-05-14
提升Android应用用户体验的有效方法

2023-05-14
让Android应用拥有自然语音交互能力

2023-05-14
提高Android应用的用户体验

Android应用的用户体验是一个非常重要的话题,因为良好的用户体验能够提高用户留存率和忠诚度,提升应用的口碑和下载量。本文将从以下几个方面讲述如何提高Android应用的用户体验。 一、界面设计与布

2023-12-08
提升你的Android应用体验

在当今移动互联网时代,Android操作系统已经成为了最受欢迎的手机操作系统之一。然而,应用市场却充斥着各种质量参差不齐的应用,用户因此在选择应用时显得非常挑剔。针对这种情况,作为一名Android开

2023-12-08
提升Android应用用户体验的秘诀

对于现代人来说,生活离不开手机和App。随着移动互联网的快速发展,移动应用市场日益庞大,应用数量多样性极高,用户对应用的体验要求也越来越高。一个具有良好用户体验的应用,可以帮助用户更加便利的完成各种任

2023-12-08
提升用户体验的必备:Android弹窗

2023-05-14
Android 9:提升用户体验的新特性

2023-05-14
提升应用体验,如何截图你的Android应用

2023-05-14
提升用户体验的应用支持库:Android Jetpack

2023-05-14
提升Android应用用户体验的必备FontFamily设置

2023-05-14
使用Android Tint提升应用图标体验

Android应用图标是用户对于应用的第一印象,一个美观、独特的应用图标能够更好的吸引用户下载和使用。在Android系统中,我们可以使用Android Tint来处理应用图标,从而为用户提供更好的体

2023-12-08
Android权限申请:保护用户数据,提升应用体验

在Android应用开发中,用户的数据是极其重要的一部分。由于安卓的开放性,开发者有很多权限可以操作用户的数据。因此,在开发过程中,我们需要合理地管理和控制数据的使用,以保护用户隐私。那么,如何在保护

2023-12-08
提升用户体验的Android主题设计

2023-05-14
Android Material Design规范:提升应用

Android Material Design 是 Google 在 2014 年 I/O 大会上推出的设计规范,旨在为 Android 应用程序提供一致的外观和感觉。通过 Material Desi

2023-12-08
Android窗口:提升用户体验的关键

2023-05-14
Android App开发:如何提升用户体验

在如今的移动互联网时代,用户体验是一个成功的Android应用程序的重要因素。无论应用程序功能强大还是漂亮的UI设计,如果用户体验不好,用户会很快放弃使用。因此,在我们进行Android App开发的

2023-12-08
提升Android用户体验的巧妙使用visibility

一、visibility介绍 visibility(可见性)属性是Android UI开发中非常重要的一个属性。它决定了一个UI元素在屏幕上的显示与否。visibility属性有三个值:VISIBLE

2023-12-08
Android进度条:显示加载进度和提升用户体验

在Android应用中,进度条是一种重要的UI组件。进度条可以用来展示长时间的操作进度,如下载文件或者加载数据。同时,进度条也可以用来提升用户体验,让用户感受到应用正在运作,从而减少用户的等待焦虑感。

2023-12-08
Android开发如何提升用户体验和应用性能?

在今天的移动应用市场上,用户的期望值越来越高,他们希望使用的应用程序能够快速响应,界面友好,且在全新的移动设备上运行顺畅。因此,作为Android开发人员,我们需要采取一些措施,来提高应用程序的性能和

2023-12-08