Conversión de voz a texto: cómo crear una aplicación de dictado simple

Autor: Lewis Jackson
Fecha De Creación: 13 Mayo 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
Conversión de voz a texto: cómo crear una aplicación de dictado simple - Aplicaciones
Conversión de voz a texto: cómo crear una aplicación de dictado simple - Aplicaciones

Contenido


Muchas aplicaciones, servicios y dispositivos domésticos utilizan el reconocimiento de voz para proporcionar una mejor experiencia de usuario y mejorar la accesibilidad. Hay innumerables aplicaciones de Android que hacen uso del reconocimiento de voz, el más notable de los cuales es el Asistente de Google, así que ¿por qué no hacer lo mismo y agregar esta función a sus propias aplicaciones de Android?

En este artículo, compartiré una manera rápida y fácil de comenzar con la intención de voz a texto de Android, que puede ser útil en una amplia gama de aplicaciones. Por ejemplo, puede usar el reconocimiento de voz para automatizar la tediosa entrada manual de datos, generar automáticamente subtítulos, o incluso como base para una aplicación de traducción que "escucha" la entrada vocal, la convierte en texto, luego traduce este texto y muestra los resultados a el usuario.

Independientemente del tipo de aplicación que cree, el reconocimiento de voz puede mejorar la accesibilidad al proporcionar a los usuarios una forma alternativa de interactuar con su aplicación. Por ejemplo, las personas con problemas de movilidad, destreza o vista pueden encontrar más fácil navegar aplicaciones móviles usando comandos de voz, en lugar de la pantalla táctil o el teclado. Además, según la Organización Mundial de la Salud (OMS), más de mil millones de personas tienen alguna forma de discapacidad, lo que equivale a alrededor del 15% de la población mundial. Agregar funciones de accesibilidad a sus aplicaciones puede aumentar significativamente su audiencia potencial.


Al final de este artículo, habrá creado una aplicación simple de voz a texto que graba su voz, la convierte en texto y luego la muestra en la pantalla.

Crear una interfaz de usuario de voz a texto

Para comenzar, cree un nuevo proyecto de Android con la plantilla "Actividad vacía".

Crearemos una aplicación simple que consiste en un botón que, cuando se toca, activa la intención de voz a texto de Android y muestra un cuadro de diálogo que indica que su aplicación está lista para aceptar la entrada de voz. Una vez que el usuario haya terminado de hablar, su entrada se convertirá en texto y luego se mostrará como parte de un TextView.

Comencemos creando nuestro diseño:

Esto nos da el siguiente diseño:


Agregar reconocimiento de voz a su aplicación de Android

Capturamos y procesamos la entrada de voz en dos pasos:

1. Iniciar RecognizerIntent

La forma más fácil de realizar la conversión de voz a texto es usar RecognizerIntent.ACTION_RECOGNIZE_SPEECH. Esta intención solicita al usuario una entrada vocal al iniciar el cuadro de diálogo de micrófono familiar de Android.

Una vez que el usuario deja de hablar, el cuadro de diálogo se cerrará automáticamente y ACTION_RECOGNIZE_SPEECH enviará el audio grabado a través de un reconocedor de voz.

Comenzamos RecognizerIntent.ACTION_RECOGNIZE_SPEECH usando startActivityForResult () con paquetes adicionales. Tenga en cuenta que, a menos que se especifique lo contrario, el reconocedor utilizará la configuración regional predeterminada del dispositivo.

public void onClick (Ver v) {// Activar la intención de RecognizerIntent // Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); pruebe {startActivityForResult (intento, REQUEST_CODE); } catch (ActivityNotFoundException a) {}}

2. Recibir la respuesta del habla.

Una vez que se completa la operación de reconocimiento de voz, ACTION_RECOGNIZE_SPEECH enviará los resultados a la Actividad de llamada como una matriz de cadenas.

Como activamos el RecognizerIntent a través de startActivityForResult (), manejamos los datos del resultado al anular onActivityResult (int requestCode, int resultCode, Intent data) en la Actividad que inició la llamada de reconocimiento de voz.

Los resultados se devuelven en orden descendente de reconocimiento de voz. Por lo tanto, para asegurarnos de que estamos mostrando el texto más preciso, necesitamos tomar la posición cero de la ArrayList devuelta y luego mostrarla en nuestra TextView.

@Override // Definir un método OnActivityResult en nuestra actividad de llamador de actividad // protegido void onActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// Si se devuelve RESULT_OK ... // if (resultCode == RESULT_OK && null! = data) {//... luego recupere la ArrayList // ArrayList resultado = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); // Actualice nuestro TextView // textOutput.setText (result.get (0)); } rotura; }}}}

Tenga en cuenta que la conversión de voz a texto no requiere una conexión a Internet activa, por lo que funcionará correctamente incluso cuando el usuario esté desconectado.

Después de completar todos los pasos anteriores, su MainActivity debería verse así:

importar android.content.ActivityNotFoundException; importar androidx.appcompat.app.AppCompatActivity; importar android.os.Bundle; importar android.content.Intent; importar android.speech.RecognizerIntent; importar android.widget.TextView; importar android.view.View; import java.util.ArrayList; clase pública MainActivity extiende AppCompatActivity {private static final int REQUEST_CODE = 100; TextView privado textOutput; @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // Se llama a este método con el botón presionado // public void onClick (View v) // Crea una intención con la acción “RecognizerIntent.ACTION_RECOGNIZE_SPEECH” // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intente {// Inicie la actividad y espere la respuesta // startActivityForResult (intento, REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // Manejar los resultados // vacío protegido enActivityResult (int requestCode, int resultCode, Intent data) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList resultado = data.getStringArrayListExtra (RecognizerIntent.EXTRA_RESULTS); textOutput.setText (result.get (0)); } rotura; }}}}

Puede descargar el proyecto completado desde GitHub.

Probar tu proyecto

Para poner su aplicación a prueba:

  • Instale su proyecto en un dispositivo Android físico o en un dispositivo virtual Android (AVD). Si está usando un AVD, su máquina de desarrollo debe tener un micrófono incorporado o puede usar un micrófono externo o auriculares.
  • Toca el botón "Iniciar dictado" de la aplicación.
  • Cuando aparezca el cuadro de diálogo del micrófono, hable a su dispositivo. Después de unos momentos, sus palabras deberían aparecer en la pantalla.

Terminando

En este artículo, vimos cómo puede agregar rápida y fácilmente el reconocimiento de voz a sus aplicaciones de Android, utilizando la intención de voz a texto. ¿Has encontrado alguna aplicación de Android que use el reconocimiento de voz de formas sorprendentes o innovadoras?

Próximo: Cree una aplicación de Android de realidad aumentada con Google ARCore

LG no ha lanzado ningún acceorio hecho epecíficamente para el V40, ni iquiera lo etuche. Pero í vende mucho producto que complementan bien el dipoitivo, incluido un teclado, un reloj in...

¿Buca una carcaa delgada para LG V30? No hay una carcaa má delgada que la carcaa MNML con olo 0,35 mm. E tan delgado que e verá y e entirá como i no tuviera ningún cao. No ofr...

Nuestras Publicaciones