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 este post implementamos el «Código Único de Factura» según la documentación otorgada por Impuestos Bolivia en su siti[...]
Dando respuesta a una interrogante sobre el como crear objetos en tiempo de ejecución y como manipular estos, desarrolle[...]
En este post mostramos como personalizar el Header (encabezado) de un componente JTable en Java colocando iconos, centra[...]
Los procedimientos almacenados en MySQL son similares a los procedimientos de otros lenguajes de programación en el sent[...]
ASCII acrónimo inglés de American Standard Code for Information Interchange (Código Estándar Estadounidense para el Inte[...]
Los códigos QR del inglés Quick Response Code o código de respuesta rápida es un tipo de código para el almacenamiento d[...]