2010-11-18 13 views
2

私はWindows 7で音声を認識しようとしていますが、音声は常にコマンドとして認識されるか、「それはなんですか?」と表示されます。SAPIとWindows 7の問題

どのようにすべてのスピーチを取得できますか?

CODE:

SpeechRecognizer _speechRecognizer; 

    public Window1() 
    { 
     InitializeComponent(); 

     // set up the recognizer 
     _speechRecognizer = new SpeechRecognizer(); 
     _speechRecognizer.Enabled = false; 
     _speechRecognizer.SpeechRecognized += 
     new EventHandler<SpeechRecognizedEventArgs>(_speechRecognizer_SpeechRecognized); } 

答えて

5

おそらく、あなたの代わりにSAPIの.NETのSystem.Speech名前空間を使用したいですか?数年前にhttp://msdn.microsoft.com/en-us/magazine/cc163663.aspxに掲載された非常に良い記事があります。おそらくこれまで私が見つけた最高の入門記事です。それは少し時代遅れですが、非常にヘルフルです。 (AppendResultKeyValueメソッドはベータ後に削除されました)

共有認識装置を使用しようとしていますか?それはあなたがコマンドを見ている理由かもしれません。あなたは認識のための特定のタスクを持っていますか?その場合は、タスク固有の文法とインプロセス認識ツールを使用する方がよいでしょう。

任意の単語を処理する必要がある場合は、System.Speechに付属のDictationGrammarを使用してください。 http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx

私が考えることができるディクテーションの文法を使うために、最も簡単な.NET Windowsフォームアプリケーションをまとめました。私はフォームを作成しました。ボタンをドロップしてボタンを大きくしました。 System.Speechへの参照と行を追加しました:

using System.Speech.Recognition; 

それから私は、ボタン1に次のイベントハンドラを追加しました:

private void button1_Click(object sender, EventArgs e) 
{   
    SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); 
    Grammar dictationGrammar = new DictationGrammar(); 
    recognizer.LoadGrammar(dictationGrammar); 
    try 
    { 
     button1.Text = "Speak Now"; 
     recognizer.SetInputToDefaultAudioDevice(); 
     RecognitionResult result = recognizer.Recognize(); 
     button1.Text = result.Text; 
    } 
    catch (InvalidOperationException exception) 
    { 
     button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message); 
    } 
    finally 
    { 
     recognizer.UnloadAllGrammars(); 
    }       
} 
+0

おかげでマイケル。私はすべての言葉を認識する必要があります。あなたが与えたリンクのすべての例は、実際にコマンドを作成することに関するものです。どのように私はすべてを得ることができますか? – Kaan

+0

デスクトップ認識ツール(Windows Vistaおよび7に同梱されています)を使用する場合は、内蔵のディクテーション・グラマーが付属しています。 http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar%28VS.85%29.aspx –

+0

DictationGrammarの使用例を含めるように答えを更新しました。 –

関連する問題