2009-02-25 12 views
6

Jest tu post o tym ... ale to nie działa dla mnie. Dodałem system.speech.dll, który znalazłem w Internecie, ale nie mogę użyć System.speech, ponieważ nie pojawia się.C# Rozpoznawanie mowy

Błąd 1 typu lub obszaru nazwa „SpeechRecognizer” nie można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

Błąd 2 Typ lub obszaru nazw „SpeechRecognizedEventArgs” nie można znaleźć (brakuje Ci dyrektywy użycia lub odniesienia do zespołu?)

Użyłem tego kodu. Używam systemu Windows Vista 64

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 SpeechLib; 
using System.Threading; 


namespace WindowsFormsApplication13 
{ 
    public partial class Form1 : Form 
    { 

     SpeechRecognizer rec = new SpeechRecognizer(); 

     public Form1() 
     { 
      InitializeComponent(); 
      rec.SpeechRecognized += rec_SpeechRecognized; 
     } 

     void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
     { 
      lblLetter.Text = e.Result.Text; 
     } 


     private void Form1_Load(object sender, EventArgs e) 
     { 
      var c = new Choices(); 

      // Doens't work must use English words to add to Choices and 
      // populate grammar. 
      // 
      //for (var i = 0; i <= 100; i++) 
      // c.Add(i.ToString()); 

      c.Add("one"); 
      c.Add("two"); 
      c.Add("three"); 
      c.Add("four"); 
      c.Add("Five"); 
      c.Add("six"); 
      c.Add("seven"); 
      c.Add("eight"); 
      c.Add("nine"); 
      c.Add("ten"); 

      // etc... 

      var gb = new GrammarBuilder(c); 
      var g = new Grammar(gb); 
      rec.LoadGrammar(g); 
      rec.Enabled = true; 
     } 
    } 
} 

Odpowiedz

4

1) Trzeba dodać odwołanie do System.Speech w projekcie

2) nie powinien był się znaleźć „System.Speech.dll” na Internet, powinien on być w .NET 3 (lub 3,5, ale i tak chyba dostać 3,5 masz powód, aby nie)

Edit:

Czasami warto zajrzeć tutaj:

http://dotnet.org.za/beta/archive/2008/01/06/system-speech-recognition.aspx

+0

Dzięki, ale teraz mam inny problem, gdy I debugowania w formie załadować programy nic nie robi w ogóle . i jeśli wstawię drugi kod w przycisku, program mówi, że nie mam zainstalowanego czytnika. Czy możesz mi pomóc w tym? –

4

Zgadzam się z Jamesem Ogdenem. Powinieneś dodać instrukcję "używając":

using System.Speech.Recognition 

Lub, w pełni zakwalifikować swoje nazwy klas.

0

Chociaż nie dotyczy to bezpośrednio powyższego pytania - warto zauważyć, że zestaw SDK Speech nie będzie dostępny na każdym komputerze klienta. Podczas gdy Vista zawiera system rozpoznawania mowy, XP tego nie robi. Możliwym sposobem na poprawienie tego jest skłonienie użytkowników XP do zainstalowania Speech SDK, który zawiera jeden. Drugim jest dodanie pakietu Office 2003 (nie 2007) jako zależności.

0

Mam problem z klasą SpeechRecognizer w systemie Windows XP. czasami działa, ale czasami nie działa i wymaga ponownego uruchomienia komputera. na Windows 7 działa dobrze. Myślę, że jest to pewien problem w samym silniku mowy, ponieważ gdy uruchamiam aplikację kilka razy, przestaje działać.

Im przy użyciu tego kodu:

using System; przy użyciu System.Collections.Generic; przy użyciu System.ComponentModel; using System.Data; using System.Drawing; przy użyciu System.Linq; using System.Text; przy użyciu System.Windows.Forms; przy użyciu SpeechLib; przy użyciu systemu.Gwintowanie;

nazw WindowsFormsApplication13 { public partial class Form1: Form {

SpeechRecognizer rec = new SpeechRecognizer(); 

    public Form1() 
    { 
     InitializeComponent(); 
     rec.SpeechRecognized += rec_SpeechRecognized; 
    } 

    void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     lblLetter.Text = e.Result.Text; 
    } 


    private void Form1_Load(object sender, EventArgs e) 
    { 
     var c = new Choices(); 


     c.Add("one"); 
     c.Add("two"); 
     c.Add("three"); 
     c.Add("four"); 
     c.Add("Five"); 
     c.Add("six"); 
     c.Add("seven"); 
     c.Add("eight"); 
     c.Add("nine"); 
     c.Add("ten"); 

     // etc... 

     var gb = new GrammarBuilder(c); 
     var g = new Grammar(gb); 
     rec.LoadGrammar(g); 
     rec.Enabled = true; 
    } 
} 

}

Powiązane problemy