Sembra che sia progettato TextToSpeech. Immagino che potrebbe caricare solo una lingua i dati nello stesso momento e quando ne richiedi un'altra deve scaricare i dati della lingua corrente e caricarne una nuova. Ho aggiunto il problema qui: https://code.google.com/p/android/issues/detail?id=200974
Probabilmente Google risolverà in futuro.
Lo hanno fatto!
Come soluzione temporanea per ora è possibile pre-sintetizzare il file audio e quindi semplicemente riprodurlo. F.G. è possibile avviare alcuni AsyncTask all'avvio dell'attività e generare il suono sullo sfondo. E quando è pronto, rivela il pulsante sull'interfaccia utente per consentire all'utente di riprodurlo. Inoltre ho trovato che TextToSpeech è meglio inserire nel proprio processo di servizio utilizzando android: l'attributo di processo per il servizio per evitare il blocco dell'interfaccia utente su alcuni dispositivi quando setLanguage sta caricando i dati della lingua.
AGGIORNAMENTO 2016-02-17: Ho appena aggiornato TextToSpeech alla versione 3.8.14 dal 15 febbraio. E non ci sono più ritardi! Sto usando 2 lingue per leggere i diversi testi di lingua uno per uno e nessun ritardo tra più! Grazie a Google e al team di TextToSpeech! Sei il migliore!
AGGIORNAMENTO 18/02/2016 18: Ho testato più dispositivi e ho riscontrato che il problema esiste ancora per i dispositivi precedenti in cui Android 4.x è ancora utilizzato. Testato su XOOM con Android 4.1.2 e qualche dispositivo noname 7100 con Android 4.1.1. Entrambi hanno ancora gli stessi ritardi. Non sono sicuro che sia collegato, ma ho notato che entrambi i dispositivi Android con Android 4.x hanno il problema con UtteranceProgressListener. Per farlo funzionare su tali dispositivi ho dovuto passare il parametro utteranceId nella funzione speak(). Tuttavia il dispositivo su cui questo bug è andato ha funzionato bene senza questo parametro. Il dispositivo su cui funziona correttamente per ora è LG d405 con Android 5.0.2 E aveva lo stesso problema di ritardo prima di installare l'aggiornamento recente di TextToSpeech.
Qual è lo stato di questa domanda? Sei riuscito a trovare una soluzione? – user1339260