2010-11-15 46 views
15

Je souhaite que le système de reconnaissance vocale Android analyse le fichier audio et non la voix entrante par défaut du microphone.Existe-t-il un moyen d'envoyer un fichier audio à la reconnaissance vocale?

Y a-t-il un moyen de le faire?

Merci.

+0

J'ai vu ce lien: http://www.androidjavadoc.com/1.0_r1_src/android/speech/recognition/MediaFileReader.html cela semble intéressant mais je ne sais pas comment je pourrais faire référence à cette classe ... – nonozor

+0

vous pouvez le faire en l'enregistrant d'abord à partir du microphone, puis en enregistrant le fichier sous forme de tableau d'octets à l'exécution, puis décoder ce fichier de tableau d'octets en fichier audio et l'entrer dans le système de reconnaissance vocale. –

Répondre

1

Je suppose que cela fonctionne d'une manière similaire à la api chrome - http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/

Comme il l'a mentionné, vous pouvez convertir le fichier de microphone dans un fichier flac et l'envoyer à l'api de la parole, et vous obtiendrez la même résultat. Vous pouvez donc utiliser SOX et le convertir vous-même.

Espérons que ça aide. Dias

+0

Ouais ça ne marche plus, ils ont sorti l'API –

1

cmusphinx.sourceforge.net/wiki/tutorialandroid Juste trouvé que le lien sonne comme quelqu'un a créé une version Android de Sphinx. En regardant l'API Android, cela ne semble pas être pris en charge. (http://developer.android.com/reference/android/speech/package-summary.html)

Vous pourriez être en mesure d'utiliser une autre API. Je sais que Microsoft C# API permet cela, mais pour que cela soit utile, vous devrez probablement installer un serveur avec un programme que vous avez écrit enregistrer le fichier son sur le téléphone, puis l'envoyer au serveur. CMusphinx (http://cmusphinx.sourceforge.net/wiki/) est écrit en Java, il est donc possible de le faire fonctionner sur un appareil Android. Sur cette API, vous créez un StreamSpeechReconizer.

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

J'ai trouvé ce https://gist.github.com/alotaiba/1730160 avec une recherche rapide sur Internet (google « api de reconnaissance vocale accepte fichier ») afin qu'il pourrait y avoir d'autres services disponibles sur le web qui accepterait un fichier à les envoyer.