2009-02-25 11 views
6

C'è un post qui a riguardo ... ma non funziona per me. Ho aggiunto un system.speech.dll che ho trovato in internet ma non riesco a utilizzare System.speech, perché non viene visualizzato.C# Riconoscimento vocale

di errore 1 Il tipo o dello spazio dei nomi il nome 'SpeechRecognizer' non è stato trovato (che le manca un un riferimento all'assembly direttiva using o?)

errore 2 Il tipo o dello spazio dei nomi il nome 'SpeechRecognizedEventArgs' non è stato trovato (ti manca una direttiva using o un riferimento assembly?)

Ho usato questo codice. Sto usando 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; 
     } 
    } 
} 

risposta

4

1) È necessario aggiungere un riferimento a System.Speech nel progetto

2) Non avresti dovuto trovare 'System.Speech.dll' su Internet, che dovrebbe essere in .Net 3 (o 3.5, ma ottenere 3,5 in ogni caso a meno che non hai un motivo valido per non)

Edit:

si potrebbe desiderare di guardare qui:

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

+0

Grazie, ma ora ho un altro problema quando il debug in forma caricare i programmi non fare nulla . e se inserisco un secondo codice in un pulsante, il programma dice che non ho installato un riconoscimento. Puoi aiutarmi in questo? –

4

Sono d'accordo con James Ogden. Inoltre, dovresti aggiungere un'istruzione "using":

using System.Speech.Recognition 

Oppure, qualificare completamente i nomi delle classi.

0

Anche se non direttamente applicabile alla domanda precedente, vale la pena notare che l'SDK vocale non sarà necessariamente disponibile su tutte le macchine client. Mentre Vista include un riconoscimento vocale, XP no. Un modo possibile per correggere ciò è ottenere che gli utenti di XP installino l'SDK vocale, che ne include uno. L'altro è aggiungere Office 2003 (non 2007) come dipendenza.

0

Ho problemi con la classe SpeechRecognizer su Windows XP. a volte funziona, ma a volte non funziona e ha bisogno di riavviare il pc. su Windows 7 funziona bene. Penso che abbia qualche problema nello speech engine stesso, perché quando eseguo la mia applicazione più volte smette di funzionare.

Sto usando questo codice:

utilizzando Sistema; utilizzando System.Collections.Generic; utilizzando System.ComponentModel; usando System.Data; utilizzando System.Drawing; utilizzando System.Linq; usando System.Text; usando System.Windows.Forms; utilizzando SpeechLib; utilizzando il sistema.threading;

namespace WindowsFormsApplication13 { public partial class Form1: Modulo {

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; 
    } 
} 

}

Problemi correlati