Peut-être que vous voulez utiliser l'espace de noms .net System.Speech au lieu de SAPI? Il y a un très bon article qui a été publié il y a quelques années au http://msdn.microsoft.com/en-us/magazine/cc163663.aspx. C'est probablement le meilleur article d'introduction que j'ai trouvé jusqu'ici. C'est un peu démodé, mais très helfpul. (La méthode AppendResultKeyValue a été supprimée après la version bêta.)
Essayez-vous d'utiliser un module de reconnaissance partagé? C'est peut-être pourquoi vous voyez des commandes. Avez-vous une tâche spécifique pour la reconnaissance? Dans ce cas, vous seriez mieux servi avec une grammaire spécifique à la tâche et un outil de reconnaissance inproc.
Si vous devez gérer des mots, utilisez le DictationGrammar fourni avec System.Speech. Voir http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx
Pour le plaisir, j'ai assemblé l'application .NET Windows Forms la plus simple pour utiliser une grammaire de dictée à laquelle je pouvais penser. J'ai créé un formulaire. Il a laissé tomber un bouton dessus et a fait le gros bouton. Ajout d'une référence à System.Speech et la ligne:
using System.Speech.Recognition;
Puis j'ajouté le gestionnaire d'événement suivant à button1:
private void button1_Click(object sender, EventArgs e)
{
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
Grammar dictationGrammar = new DictationGrammar();
recognizer.LoadGrammar(dictationGrammar);
try
{
button1.Text = "Speak Now";
recognizer.SetInputToDefaultAudioDevice();
RecognitionResult result = recognizer.Recognize();
button1.Text = result.Text;
}
catch (InvalidOperationException exception)
{
button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message);
}
finally
{
recognizer.UnloadAllGrammars();
}
}
Merci Michael. J'ai besoin de reconnaître chaque mot. Tous les exemples du lien que vous avez donné concernent la construction de commandes. Comment puis-je obtenir tout? – Kaan
Si vous utilisez le logiciel de reconnaissance de bureau (fourni avec Windows Vista et 7), il est livré avec une grammaire de dictée intégrée. Voir http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx –
J'ai mis à jour la réponse pour inclure un exemple d'utilisation de DictationGrammar. –