8

我想知道我的 Android 手机附带的 Google TTS 引擎是否在所有支持它的 Android 手机上都安装为出厂默认设置?我不确定要参考什么样的参考来解决这个问题,所以我的计划是去零售商软银问问。不过,我觉得这是一个他们无法回答的问题。

有人告诉我,Galaxies 不附带 Google TTS,特别是;所以,任何拥有银河系的人至少可以让我明白这一点......

我也想知道,我怎样才能获得 Google TTS 引擎的打包版本?我无法在 Play 商店中找到它。我可以通过查看许可证找到最好的东西(那些可爱的小东西总是有开发者的名字和网站)。所以,它是 HTS 引擎,使用 HMM,对吗?但我无法在他们的网站上找到适用于 Android 的软件包。我的下一步是联系开发人员,我目前正在阅读我翻译的电子邮件校对(希望我能找到自己的答案并将其发布)。

任何信息将不胜感激。

4

3 回答 3

6

我认为接受的答案并不正确。此代码不检查是否安装了 google TTS 引擎。它只是启动一个意图,即 TTS 引擎通常会响应询问是否安装了它们的 TTS 数据。

如果没有安装 TTS 引擎,您可能会收到由 ActivityNotFoundException 类型的异常导致的 FC。如果您有其他 TTS 引擎(如 pico),它将响应并检查其数据。如果您有多个 TTS 引擎,它会询问您希望 Intent 使用哪个 TTS 引擎。

您应该改为在包管理器中检查包名称。此代码检查 SVOX Pico TTS:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    if(isPackageInstalled(getPackageManager(), "com.svox.pico")){
        ttsInstalled = true; // This would be good to have it as a static member
    }
}


public static boolean isPackageInstalled(PackageManager pm, String packageName) {
        try {
            pm.getPackageInfo(packageName, 0);
        } catch (NameNotFoundException e) {
            return false;
        }
        return true;
}
于 2013-07-05T19:40:11.640 回答
2

此代码将检查是否已安装 TextToSpeech,如果未安装,请前往谷歌商店下载

Intent intent = new Intent();
intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
ArrayList<String> languages = new ArrayList<String>();
languages.add("eng-USA"); //$NON-NLS-1$
intent.putStringArrayListExtra(TextToSpeech.Engine.EXTRA_CHECK_VOICE_DATA_FOR, 
                                                    languages);
startActivityForResult(intent, REQUEST_TTS_DATA_CHECK_CODE);  

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    super.onActivityResult(requestCode, resultCode, intent);

    switch (requestCode)
    {
        case REQUEST_TTS_DATA_CHECK_CODE:
            if (resultCode != TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
            {
                // show Alert Dialog to ask user go to play store to install
                // When user click OK this is the code to set
                intent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(intent);
            }
            break;

}
于 2013-06-04T07:06:15.853 回答
1

Google TTS 是由 Google 开发的专有软件包,自 ICS [引文需要] 以来,大多数设备(尤其是 Nexus 设备)都可以使用。它是 Google 开发的应用程序的一部分,这些应用程序包括 Google Play 商店、Google 地图、Google+、Gmail、YouTube、Google 搜索、Google Play 音乐、Google Play 图书等。并非所有这些都可以从 Play 商店下载。

据我所知,除非 Google 决定以某种方式将其开源并公开可用,否则您将无法拥有它。正如您已经提到的,Google TTS 使用 HTS 补丁(本身不是引擎)用于 HTK(我也从许可证页面知道这一点),该补丁是在修改后的 BSD 许可证下发布的。也就是说,您可能永远无法获得引擎的副本。

如果您想开发 TTS 引擎,我建议您查看 PICO TTS 引擎,其源代码可在AOSP 存储库中找到。

于 2013-06-04T06:43:26.577 回答