2013-02-09 84 views
-2

一直试图在C#中做一个简单的语音识别表单,但我面临着问题。 相当新的这个,所以请帮助!c中的语音识别#

面对2个错误:第一个错误是:“[expected” 第二个错误是:无效标记';'在类,结构或接口成员声明

下面是我的代码:

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里面选择的() – 2013-02-09 13:20:13

+0

请提供有关这些错误的全部细节,例如行号。 – Gigi 2013-02-09 13:20:26

+0

请参阅http://stackoverflow.com/questions/12764727/speech-to-text-c-sharp-train-for-better-translation?rq=1 – 2013-02-09 13:21:21

回答

2

这是什么?:

public class Grammar; 
public partial class Form1 : Form 

从类的结构,它看起来像你建立一个Form。那么Grammar从哪里来?除去第一类声明完全应该可以解决至少是语法错误:

public partial class Form1 : Form 
+0

我认为他正在尝试做前瞻性声明。 – 2013-02-09 13:21:20

+0

@LewsTherin:有趣。自从我使用C++以来,这已经过去了很长时间,而且我猜它甚至都没有出现。 – David 2013-02-09 13:23:16