La aplicación Text to Speech convierte el texto escrito en la pantalla en voz como si hubiera escrito «Hello World» en la pantalla y cuando presiona el botón dirá «Hello World». El texto a voz se usa comúnmente como una función de accesibilidad para ayudar a las personas que tienen problemas para leer el texto en pantalla, pero también es conveniente para aquellos que también quieren que les lean. Esta característica se ha convertido en una característica muy común y útil para los usuarios. Usaremos el lenguaje Kotlin para este proyecto. En este artículo, veremos cómo usar el método speak() de la clase android.speech.tts.TextToSpeech . Y usando el mismo convertiremos un texto a voz (audio).
Implementación paso a paso
Paso 1: crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Crear un nuevo proyecto en Android Studio en kotlin.
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/gfg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GeeksforGeeks" android:textColor="#189C1E" android:textSize="22sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.134" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <EditText android:id="@+id/et_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" > </EditText> <Button android:id="@+id/btn_speak" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/speak" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Paso 3: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
package com.ayush.myapplication import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.speech.tts.TextToSpeech import android.util.Log import android.widget.Button import android.widget.EditText import java.util.* // Extending MainActivity TextToSpeech.OnInitListener class class MainActivity : AppCompatActivity(),TextToSpeech.OnInitListener { private var tts: TextToSpeech? = null private var btnSpeak: Button? = null private var etSpeak: EditText? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // view binding button and edit text btnSpeak = findViewById(R.id.btn_speak) etSpeak = findViewById(R.id.et_input) btnSpeak!!.isEnabled = false // TextToSpeech(Context: this, OnInitListener: this) tts = TextToSpeech(this, this) btnSpeak!!.setOnClickListener { speakOut() } } override fun onInit(status: Int) { if (status == TextToSpeech.SUCCESS) { val result = tts!!.setLanguage(Locale.US) if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { Log.e("TTS","The Language not supported!") } else { btnSpeak!!.isEnabled = true } } } private fun speakOut() { val text = etSpeak!!.text.toString() tts!!.speak(text, TextToSpeech.QUEUE_FLUSH, null,"") } public override fun onDestroy() { // Shutdown TTS when // activity is destroyed if (tts != null) { tts!!.stop() tts!!.shutdown() } super.onDestroy() } }
Nota : debemos detener y apagar TextToSpeech Engine cuando se destruya la actividad.
Entonces, nuestra aplicación está lista. Y podemos ver la salida.
Producción:
Publicación traducida automáticamente
Artículo escrito por ayushpandey3july y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA