Я использую текст для речи в своем приложении для Android. Он работает отлично с Google TT и espeak, но когда я использовал с Samsung TTS, он дает следующее исключение.
java.lang.IllegalArgumentException: Invalid int: "OS" at android.os.Parcel.readException(Parcel.java:1429) at android.os.Parcel.readException(Parcel.java:1379) at android.speech.tts.ITextToSpeechService$Stub$Proxy.isLanguageAvailable(ITextToSpeechService.java:482) at android.speech.tts.TextToSpeech$10.run(TextToSpeech.java:1084) at android.speech.tts.TextToSpeech$10.run(TextToSpeech.java:1081) at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:1329) at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:570) at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:561) at android.speech.tts.TextToSpeech.isLanguageAvailable(TextToSpeech.java:1081)
Я обнаружил, что получаю это исключение также, когда пытаюсь сделать что-то вроде TextToSpeech.getDefaultVoice
или TextToSpeech.getVoices()
или TextToSpeech.getVoice()
. Я работал над этим, не называя их, а вместо этого работая по умолчанию Locale, чтобы получить то, что я пытался получить через объект Voices.
Поэтому в моем случае я хотел знать Locale, чтобы выбрать язык, поэтому я сделал следующее
Locale lTest = Locale.getDefault(); res = mTTS.isLanguageAvailable(lTest);