Android TTS 提供的语言比设置中提供的语言多

标签 android text-to-speech

我正在使用 Android 的 TTS(使用 Google 的引擎),我对设置和语言支持感到很困惑。这是我检测语言是否可用的方式:

if (tts.isLanguageAvailable(currentLocale) >= TextToSpeech.LANG_AVAILABLE) {
    ttsAvailable = true;
    tts.setLanguage(currentLocale);
    tts.setOnUtteranceProgressListener(new VPUtteranceProgressListener());
}

效果很好。事实上,它的效果比预期的要好。默认的谷歌引擎并没有说它有荷兰语语音(在设置 > 输入 > 文本到语音转换中找到),但引擎声称它可用并且实际上也说荷兰语。 Google 是不是默默地添加了 TTS 语音,而不是在设置中打开它们?

最佳答案

我没有 50 的评论评论,所以我会在这里回答。

一个简单的解释可能是,当发布 Android 固件时,它倾向于针对特定区域,例如欧洲。因此,欧洲固件可能在固件中内置了几乎所有的西方语言,以及一些或所有东欧语言。

但是,TTS 是固件中的一项“服务”,巧妙地包装在应用程序中,并带有一些支持 Java/Android 类。由于它是一项“服务”,因此它可以与目前通过 TTS 支持的所有或尽可能多的语言 bundle 在一起。

因此,在固件和固件中包含的“服务”之间,您总是会在语言支持方面有所不同。

我希望上面的解释是有道理的。

更新 1:

关于“荷兰语不在此列表中,但引擎确实支持它并说荷兰语”,这可能是疏忽,或者在软件质量保证方面缺乏尽职调查,由Google 或 Android 设备制造商,或两者。因此,即使未列出荷兰语,您仍然可以调用语言环境并在 TTS 中使用它。也许,您需要向 Google 记录此问题。也许他们可以进一步阐明这个问题。

关于Android TTS 提供的语言比设置中提供的语言多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059378/

相关文章:

Python 子进程调用在写入文件时抛出错误

android 位置管理器 minTime 与 minDistance

Android:如何为手机不支持的 TTS 语言开发 App

Android 应用程序在三星 Lollipop 设备上崩溃 NoClassDefFoundError

android - 在 Android webview 中播放视频 - 视频控件不可见

c++ - Espeak 功能

安卓语音转文字

Windows 8 语音转文本和文本转语音 API

Android Room SQLite_ERROR 没有这样的表

android - ViewPager 为所有页面显示相同的 ListFragments