Синтезатор речи Google для Android и проверка наличия обновлений

пытаюсь реализовать преобразование текста в речь в Android, но у этого предмета есть запутанная тема, и я надеюсь, что кто-нибудь сможет прояснить для меня.

Итак, согласно этому

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 Store, и для него уже выпущены обновления. Как я узнаю, нужно ли пользователю обновить свой механизм преобразования текста в речь? И как я могу узнать, установлен ли он на самом деле, потому что устройства Samsung по умолчанию имеют голос Samsung, а не версию Google.

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

А затем, чтобы бросить еще один гаечный ключ, у нас есть эта статья, в которой говорится

Google недавно обновил свое приложение преобразования текста в речь в Play Store, чтобы убрать функции. С обновлением вы больше не можете загружать высококачественные голоса в приложении преобразования текста в речь.

И

Согласно Google, стандартный голосовой движок «теперь превосходит по качеству высококачественные голоса из нашей предыдущей версии».

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

Итак, как я могу узнать, установлен ли у них Google Text to Speech и обновлен ли он, потому что похоже, что обновления будут предлагать улучшения для голосовой системы


person Ersen Osman    schedule 17.08.2015    source источник
comment
Почему бы вам не использовать TTS по умолчанию, предоставленную android   -  person Sheychan    schedule 17.08.2015
comment
@Sheychan Есть ли разница между этим и тем, который предоставляется Google через это приложение?   -  person Ersen Osman    schedule 17.08.2015
comment
Хммм, я подумал, что вам следует попытаться реализовать значение по умолчанию, чтобы вам не пришлось копаться в движках в игровом магазине .. Потому что это уже область действия устройства   -  person Sheychan    schedule 17.08.2015
comment
@Sheychan, привет, у меня есть еще один вопрос, как я должен вызывать getMaxSpeechInputLength (), если минимальный требуемый SDK равен 18, а я поддерживаю 14? Это не имеет смысла, если один из вызовов Speak поддерживает API 4, поэтому устройства ниже 18 не могут справиться с лимитом?   -  person Ersen Osman    schedule 17.08.2015


Ответы (1)


Причина, по которой я не использую механизм преобразования текста в речь по умолчанию для 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());
    }

Вам нужно будет изменить URL-адрес в соответствии с вашими потребностями. Например, если вы хотите преобразовать текст в речь на английском языке, замените 'tl = zh-TW' на 'tl = en'. Вам также нужно будет заполнить что-то вместо «q =» на что-то вроде «q = hello».

Также этот API заблокирован капчей. Чтобы обойти это, см. Этот ответ Google Translate TTS API заблокирован.

Также сделайте

mPlayer.play();

на нажатие кнопки или что-то еще, чтобы услышать это с телефона.

person ginsengtang    schedule 17.08.2015