2013-02-09 12 views
-2

Пробовал делать простую форму распознавания голоса на C#, но сталкиваюсь с проблемами. Совершенно новый для этого, пожалуйста, помогите!Распознавание голоса в C#

Облицовка 2 ошибки: первая ошибка: «[ожидается» Вторая ошибка: Недопустимый токен ';' в классе, структуре или декларации элемента интерфейса

Ниже мой код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Speech.Recognition; 
using System.Text.RegularExpressions; 
using System.Diagnostics; 

namespace Speech 
{ 
    public class Grammar; 
    public partial class Form1 : Form 

    { 
     private SpeechRecognitionEngine recognitionEngine; 

     public Form1() 
     { 
      InitializeComponent(); 
      recognitionEngine = new SpeechRecognitionEngine(); 
      recognitionEngine.SetInputToDefaultAudioDevice(); 
      recognitionEngine.SpeechRecognized += (s, args) => 
       { 
        string line = ""; 
        foreach (RecognizedWordUnit word in args.Result.Words) 
        { 
         if (word.Confidence > 0.8f) 
          line += word.Text + " "; 
        } 

        string command = Regex.Replace(line, "Start", "").Trim(); 

        switch (command) 
        { 
         case "Notepad": 
          Process.Start("notepad.exe"); 
          break; 
         case "Calculator": 
          Process.Start("calc.exe"); 
          break; 
         case "Paint": 
          Process.Start("mspaint.exe"); 
          break; 
        } 

        txtOutput.Text += line; 
        txtOutput.Text += Environment.NewLine; 
       }; 
      recognitionEngine.LoadGrammar(CreateGrammarObject()); 
     } 

     private void button_start_Click(object sender, EventArgs e) 
     { 
      recognitionEngine.RecognizeAsync(RecognizeMode.Multiple); 
     } 

     private void button_stop_Click(object sender, EventArgs e) 
     { 
      recognitionEngine.RecognizeAsyncStop(); 
     } 

     } 

     private Grammar CreateGrammarObject() 
     { 
      Choices commandChoices = new Choices("Calculator", "Notepad", "Internet Explorer", "Paint"); 
      GrammarBuilder grammarBuilder = new GrammarBuilder("Start"); 
      grammarBuilder.Append(commandChoices); 
      Grammar g = new Grammar(grammarBuilder); 
      return g; 
     } 


    } 
} 
+0

ах игнорировать выбор INTERNET EXPLORER внутри() –

+0

Пожалуйста, предоставьте полную информацию об ошибках, например, номера строк. – Gigi

+0

см. Http://stackoverflow.com/questions/12764727/speech-to-text-c-sharp-train-for-better-translation?rq=1 –

ответ

2

Что это ?:

public class Grammar; 
public partial class Form1 : Form 

Из структуры класса, это выглядит, как вы здание Form. Так откуда взялись Grammar? Удаление, что первый класс декларация полностью должна зафиксировать, по крайней мере, что ошибка синтаксиса:

public partial class Form1 : Form 
+0

Я думаю, что он пытается сделать декларацию. –

+0

@LewsTherin: Интересно. Это было длительное время с тех пор, как я использовал C++, и я думаю, что это даже не произошло со мной. – David