2011-01-18 6 views
3

私は音声メッセージを録音するためのWebアプリケーションを構築しており、音声メッセージをテキストに変換するための最適なオプションを探しています。誰も変換を行うために何を使うべきかについていくつか提案していますか? System.Speechは機能しますか?asp.net Webアプリケーションで音声からテキストへの転記に最適なオプションは何ですか?

+0

をチェックアウトhttp://discuss.joelonsoftware.com/default.asp?dotnet.12.684701.3 – Prescott

答えて

6

System.Speechはクライアント指向のAPIです。 VistaとWindows 7には、System.Speech用の音声エンジンが含まれています。マイクロソフトが提供するクライアント音声エンジンには口述文法が含まれているため、これを使用して転記することができます。

マイクロソフトが提供するサーバースピーチエンジンには、口述の文法が含まれていないため、転記に使用するのが難しくなります。サーバー認識用の.NET名前空間はMicrosoft.Speechであり、10.2バージョンの完全なSDKはhttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4にあります。スピーチエンジンは無料でダウンロードできます。

.NETスピーチを開始するには、数年前にhttp://msdn.microsoft.com/en-us/magazine/cc163663.aspxで公開された非常に良い記事があります。おそらくこれまで私が見つけた最高の入門記事です。それは少し時代遅れですが、非常にヘルフルです。 (AppendResultKeyValueメソッドはベータ版の後に削除されました)

ここで私が考えることができるディクテーションの文法を使用する最も簡単な.NETウィンドウフォームアプリケーションの1つを示す簡単なサンプルです。これはWindows VistaまたはWindows 7で動作するはずです。フォームを作成しました。ボタンをドロップしてボタンを大きくしました。 System.Speechへの参照と行を追加しました:

using System.Speech.Recognition; 

それから私は、ボタン1に次のイベントハンドラを追加:によって出荷スピーチエンジンとAPIのさまざまな味を比較

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

少しより多くの情報をマイクロソフトはWhat is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?で見つけることができます

関連する問題