Android text to speech (TTS) en Kotlin.

En este tutorial se explica Android text to speech en Kotlin (TTS). Básicamente es una tecnología que convierte el texto escrito en voz sintetizada. Permitiendo a las aplicaciones y dispositivos hablar el contenido en lugar de que los usuarios lo lean.

Text to speech es de gran utilidad para personas con discapacidad visual, para personas que no pueden hablar, para situaciones en las que no puedes estar viendo la pantalla y realizando otra acción, o simplemente para ofrecer una experiencia más interactiva y accesible.

Para poder usar TTS en Android con Kotlin, se usa el TextToSpeech Engine, en el cual se importa de la siguiente manera, aunque esto lo hace automáticamente Android al escribir alguno de los comandos que usaremos más adelante.

import android.speech.tts.TextToSpeech

1. Agregar permisos en el archivo AndroidManifest.xml.

Dependiendo del uso que le darás al Text To Speech, es probable que necesites agregar permisos. Pero si  tu app únicamente leerá texto del contenido de tu app, y no modificarás la forma en que se reproduce el audio, no será necesario agregar algún permiso.

Los más comunes son los siguientes, en los que básicamente es permiso a internet, configuración de audio, leer estado del teléfono, etc.

<uses-permission android:name=”android.permission.INTERNET” />

<uses-permission android:name=”android.permission.RECORD_AUDIO” />

<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />

<uses-permission android:name=”android.permission.MODIFY_AUDIO_SETTINGS” />

Puedes usar TTS sin la necesidad de permisos.

2. Inicializar Android Text To speech en Kotlin

El primer paso es implementar TextToSpeech.OnInitListener, esto se logra usando dos puntos después del nombre de la calse.

class MainActivity : AppCompatActivity(), TextToSpeech.OnInitListener { ……… }

Al hacer esto nos pedirá implementar un método llamado onInit.

En este método se configurará el idioma en el que funciona el Text To Speech, en el siguiente ejemplo se configura en Español de México.

Se agrega un mensaje de error en caso de que no se pueda configurar el lenguaje.

3. Variable de Text To Speech.

Para el siguiente epaso, vamos a inicializar una variable que sea tipo TextToSpeech, el valor inicial será null. Luego en el método OnCreate inicializaremos el valor de esta variable.

4. Hablar el texto seleccionado.

Por último, usaremos la variable que creamos en el paso anterior, para reproducir con vos algún texto. Esto se logra con el siguiente código:

tts!!.speak(“Texto a leer”, TextToSpeech.QUEUE_FLUSH, null, “”)

Los signos de admiración son para indicar que tts no es un valor núlo. Recomendamos asegurarnos de que tts no es nulo, si es nulo tendremos un error.

5. Liberar recursos.

No hay que olvidarnos de liberar los recursos del Text to Speech Engine, cuando ya no sean necesarios. Esto lo podemos hacer en el método onDestroy().

Para más tutoriales de Kotlin ve a este enlace.

Algunos temas que pueden ser de su interés: