2013-02-09 86 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