2011-02-01 1 views
10

J'essaye de construire un logiciel qui interprète diverses commandes textuelles, toutes de manière personnalisée. J'utilise System.Speech.Recognition et cela fonctionne étonnamment bien, mais je n'arrive pas à comprendre comment contourner le fait que chaque fois que je dis "Supprimer", "Fermer", "Corriger", etc, je vais me retrouver avec la valeur par défaut Windows (7) implémentation. Est-il possible de contourner cela avec System.Speech.Recognition? Si non, quelle bibliothèque C# .NET recommanderiez-vous le plus?Désactiver les commandes de reconnaissance vocale intégrées?

Répondre

12

Utilisez SpeechRecognitionEngine au lieu de SpeechRecognizer.
Essayez ceci:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Speech.Recognition; 
namespace speech 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     SpeechRecognitionEngine mynizer = new SpeechRecognitionEngine(); 

     GrammarBuilder builder = new GrammarBuilder(); 
     builder.AppendDictation(); 
     Grammar mygram = new Grammar(builder); 
     mynizer.SetInputToDefaultAudioDevice(); 
     mynizer.LoadGrammar(mygram); 
     while (true) 
     { 
      Console.WriteLine(mynizer.Recognize().Text); 
     } 
    } 

} 
} 
+0

Parfait! Merci. – Lazlo