2010-06-30 36 views
16

Estoy buscando hacer reconocimiento de voz en android. El programa necesita tener un reconocimiento de voz continuo. La biblioteca solo necesita tener unas 10 palabras. He considerado usar la API de Google, pero no creo que funcione. (No puedo tener nada cubriendo la pantalla). He estado investigando de otras maneras pero nada parece funcionar. ¿Es posible usar la biblioteca de reconocimiento de voz de Java, o hay alguna otra forma de hacerlo?Reconocimiento continuo de voz Android

En resumen
1. Necesidad de entrada de voz continua
2. 10 palabras en el máximo
3. puede entrenar si es necesario visión general
4. del programa - pantalla de visualización, esperar a que la entrada de voz o toque de entrada, actualización pantalla repetir
5. no se puede cubrir lo que se muestra en la pantalla

Cualquier ayuda sería apreciada.
Gracias de antemano

+0

4a. ¿Qué sucede cuando el comando de voz no es reconocido? –

+0

Si no se reconoce el comando, el programa debe continuar esperando una conversación comprensible o una entrada táctil – Joe

+3

Hola Joe, tengo una necesidad similar. ¿Pudiste conseguir lo que quieres? – wullxz

Respuesta

1

Aquí está la explicación de Oracle de Java Speech API Frequently Asked Questions.

+0

Gracias, he estado viendo eso . Mi problema es, ¿se puede empaquetar esto para Android? Supongo que la mejor manera será ir y tratar de implementar el discurso de saludo. – Joe

+6

¿Funcionó esto en Android? – longhairedsi

+0

El enlace está roto. – Zammbi

6

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 un Intento que inicia su propio diálogo de Reconocimiento y le brinda resultados de regreso. Si desea un reconocimiento continuo sin una IU, tendrá que crear esa funcionalidad usted mismo.

+4

Si desea deshacerse de la interfaz de usuario de reconocimiento de voz predeterminado, necesita implementar RecognitionListner, llame al servicio SpeechRecognition directamente. Puede encontrar la muestra aquí http://code.google.com/p/my-work-and-play-android/source/browse/trunk/android/speech/SpeechRecognizer/SpeechRecognizer/src/com/SpeechRecognizer/SpeechRecognizerActivity. java – JeeZ

5

CMUSphinx ha implementado recientemente la escucha continua en la plataforma Android. Puede encontrar la demostración en el wiki page

Puede configurar una o más palabras clave para escuchar, la palabra clave predeterminada es "oh poderosa computadora". También puede configurar el umbral de detección. Los idiomas admitidos actualmente son inglés de EE. UU. Y algunos otros (francés, español, ruso, etc.). Puede entrenar su propio modelo para su idioma.

escuchar es sencilla, se crea un reconocedor y acaba de añadir palabras clave de búsqueda manchado:

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 frase clave única puede especificar una ruta de archivo comandos en un sistema de archivos:

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

Qué comandos archivo commands.lst comandos que contienen uno por línea:

oh might computer 
    ok google 
    hello dude 

Para poner este archivo en el sistema de archivos se puede poner en activos y ejecutar syncAssets al iniciar la aplicación.

+0

He descargado y ejecutado con éxito la demostración de Android para Pocket Sphinx, pero ¿cómo puedo usarla en mi aplicación actual? –

1

Uso CMUSphinx library:

  1. que funcionará en el modo fuera de línea
  2. Se puede nombrar hasta
  3. Se iniciará escuchas cuando se llama su nombre
0

que tenía los mismos requisitos Hace un par de meses y decidió escribir mi propio library.

Creo que debería ajustarse a sus requisitos también;)

Cuestiones relacionadas