Android Text-To-Speech API suena robótico
Estoy aprendiendo el desarrollo de Android por primera vez y mi objetivo es crear una aplicación simple de Hello World que tome algo de texto y los lea en voz alta.
He basado mi código en un ejemplo que encontré y aquí está mi código:
class MainFeeds : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main_feeds)
card.setOnClickListener{
Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show()
TTS(this, "Hello this is leo")
}
}
}
class TTS(private val activity: Activity,
private val message: String) : TextToSpeech.OnInitListener {
private val tts: TextToSpeech = TextToSpeech(activity, this, "com.google.android.tts")
override fun onInit(i: Int) {
if (i == TextToSpeech.SUCCESS) {
val localeUS = Locale.US
val result: Int
result = tts.setLanguage(localeUS)
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Toast.makeText(activity, "This Language is not supported", Toast.LENGTH_SHORT).show()
} else {
speakOut(message)
}
} else {
Toast.makeText(activity, "Initilization Failed!", Toast.LENGTH_SHORT).show()
}
}
private fun speakOut(message: String) {
tts.speak(message, TextToSpeech.QUEUE_FLUSH, null, null)
}
}
Y funciona perfectamente bien, el problema con el que me encuentro es que el audio que sale del sintetizador suena extremadamente robótico, casi como cuando estoy usando Google Maps y me desconecto de Internet. ¿El uso del asistente de voz de Google aprovecha alguna otra API que tengo que habilitar?
EDIT: He intentado ejecutar la aplicación en mi pixel 2xl y todavía suena robótico, ya que no está usando la voz del Asistente de Google.