Cómo tomar dictado de voz en tu Android portátil

¿Tiene un reloj Android Wear? Si es así, es probable que lo ama, y ​​que ya ha dado cuenta de que no tiene un teclado. Si no, pruebe buscando uno. Esperaré.

Si eres un desarrollador de Android Wear, usted debe saber que la mayoría de aplicaciones en Android Wear suelen ser de sólo lectura. Aplicaciones Android Wear son útiles para conseguir notificado acerca de las cosas particulares que hay que hacer, pero si quieres que hacer nada complicado, lo más probable es sacar su teléfono y lo hacen allí en lugar de en su reloj.

Control por voz es una excepción interesante a esta regla. Con el dictado de voz, puedes información "tipo" en su reloj sin tener que utilizar un teclado con facilidad.

Aquí, usted aprenderá cómo agregar nuevos elementos a su base de datos con la voz.

Hay tres tipos de control por voz

Android Wear ofrece tres tipos de control de voz fuera de la caja.

  • Acciones de voz del sistema provisto, como "Tome una nota" o "Llamar a un taxi / taxi".

  • Comandos proporcionados por la aplicación de voz en "Inicio", tales como "Start Tareas" o "Start MyRunningApp"

  • De forma libre dictado de voz

Las acciones de voz proporcionados por el sistema son los más convenientes para los usuarios. No requieren que el usuario aprenda nuevas indicaciones de voz, y "sólo trabajo" desde cualquier lugar. Si uno de Android acciones integradas de voz es apropiado para su aplicación, este es el mejor camino a seguir.

Los comandos de voz en "Inicio" app-siempre son una forma viable, pero menos potente para agregar comandos de voz para su aplicación. Cada actividad en su aplicación puede tener un nombre de inicio separada especificado por la etiqueta de la actividad. Por ejemplo, si establece la etiqueta de su actividad a tareas MyTasksApp, entonces su actividad Tareas que lanzará cuando el usuario dice "Inicio MyTasksApp". A diferencia de las acciones de voz proporcionados por el sistema, que reconocen alternativas comunes a la acción de voz, el usuario debe coincidir con la etiqueta exactamente. Decir "Inicio TasksApp" no iniciará su aplicación, por ejemplo.

La opción de dictado de voz de forma libre es una opción muy potente, pero requiere que el usuario ya sea en su aplicación con el fin de tomar ventaja de ello. Debido a que no siempre es obvio cómo poner en marcha una aplicación para Android Wear, esta opción es buena, pero menos común.

Android Wear viene con un "Tome una nota" acción prevista por el sistema, así que vamos a usar eso para agregar una tarea para nuestra aplicación.

Configuración del filtro de Intención

Cuando el usuario dice "Toma nota" a su reloj de Android, el texto resultante se envía a su aplicación a través de una intención. Para capturar esa intención, debe crear una actividad y un filtro intención de que coincida con la intención.

Agrega un TakeVoiceNote actividad a la AndroidManifest.xml de su aplicación de desgaste, y registrar un filtro intención de capturar la SELF_NOTE intención:

Obtener el texto de voz

Es la cosa más fácil del mundo para obtener la salida de la actividad de reconocimiento del habla. Sólo tiene que añadir el TakeVoiceNote actividad y recuperar el texto de la intención, así:

public class TakeVoiceNote extiende Actividad {.Overrideprotected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -string VoiceNote = getIntent () getStringExtra (Intent.EXTRA_TEXT) -}}

¡Eso es! Cualquiera que sea el usuario el que dicho ha sido transcrita y se coloca en el nota de voz variable.

Ahora la parte difícil es qué hacer con ese texto.

Abrir una conexión a Google Play

Las API de acción de voz son muy simples, pero para usarlos tendrás que configurar los servicios de Google Play APIs, y esos son un poco más complicado de usar.

Para añadir Google Play Servicios API de ubicación a su proyecto, coloque la siguiente dependencia en su build.config archivo:

dependencias {compile'com.google.android.gms: play-servicios-portátiles: 6.5.87 '}

A continuación, añada lo siguiente a su AndroidManifest.xml:

android: name ="com.google.android.gms.version"android: valor="@ entero / google_play_services_version"/>

Para establecer una conexión con el Google Play Servicios, añada lo siguiente a su actividad:

// los Google API cliente, para usable serviciosGoogleApiClient googleApiClient-Overridepublic Void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -googleApiClient = nuevo GoogleApiClient.Builder (esto).addConnectionCallbacks (esto).addOnConnectionFailedListener (esto).addApi (Wearable.API).construir()-...}Overridepublic Vacío onStart () {super.onStart () -googleApiClient.connect () -}Overridepublic Anular OnStop () {googleApiClient.disconnect () -super.onStop () -}

Recuerde que el ID de aplicación de la aplicación de teléfono y la aplicación de desgaste deben ser los mismos! Si son diferentes, no se establecerá la conexión.

Este código crea un nuevo GoogleApiClient objeto en su onCreate () para conectarse a Google Play Services y, a continuación, intenta conectarse en su onStart () y desconecte en su OnStop (). los GoogleApiClient necesita un objeto de devolución de llamada que le informe cuando se ha establecido una conexión, por lo que tendrá que añadir las devoluciones de llamada a su actividad.

public class TakeVoiceNote extiende implementos ActividadGoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener{@ Overridepúblico vacío onConnected (Bundle connectionHint) {// Conectado a Google Jugar servicios!// Esta es dónde  será escribir tu nuevo tarea a el// base de datos.}@ Overridepúblico vacío onConnectionSuspended (int porque) {// los Google Jugar conexión posee estado interrumpido.// Desactivar alguna IU componentes ese depender en Google // API hasta onConnected () es llamado.//// Esta ejemplo doesn't necesitar a hacer cualquier cosa Aquí.}@ Overridepúblico vacío onConnectionFailed (ConnectionResult resultado) {// Esta llama de vuelta es importante para manejo errores // ese mayo ocurrir mientras intentar a conectar con // Google.//// por Más información acerca de Cómo a manejar errores, // ver// https://developer.android.com/google/auth/api-client.html}}

¡Felicidades! Has ahora correctamente configurado una conexión a servicios de Google Play, que se desconectará automáticamente cuando se detiene su actividad. El siguiente paso es preguntar al teléfono para crear una nueva tarea.

Solicitando al teléfono para añadir una nueva tarea

Ahora que usted tiene una conexión a Google Play, el siguiente paso es enviar el texto de voz en su teléfono para que el teléfono puede añadir una nueva tarea a su base de datos.

Actualizar el onConnected () método de su actividad para enviar un mensaje a su teléfono con el contenido del dictado de voz:

public class TakeVoiceNote extiende Activityimplements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {// El camino (algo así como un URI) que identifica la operación // que desea realizar en el auricular. final String estática privada PATH_ADD_TASK = "/ addTask"- ... @ Override public void onConnected (paquete Bundle) {Log.d ("TakeVoiceNote", "onConnected") - // El texto de reconocimiento de voz se pasa a través de la // IntenciónCadena VoiceNote = getIntent (). GetStringExtra ( Intent.EXTRA_TEXT) -// Convertir la cadena de bytesbyte final [] voiceNoteBytes = voiceNote.getBytes (Charset.forName ("UTF-8")) -// Obtener una lista de todos los dispositivos que usted're // conectado a. Por lo general, esto sólo puede ser su // Teléfono. Cualquier otro dispositivo ignorará su mensaje.Wearable.NodeApi.getConnectedNodes (googleApiClient) .setResultCallback (nueva ResultCallback() { @ Override pública onResult void (Nodos GetConnectedNodesResult)  {para (nodo Nodo: nodes.getNodes ()) {  // Enviar el teléfono un mensaje solicitando que // Que añadir la tarea a la base de datos Wearable.MessageApi.sendMessage (googleApiClient,node.getId (),PATH_ADD_TASK,voiceNoteBytes) - } terminar () - }} ) - }}

Crear la nueva tarea en el teléfono

Lo único que queda por hacer es escuchar el mensaje en su teléfono para que pueda crear una nueva tarea cuando se le solicite. Usted hace esto con un simple WearableListenerService.

En su aplicación de teléfono, cree una nueva clase llamada AddTaskWearableListenerService y agrega el siguiente código:

public class AddTaskWearableListenerService extendsWearableListenerService {// En caso de que coincida con la cadena en TakeVoiceNoteprivate estática PATH_ADD_TASK final String = "/ addTask" - @ Overridepublic vacío onMessageReceived (MessageEvent messageEvent) {if (PATH_ADD_TASK.equals (messageEvent.getPath ())) {// Crear la ContentValues ​​objetan que almacena toda la // de la información por el título taskString = new String (messageEvent.getData (), Charset.forName ("UTF-8")) - los valores ContentValues ​​= new ContentValues ​​() - values.put (COLUMN_TITLE, título) -values.put (COLUMN_NOTES, "") -values.put (COLUMN_DATE_TIME, System.currentTimeMillis ()) -. // Introducir la tarea en el databasegetContentResolver () (inserte CONTENT_URI, valores) -}}}

Usted tendrá que registrarse en el servicio AndroidManifest.xml de su aplicación de teléfono, por lo que añadir lo siguiente a su nodo de aplicación:

Pruébelo!

Si estás usando un emulador para su dispositivo Android Wear, tendrá que conectarlo a su teléfono Android.

Una vez que está en marcha y funcionando, seguir adelante y aprovechar tu Android Wear para que aparezca el menú de acciones, y luego haga clic en el usar una opción de nota.

image0.jpg

Si estás usando un emulador de reloj, a continuación, escriba su respuesta.

image1.jpg

Una vez que la nota salva, tire hacia arriba de la aplicación Tareas en su teléfono y usted debería ver el nuevo elemento:

image2.jpg

¡Felicidades! Usted ha dictado con éxito una nota de voz y guardó a su aplicación Tareas.

Hay todo tipo de cosas interesantes que puede hacer con los controles de voz en las plataformas Android Wear y Android. Para más ideas, echa un vistazo a la adición de capacidades de voz y recepción de entrada de voz en una notificación de artículos en el sitio web para desarrolladores de Android. Piratería feliz!




» » » » Cómo tomar dictado de voz en tu Android portátil