comandos voz apps
30/09/2020

Integrar comandos de voz en apps

Desarrollo de apps

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

Comparte en:

Ingeniero Técnico en Telecomunicaciones. Trabaja actualmente como Lead Game Developer y Game Designer en una compañía de videojuegos.

desarrollo apps
20/07/2020
Jordi Mula

Por qué estudiar desarrollo de apps online

Uno de los sectores más emergentes en los últimos años ha sido el del desarrollo de aplicaciones para dispositivos móviles. Mucha gente se ha acercado a este tipo ...

facebook gaming
22/06/2020
Jordi Mula

Conociendo la nueva app de Facebook Gaming

Facebook Gaming, es la nueva plataforma de streaming de vídeo de la empresa de Zuckerberg, como su propio nombre indica, busca enfocarse en el mundo de los eSports...

pac man
06/06/2020
Jordi Mula

El icónico videojuego Pac-Man cumple 40 años

Los años van pasando y para unos pasan mejor que para otros. PacMan cumple 40 años y vamos a hacer un breve repaso a su historia y su impacto para intentar ver cómo...