Reconocimiento de voz continua Android

Estoy buscando hacer reconocimiento de voz en android. El programa necesita tener reconocimiento de voz continua. La biblioteca sólo tiene que ser de unas 10 palabras. He considerado el uso de Googles api, pero no creo que funcione. (No puedo tener nada cubriendo la pantalla). He estado buscando en otras formas, pero nada parece que va a funcionar. ¿Es posible utilizar la biblioteca de reconocimiento de voz de java, o hay alguna otra manera de hacer esto?

En resumen
1. Necesidad de entrada de voz continua
2. 10 palabras al máximo
3. puede entrenar si es necesario
4. vista general del programa – pantalla de visualización, espera para la entrada de voz o toque, repita la pantalla de actualización
5. No se puede cubrir lo que se muestra en la pantalla

Cualquier ayuda sería apreciada.
Gracias por adelantado

Aquí está la explicación de Oracle de Java Speech API Preguntas frecuentes .

Creo que tendrías que capturar audio directamente desde el micrófono del teléfono y transmitirlo a tu propio servicio de reconocimiento. Las API de reconocimiento de Google se crean como una Intención que inicia su propio diálogo de reconocimiento y le proporciona resultados posteriores. Si desea un reconocimiento continuo sin una interfaz de usuario, tendrá que crear esa funcionalidad usted mismo.

CMUSphinx ha implementado recientemente la escucha continua en la plataforma Android. Puedes encontrar la demo en la página wiki

Puede configurar una o varias palabras clave para escuchar, la palabra clave predeterminada es "oh poderoso equipo". También puede configurar el umbral de detección. Los idiomas actualmente soportados son inglés de los EEUU y pocos otros (francés, español, ruso, etc). Usted puede entrenar su propio modelo para su lengua.

Escuchando es simple, usted crea un reconocedor y apenas agrega la búsqueda de la palabra clave que localiza:

recognizer = defaultSetup() .setAcousticModel(new File(modelsDir, "hmm/en-us-semi")) .setDictionary(new File(modelsDir, "lm/cmu07a.dic")) .setKeywordThreshold(1e-5f) .getRecognizer(); recognizer.addListener(this); recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE); switchSearch(KWS_SEARCH_NAME); 

Y definir un oyente:

 @Override public void onPartialResult(Hypothesis hypothesis) { String text = hypothesis.getHypstr(); if (text.equals(KEYPHRASE)) // do something } 

En lugar de una sola frase clave puede especificar una ruta de archivo de comandos en un sistema de archivos:

  recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "commands.lst").toString()); 

Que comandos file commands.lst contienen comandos uno por línea:

  oh might computer ok google hello dude 

Para poner este archivo en el sistema de archivos puede ponerlo en los activos y ejecutar syncAssets en el inicio de la aplicación.

Aquí está otra manera (si usted está planeando utilizar Phonegap / Cordova).

https://stackoverflow.com/a/39695412/3603128

1) Escucha continuamente.

2) No muestra (ocupa) en la pantalla.

  • Entrada directa de voz / voz en el navegador móvil
  • Descarga automática de idioma de reconocimiento de voz fuera de línea en Android
  • Uso de Android RecognizerIntent con un auricular bluetooth
  • Cómo abrir el teclado de Android en modo de voz de forma programática?
  • Android El reconocimiento de voz continuo devuelve ERROR_NO_MATCH demasiado rápido
  • ¿Está ocupado el servicio de reconocimiento de voz de Android?
  • Cómo implementar un reconocedor de voz en android- "Reconocimiento no presente"?
  • ¿Cómo crear una acción de voz personalizada para mi aplicación?
  • Cualquier forma de "inicio caliente" Android reconocimiento de voz?
  • ¿Por qué RecognitionListener dejó de trabajar en JellyBean?
  • ¿Cómo implementar el botón en ViewPager?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.