2010-06-30 9 views
16

Je cherche à faire la reconnaissance vocale dans Android. Le programme doit avoir une reconnaissance vocale continue. La bibliothèque n'a besoin que d'environ 10 mots. J'ai envisagé d'utiliser Google api, mais je ne pense pas que cela fonctionnera. (Je ne peux rien avoir sur l'écran). J'ai regardé d'autres manières mais rien ne semble fonctionner. Est-il possible d'utiliser la bibliothèque de reconnaissance vocale de java, ou y a-t-il un autre moyen d'y parvenir?Reconnaissance vocale continue Android

En résumé
1. Besoin d'entrée de la parole continue
2. 10 mots au maximum
3. peut entraîner si nécessaire
4. Aperçu du programme - écran d'affichage, attendez entrée vocale ou la saisie tactile, mise à jour répétition d'écran
5. ne peut pas couvrir ce qui est affiché à l'écran

Toute aide serait appréciée.
Merci d'avance

+0

4a. Que se passe-t-il lorsque la commande vocale n'est pas reconnue? –

+0

Si la commande n'est pas reconnue, le programme devrait continuer à attendre un discours compréhensible ou une entrée tactile – Joe

+3

Hey Joe, j'ai un besoin similaire. Avez-vous pu obtenir ce que vous voulez? – wullxz

Répondre

1

Voici l'explication d'Oracle de Java Speech API Frequently Asked Questions.

+0

Merci, j'ai regardé cela . Mon problème est peut-il être emballé pour Android? Je suppose que le meilleur moyen sera d'aller chercher le bonjour. – Joe

+6

Cela a fonctionné sur Android? – longhairedsi

+0

Le lien est rompu. – Zammbi

6

Je pense que vous devriez capturer l'audio directement depuis le microphone du téléphone et le diffuser vers votre propre service de reconnaissance. Les API de reconnaissance de Google sont conçues comme une intention qui lance leur propre boîte de dialogue de reconnaissance et vous renvoie les résultats. Si vous voulez une reconnaissance continue sans interface utilisateur, vous devrez créer cette fonctionnalité vous-même.

+4

Si vous souhaitez vous débarrasser de l'interface utilisateur de reconnaissance vocale par défaut, vous devez implémenter RecognitionListner, appelez le service SpeechRecognition directement. Vous pouvez trouver l'exemple ici 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 a récemment mis en place une écoute continue sur plateforme Android. Vous pouvez trouver la démo sur le wiki page

Vous pouvez configurer un ou plusieurs mots-clés à écouter, le mot-clé par défaut est "oh puissant ordinateur". Vous pouvez également configurer le seuil de détection. Les langues actuellement supportées sont l'anglais américain et quelques autres (français, espagnol, russe, etc.). Vous pouvez former votre propre modèle pour votre langue.

L'écoute est simple, vous créez un reconnaisseur et juste ajouter recherche spotting mot-clé:

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); 

et définir un écouteur:

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

Au lieu de phrase clé unique, vous pouvez spécifier un chemin de fichier commandes sur un système de fichiers:

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

Quels fichiers de commandes commands.lst contenant des commandes une par ligne:

oh might computer 
    ok google 
    hello dude 

Pour mettre ce fichier sur le système de fichiers, vous pouvez le mettre dans les actifs et exécuter syncAssets au démarrage de l'application.

+0

J'ai réussi à télécharger et exécuter la démo Android pour pocket sphinx, mais comment puis-je l'utiliser dans mon application existante? –

1

Utilisation CMUSphinx library:

  1. Il fonctionnera en mode déconnecté
  2. Vous pouvez le nommer jusqu'à
  3. Il commencera écoutes lorsque vous appelez son nom
0

J'ai eu les mêmes exigences il y a quelques mois et a décidé d'écrire mon propre library.

Je crois que cela devrait également correspondre à vos exigences;)