2010-11-15 18 views
15

Quiero que el sistema de reconocimiento de voz de Android analice el archivo de audio y no la voz entrante predeterminada del micrófono.¿Hay alguna manera de enviar archivos de audio al reconocimiento de voz a texto?

¿Hay alguna manera de hacerlo?

Gracias.

+0

Vi este enlace: http://www.androidjavadoc.com/1.0_r1_src/android/speech/recognition/MediaFileReader.html que parece interesante, pero ahora no sé cómo podría hacer referencia a esta clase ... – nonozor

+0

puede hacerlo primero grabándolo desde el micrófono y luego guardando el archivo como una matriz de bytes en el tiempo de ejecución, luego decodifique este archivo desde la matriz de bytes al archivo de formato de audio y añádalo al sistema de reconocimiento de voz. –

Respuesta

1

supongo que funciona de una manera similar a la API de cromo - http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/

Como se ha mencionado se puede convertir el archivo micrófono en un archivo .flac y enviarlo a la API de voz, y obtendrá la mismo resultado. Entonces puede usar SOX y convertirlo usted mismo.

Espero que ayude. Dias

+0

Sí, eso ya no funciona, sacaron la API –

1

cmusphinx.sourceforge.net/wiki/tutorialandroid Acaba de encontrar que el enlace suena como si alguien hubiera creado una versión de Android de Sphinx.

Mirando la aplicación Android que hace esto no parece ser compatible. (http://developer.android.com/reference/android/speech/package-summary.html)

Es posible que pueda usar otra API.

Sé que la aplicación C# api de Microsoft permite esto, pero para que sea útil probablemente necesite configurar un servidor con un programa que haya escrito, grabe el archivo de sonido en el teléfono y luego envíelo al servidor.

CMUSphinx está escrito en Java, por lo que es posible ejecutarlo en un dispositivo Android. En esa API creas un StreamSpeechReconizer.

StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration); 
recognizer.startRecognition(new File("speech.wav").toURI().toURL()); 
SpeechResult result = recognizer.getResult(); 
recognizer.stopRecognition(); 

yo encontramos este https://gist.github.com/alotaiba/1730160 con una búsqueda rápida en la web (google "API de reconocimiento de voz acepta archivo") por lo que podría haber otros servicios disponibles en la web que acepte un archivo para ser enviado a ellos.

Cuestiones relacionadas