1

试图在 android 中实现 Text-to-Speech,但这个主题有一个令人困惑的话题,我希望有人可以为我澄清一下。

所以按照这个

http://android-developers.blogspot.pt/2009/09/introduction-to-text-to-speech-in.html

所有 android 设备都附带 Google TTS 引擎,但有些设备的存储空间有限,并且可能缺少特定语言的资源。

然后它谈到了一个意图,它只是检查一种语言是否可用,这会让我得到这个答案

为什么 ACTION_CHECK_TTS_DATA 意图“使用起来很尴尬”?

检查不必通过意图,而是一个简单的 if 语句,只需通过调用 isLanguageAvailable() 来检查语言是否可用

所以我的问题是:

Google 文本到语音引擎在 Play 商店中,并已发布更新。我怎么知道用户是否需要更新他们的文本到语音引擎?我怎么知道它是否正确安装,因为三星设备默认有三星语音,而不是谷歌版本。

https://play.google.com/store/apps/details?id=com.google.android.tts&hl=en

然后扔另一个扳手,我们有这篇文章说

谷歌最近更新了 Play Store 上的文字转语音应用程序,以取消功能。通过更新,您无法再在文本转语音应用程序上下载高质量的语音

据谷歌称,标准语音引擎“现在超过了我们之前版本的高质量语音质量。”

http://www.androidcentral.com/google-removes-high-quality-voices-text-speech-update-thats-not-bad-thing

那么我怎么知道他们是否安装了 Google Text to Speech 以及它是否已更新,因为看起来更新会增强语音系统

4

1 回答 1

0

我不使用 Android 的默认文本到语音引擎的原因是 Android 不支持普通话。这可能不是你的情况,但我发现我的答案很容易实现,可能值得一试。您不必检查更新或其他任何内容。此解决方案不是永久性的,因为 Google 可能会更改此非官方 API。无论如何,这里是:

    String url = "http://translate.google.com/translate_tts?ie=utf-8&tl=zh-TW&q=";
    mPlayer = new MediaPlayer();
    mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

    try{

        mPlayer.setDataSource(url);
        mPlayer.prepareAsync();
        Log.i("url", url);

    }catch(Exception e){
        Log.e("mediaPlayer", e.toString());
    }

您将不得不更改网址以满足您的需求。例如,如果您想将英文文本转为语音,请将 'tl=zh-TW' 更改为 'tl=en'。您还必须为 'q=' 填写一些内容,例如 'q=hello'。

此 API 也被验证码阻止。要解决它,请参阅此答案Google Translate TTS API blocked

也做一个

mPlayer.play();

单击按钮或通过电话听到它。

于 2015-08-17T15:14:26.027 回答