¿Cómo puedo implementar Google Voice Typing en mi aplicación?

Estoy tratando de agregar un botón en mi aplicación que inicia Google Voice Typing (o el reconocimiento de voz predeterminado). He intentado seguir este tutorial . Este tutorial es increíblemente confuso para mí. Importé el archivo .jar y agregé los permisos, servicios y actividades necesarios a mi Manifiesto. Pero no puedo imaginar cómo "ponerlo todo junto". Me pregunto:

  1. ¿Se supone que debo llamar a inputMethodService desde mi botón de clic en mi actividad principal? ¿O mi inputMethodService se convierte esencialmente en mi actividad principal?
  2. ¿Qué significa IME? Traté de Google, pero las definiciones que me dio no ayudó a mi comprensión.
  3. Cuando intento copiar y pegar el código completo de DemoInputMethodService en mi actividad actual, consigo un error que dice que no puedo extender InputMethodService dentro de esta actividad. (Lo que lleva de nuevo a hacer la primera pregunta.)

¿Cómo puedo conseguir que esto funcione?

Si desea seguir el tutorial que menciona, entonces necesita implementar un IME (editor de métodos de entrada) primero, consulte http://developer.android.com/guide/topics/text/creating-input-method.html

Este IME puede tener una apariencia de teclado normal o contener sólo un botón de micrófono.

El usuario de su aplicación primero tendrá que hacer clic en un campo de texto para iniciar el IME. (Tenga en cuenta que puede haber varios IME instalados en el dispositivo y deben estar explícitamente habilitados en los ajustes.) Entonces el usuario tendrá que hacer clic en el botón del micrófono para activar el reconocimiento de voz.

El tutorial proporciona un tarro que le permite llamar directamente al reconocedor de Google. Sería mejor si en lugar de eso llamaste al reconocedor a través de la interfaz de SpeechRecognizer ( http://developer.android.com/reference/android/speech/SpeechRecognizer.html ), de esta manera el usuario puede decidir si usa Google o algo más .

SpeechRecognizer recibe un listener que soporta el método onPartialResults , que le permite monitorear las hipótesis de reconocimiento mientras el usuario está hablando. Depende de usted cómo se muestran. Tenga en cuenta, sin embargo, que la especificación de SpeechRecognizer no promete que este método se llama. Esto depende de la implementación del servicio de reconocimiento. Respecto a la implementación de Google: lo que admite cambia sin previo aviso, no tiene una API pública ni siquiera notas de lanzamiento.

Es posible que pueda volver a utilizar mi proyecto Kõnele ( http://kaljurand.github.io/K6nele/about/ ), que contiene dos implementaciones de SpeechRecognizer y un IME que las utiliza. Una de las implementaciones ofrece un reconocimiento continuo de la entrada de audio arbitrariamente larga, utilizando el servidor Kaldi GStreamer ( https://github.com/alumae/kaldi-gstreamer-server ). Debería configurar su propia instancia del servidor que lo lleve al idioma que desee reconocer (a menos que desee utilizar el servidor estonio que Kõnele utiliza de forma predeterminada).

Se encuentran muestras de reconocimiento de voz en las que tiene el SDK de Android.

ejemplo:

 $ find $SDK_ROOT/samples -name *recogni* ./android-19/legacy/VoiceRecognitionService/res/xml/recognizer.xml ./android-19/legacy/VoiceRecognitionService/src/com/example/android/voicerecognitionservice ./android-19/legacy/ApiDemos/res/layout/voice_recognition.xml ./android-18/legacy/VoiceRecognitionService/res/xml/recognizer.xml ./android-18/legacy/VoiceRecognitionService/src/com/example/android/voicerecognitionservice ./android-18/legacy/ApiDemos/res/layout/voice_recognition.xml ./android-21/legacy/VoiceRecognitionService/res/xml/recognizer.xml ./android-21/legacy/VoiceRecognitionService/src/com/example/android/voicerecognitionservice ./android-21/legacy/ApiDemos/res/layout/voice_recognition.xml 

Cualquiera de los servicios debe ayudar a mostrar cómo hacer un RecognizerIntent

El "APIDemo" parece incluir el uso de un RecognizerIntent. Comprobar la fuente para que uno. De lo contrario mirar en los servicios y tallarlos en una intención.

Tuve el mismo problema, pero después de mucho tiempo buscando dictado de voz continua en una actividad, he resuelto ese problema usando pocketsphinx .

No pude encontrar la forma de integrar Google Voice Typing en una actividad, solo en un método de entrada siguiendo ese tutorial . Si te confunde, simplemente descarga esta demo y modifica. ¡Buena suerte!

Puede activar una intención desde un oyente de botones

 Intent checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, MY_DATA_CHECK_CODE); 

Y el resultado puede obtenerse de

 private TextToSpeech mTts; protected void onActivityResult( int requestCode, int resultCode, Intent data) { if (requestCode == MY_DATA_CHECK_CODE) { if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) { // success, create the TTS instance mTts = new TextToSpeech(this, this); } else { // missing data, install it Intent installIntent = new Intent(); installIntent.setAction( TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); startActivity(installIntent); } } } 

Consulte este enlace para obtener más información.

  • Doble control deslizante android
  • Escritura de audio en el servidor a través de un socket TCP
  • No se puede crear una instancia del nombre de clase de tipo en cocos2d
  • Android: ¿Es posible dibujar una vista en la parte superior del mapa como una superposición
  • Prueba de Android fuera del espacio de almacenamiento
  • Experiencia con Vaadin touchkit
  • SimpleDateFormat devuelve la fecha de la cadena en diferentes idiomas
  • Error al ejecutar exec (). Comando: Directorio de trabajo: null Entorno: null - ¿cómo ejecutar un binario en Android correctamente en un dispositivo no arraigado?
  • Excepción de puntero nulo al llamar a la medida en el diseño inflado
  • Servicios de juegos de Google Play - Notificación personalizada / Bienvenido de nuevo
  • Android restlet añadir no estándar de encabezado param
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.