4

在 Android Froyo-api8 到 Gingerbread api-10 中,文本转语音并不总是安装在系统上。前段时间听说,从某个 API 开始,TTS将成为 Android 不可或缺的一部分。

我想阻止在新平台上运行的代码中进行TTS可用性检查。有人对这个有经验么?

是否有任何关于文本转语音引擎的官方文档表明它将在某些平台上可用?

只是为了详细说明,我使用此代码来检查 TTS 是否存在。

        final Intent checkIntent = new Intent();
        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
        sourceActivity.startActivityForResult(checkIntent, TTS_CHECK_REQ);

在 onActicityResult 我将结果代码与 CHECK_VOICE_DATA_PASS 匹配以考虑成功否则失败。

4

1 回答 1

0

来自Android 开发者博客

尽管所有支持 TTS 功能的 Android 设备都附带该引擎,但某些设备的存储空间有限,并且可能缺少特定于语言的资源文件。如果用户想要安装这些资源,TTS API 使应用程序能够查询平台以了解语言文件的可用性,并可以启动它们的下载和安装。因此,在创建您的活动时,第一步是检查是否存在具有相应意图的 TTS 资源:(您的示例意图如下)

我从中得到的是引擎是平台的核心部分。但是,语音数据不是,这就是您的意图实际检查的内容。不过,我不会禁用此检查,因为并非所有设备都保证在发货时安装了数据。

当然,最新的 Galaxy 或 Nexus 会,但更便宜的手机呢?真正便宜的呢?他们可能正在运行 ICS 或 JB,但制造商可能已经吝啬,或者只是想节省磁盘空间。自定义 ROM 呢?有些人以摆脱 Android 的“臃肿”而自豪。我几乎可以保证至少有一个删除语音数据。

于 2013-02-12T03:11:36.970 回答