2011-02-01 17 views
10

Estoy tratando de crear un software que interprete varios comandos textuales, todo de manera personalizada. Uso System.Speech.Recognition y funciona sorprendentemente bien, pero no sé cómo evitar el hecho de que cada vez que digo "Eliminar", "Cerrar", "Correcto", etc., terminaré con el valor predeterminado. Implementación de Windows (7). ¿Hay alguna forma de evitar eso con System.Speech.Recognition? Si no, ¿qué biblioteca de C# .NET recomendaría más?¿Deshabilita los comandos integrados de reconocimiento de voz?

Respuesta

12

Utilice SpeechRecognitionEngine en lugar de SpeechRecognizer.
Prueba esto:

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

perfecto! Gracias. – Lazlo

Cuestiones relacionadas