Mostrar más resultados
28882

Integrar comandos de voz en apps

Integrar comandos de voz en apps

Escrito por Jordi Mula

Uso de comandos de voz

La mayoría de nosotros aunque no seamos de las generaciones llamadas nativos digitales estamos acostumbrados a hacer uso de técnicas de navegación como el ratón, el scroll, el uso de los dedos en la pantalla, etc. Hace ya algunos años la versión M del sistema operativo de Android incorporó algunos elementos nuevos al desarrollo de aplicaciones, uno de ellos fue la manera en la que se gestionaban los permisos de las aplicaciones Android, pero también la integración de las API de Integración de Voz

Integración de comandos de voz en apps

La integración de comandos de voz en nuestras aplicaciones se puede encarar desde diferentes perspectivas dependiendo de las necesidades del desarrollo al que nos enfrentemos. Por ejemplo, en el caso del desarrollo de aplicaciones para dispositivos wearable, Google ya define toda una serie de comandos de voz integrados en el sistema para acciones concretas, que pueden ir desde tomar una nota, hasta por ejemplo, pedir un taxi. La manera de acceder a estos comandos de voz es a través de definiciones de filtros intent.

Si por otro lado queremos gestionar los comandos de voz integrándolos en nuestras apps, podemos hacer uso de la actividad de comando de voz. Para poder hacer uso de esta actividad primero debemos modificar el manifest de nuestra aplicación y añadir dos permisos, uno para poder grabar audio con nuestro dispositivo y otro para poder acceder a internet:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns_android="http://schemas.android.com/apk/res/android"

   package="com.example.texttospeech">

   <uses-permission android_name="android.permission.RECORD_AUDIO"/>

   <uses-permission android_name="android.permission.INTERNET"/>

Podremos acceder al reconocimiento de los comandos de voz mediante los intents de reconocimiento, en este caso concreto haremos uso de la acción ACTION_RECOGNIZE_SPEECH, será necesario también añadir los extras de EXTRA_LANGUAGE_MODEL y EXTRA_LANGUAGE_FREE_FORM:

speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this);

final Intent speechRecognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);

speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());

Finalmente una vez procesados los resultados del reconocimiento de los comandos de voz podremos tener una array con los diferentes resultados:

@Override

public void onResults(Bundle bundle) {

   micButton.setImageResource(R.drawable.ic_mic_black_off);

   ArrayList<String> data = bundle.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);

       editText.setText(data.get(0));

}

Otras de las opciones que podemos barajar para integrar comandos de voz en nuestra aplicación es realizar uso de la búsqueda por voz que también nos ofrece Google, siendo necesario en este caso el uso del intent-filter de SEARCH_ACTION:

<intent-filter>

    <action android_name="com.google.android.gms.actions.SEARCH_ACTION"/>

    <category android_name="android.intent.category.DEFAULT"/>

    <category android_name="android.intent.category.VOICE"/>

</intent-filter>

Realizando posteriormente la búsqueda que deseemos y comparando los resultados con la lista que hayamos proporcionado al desarrollar la aplicación:

String action = intent.getAction();

if (action.equals(Intent.ACTION_SEARCH)) {  

    String query = intent.getStringExtra(SearchManager.QUERY); 

        handleQuery(query); }

La integración de comandos de voz en nuestras apps desarrolladas para android nos permite una mayor versatilidad y accesibilidad para los usuarios, haciendo de esta tecnología un recurso de gran ayuda para los diferentes tipos de usuarios. Además, hemos podido comprobar que el uso y la integración de estos comandos en nuestra aplicación se puede realizar de maneras diversas con finalidades diversas.

La elección del método a implementar en el desarrollo de nuestros productos siempre vendrá determinada por el resultado y la experiencia de usuario que queramos conseguir. Poco a poco estas API se irán incrementando tanto en potencia como en funcionalidad y los progresos en el campo de la inteligencia artificial irán favoreciendo cada vez más el reconocimiento de más comandos y de más variedad de idiomas, si a esto le vinculamos también las tecnologías de Text to Speech, poco a poco nuestros asistentes virtuales irán siendo cada vez más cercanos a la ciencia ficción que todos teníamos en mente para el año 2000, y a pesar que la evolución tecnológica no es tan rápida como podría haberse esperado, sí que es cierto que cada vez estamos más cerca de ese futuro que siempre hemos tenido en mente. Aunque siempre nos quedará de por medio un valle inquietante que nos separe de ellos.

¿Ves interesante la incorporación de los comandos de voz a tus desarrollos? Déjanos tus comentarios