En este post realizaremos una aplicación que pueda capturar nuestra voz y convertir en texto
Comencemos
¿Qué necesitamos?
Nivel: Intermedio
Tiempo: 15 minutos
Paso 1. El proyecto
Crea un nuevo proyecto llamado «Voz a Texto». Este debe tener las siguientes características:
Paso 2: Interfaz de Usuario
Utilizando el diseñador, agrega un TextView y un ImageButton, deja sus nombres por defecto. Da a lo controles la siguiente distribución como se muestra en la imagen de abajo.
Para el icono, puedes utilizar los iconos de Google, los puedes descargar en Material Icons
Paso 3: Código
Utilizaremos la clase RecognizerIntent, esta clase contiene soporte para el reconocimiento de voz a través de Intent.
Tanto el código como la aplicación en si, son bastante sencillos, básicamente el usuario presiona un botón, habla y este es capturado en un textview. El código integro a continuación:
package org.example.vozatexto; import android.content.Intent; import android.speech.RecognizerIntent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; import java.util.ArrayList; import java.util.Locale; public class MainActivity extends AppCompatActivity { private TextView textView; private ImageButton imageButton; private final int RCODE = 28; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.textView); imageButton = findViewById(R.id.imageButton); imageButton.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ capturarVoz(); } }); } private void capturarVoz() { Intent intent = new Intent(RecognizerIntent .ACTION_RECOGNIZE_SPEECH); intent.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM ); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, RCODE); } else { Log.e("ERROR","Su dispositivo no admite entrada de voz"); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RCODE && resultCode == RESULT_OK && data != null) { ArrayList<String> result = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); textView.setText(result.get(0)); } } }
Ya solo resta ejecutar y probar el proyecto.
enjoy!
En un post anterior [Crear plantillas personalizadas para Netbeans] vimos una forma sencilla que tiene Netbeans para fac[...]
El control de paginación de JavaFX (Pagination) se usa para navegar a través de varias paginas de contenido divididas en[...]
En un post anterior vimos la forma de conectarnos a una base de datos Access con C#, pero de nada nos sirve solo conecta[...]
Problema: Escriba un programa en java que permita dibujar con el mouse cuadrados, círculos y triángulos. El usuario debe[...]
Los gráficos de líneas muestran una serie como un conjunto de puntos conectados mediante una línea. Los valores se repre[...]
ASCII acrónimo inglés de American Standard Code for Information Interchange (Código Estándar Estadounidense para el Inte[...]