2011-04-28 58 views
0

我最近嘗試在Windows 7 Dell計算機上使用VS 2010中的C#(WinFormsApp)編寫基本語音識別。我能夠使用Microsoft的基本示例(http://msdn.microsoft.com/en-us/magazine/cc163663.aspx#S5)以及像這樣的論壇來工作。但是,我需要更換計算機,現在我試圖在具有相同規格的Lenovo計算機上進行復制。它不起作用,事實上,語音識別不斷干擾程序運行,當我更改爲SpeechRecognitionEngine時,它仍然無法運行。 我能夠編譯沒有錯誤,但我看不到結果,即顯示e.Result.Text的消息框。在c#VS 2010中使用Windows 7運行基本語音識別程序,它編譯但它不運行

我的代碼如下:

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.Threading; 

namespace SpeechRecogTest 
{ 
    public partial class Form1 : Form 
    { 
     SpeechRecognitionEngine sr = new SpeechRecognitionEngine(); 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      //Create grammar 
      Choices words = new Choices(); 
      words.Add("Hi"); 
      words.Add("No"); 
      words.Add("Yes"); 

      Grammar wordsList = new Grammar(new GrammarBuilder(words)); 

      wordsList.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(rec_SpeechRecognized); 
      sr.LoadGrammar(wordsList); 

     } 

     void rec_SpeechRecognized(object sender, RecognitionEventArgs e) 
     { 
      MessageBox.Show(e.Result.Text); 
     } 
    } 
} 

我會很感激你的一切幫助。我非常肯定我已經安裝了所有的SDK,包括SAPI 5.1,Windows SDK v7.0和v7.1,我還包括COM和NET的語音庫,並且我構建了一個可用的合成器。

回答

2

你加載了語法,但是你曾經調用過sr.RecognizeAsync(); ?

您必須致電Recognize()進行同步識別或RecognizeAsync()執行識別。你既沒有做過。

假設你從聲卡捕獲音頻,語法加載後,試試:

sr.SetInputToDefaultAudioDevice(); 
sr.RecognizeAsync(); 

要開始使用.NET的講話,有可能是在幾年前發表了一篇非常好的文章http://msdn.microsoft.com/en-us/magazine/cc163663.aspx。這可能是迄今爲止我發現的最好的介紹性文章。這是有點過時,但非常helfpul。 (AppendResultKeyValue方法在測試版後被刪除。)

+0

感謝您的回覆。我只是嘗試了我添加的兩條線,但它也沒有。我的電腦可以聽寫並驗證它聽到我的聲音,但我的程序無法在我的文本框中顯示此結果 – Ami 2011-04-29 22:57:31

+0

爲什麼不嘗試我發佈在http://的小示例程序stackoverflow.com/questions/4730318/what-is-the-best-option-for-transcribing-speech-to-text-in-a-asp-net-web-app/4737003#4737003並查看它是否有效。看看是否有效。 – 2011-04-30 21:34:45

+0

謝謝,我會的。我認爲這與我在這臺新電腦上做的安裝有些關係,因爲否則這個程序是逐字的。你認爲哪些組件對於安裝在x64 windows 7機器上很重要?我已經從註冊表中刪除了devenv.exe。 – Ami 2011-05-02 17:31:07

相關問題