API de conversão de texto em voz do Android parece robótica
Estou aprendendo o desenvolvimento do Android pela primeira vez e meu objetivo é criar um aplicativo simples Hello World que inclua algum texto e os leia em voz alta.
Baseei meu código em um exemplo que encontrei e aqui está o meu 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)
}
}
E funciona perfeitamente bem, o problema que estou enfrentando é que o áudio que sai do sintetizador soa extremamente robótico, quase como quando estou usando o Google Maps e sou desconectado da Internet. O uso do Voice Assistant do Google utiliza outra API que eu tenho que ativar?
EDIT: Tentei executar o aplicativo no meu pixel 2xl e ainda parece robótico, pois não está usando a voz do Google Assistant.