Android 文本转语音初始化速度很慢

标签 android text-to-speech google-text-to-speech

我的应用程序供视障人士使用,因此它在很大程度上依赖于文本到语音的转换。应用程序调用 API 并向用户读出负载(使用 android.speech.tts.TextToSpeech)一些相关信息。

一切正常,除了我注意到有时文本到语音的初始化需要 10 秒或更长时间,这是我的应用程序的主要瓶颈。

我想知道是否有人对我如何优化我的代码来缓解这个问题有任何想法。

首先,我的应用程序启动一个 Activity 来检查 TTS 数据。

    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

然后,使用 Activity 的结果调用此方法。根据结果​​,文字转语音要么刚刚初始化(这几乎总是发生),要么文字转语音安装在设备上(很少见)。

    private TextToSpeech mTts;

    @Override
    protected void onActivityResult(
            int requestCode, int resultCode, Intent data) {
        if (requestCode == MY_DATA_CHECK_CODE) {
            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
                // success, create the TTS instance
                mTts = new TextToSpeech(this, this);
            } else {
                // missing data, install it
                Intent installIntent = new Intent();
                installIntent.setAction(
                        TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(installIntent);
            }
        }
    } 

最后,当所有这些都完成后,我的应用程序调用了一个 API 并有几行如下所示:

    mTts.speak("<Useful output here>", TextToSpeech.QUEUE_FLUSH, null);   

谢谢你的帮助!

最佳答案

今天有点晚了,但我想说的是,这只是设备中发生的事情。其他具有更高优先级的事情占用处理器时间。我认为盲人不需要在设备上安装很多应用程序。还要考虑自动启动应用程序。自动启动您的应用。

关于Android 文本转语音初始化速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892462/

相关文章:

android - 将 OnTouchListener 设置为包含在膨胀的 xml 中的多个按钮

java - Android:保留设置为背景的 ImageView 的宽高比

java - 在 Android 7 org.apache.http (Apache HttpClient 4.0) 中启用已弃用的密码套件后主机名不匹配

java - 在服务器上运行程序

android - Google Text-To-Speech 序号输出

javascript - Angular 应用程序的文本转语音 - "allowJs is not set"问题

java - 如何从android中的语音合成器保存音频文件(android.speech.tts)?

javascript - Django 中的 Google TTS : Create Audio File in Javascript from base64 String

Android TextToSpeech 行为不规则

c# - 安卓谷歌 TTS : Why langAvailable returns Not supported or -2?