2015-04-29 3 views
1

Я пытаюсь разработать демонстрационное приложение SpeechRecognition на C#. В настоящее время мой кодРаспознавание речи без предопределенного выбора в C#

это-
public partial class Form1 : Form 
{ 
    SpeechSynthesizer ss = new SpeechSynthesizer(); 
    PromptBuilder pb = new PromptBuilder(); 
    SpeechRecognitionEngine sre = new SpeechRecognitionEngine(); 
    Choices choices; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void btnStart_Click(object sender, EventArgs e) 
    { 
     choices = new Choices(); 
     choices.Add(new string[]{"hello","how are you","thank you"}); 
     Grammar gr = new Grammar(new GrammarBuilder(choices)); 
     try 
     { 
      sre.RequestRecognizerUpdate(); 
      sre.LoadGrammar(gr); 
      sre.SpeechRecognized += sre_SpeechRecognized; 
      sre.SetInputToDefaultAudioDevice(); 
      sre.RecognizeAsync(RecognizeMode.Multiple); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message,"Error"); 
     } 
    } 

    void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     switch (e.Result.Text.ToString()) 
     { 
      case "hello": 
       ss.SpeakAsync("hello"); 
       break; 
      case "how are you": 
       ss.SpeakAsync("how are you"); 
       break; 
      case "thank you": 
       ss.SpeakAsync("thank you"); 
       break; 
      default: 
       break; 
     } 

     txtVoiceToText.Text += e.Result.Text.ToString() + Environment.NewLine; 
    } 
} 

Если я не хочу использовать предопределенную Choices, есть ли выход?

ответ

1

Try SpeechRecognition in DictationMode. Вы можете увидеть пример here

Смежные вопросы