C# 言語を使用してテキスト エディターを設計し、通常のファイル機能の音声認識を実装しようとしていますが、これを実装することは可能ですか。前回の質問と重複してしまい大変申し訳ありません。C# を使用して音声をテキストに変換する方法があるかどうかを知りたいだけです。あなたの助けは本当に貴重です。応答を待っています。前もって感謝します。
5 に答える
C# と System.Speech を使用して音声からテキストに変換する完全な例を次に示します。
コードは 2 つの主要部分に分けることができます。
SpeechRecognitionEngine オブジェクト (およびその必須要素) を構成して、SpeechRecogniized および SpeechHypothesized イベントを処理します。
ステップ 1: SpeechRecognitionEngine の構成
_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
この時点で、オブジェクトはマイクから音声の書き起こしを開始する準備ができています。ただし、実際に結果にアクセスするには、いくつかのイベントを処理する必要があります。
ステップ 2: SpeechRecognitionEngine イベントの処理
_speechRecognitionEngine.SpeechRecognized -= 新しい EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized -= new EventHandler(SpeechHypothesizing);
_speechRecognitionEngine.SpeechRecognized += 新しい EventHandler(SpeechRecognited); _speechRecognitionEngine.SpeechHypothesized += new EventHandler(SpeechHypothesizing);
private void SpeechHypothesizing(object sender, SpeechHypothesizedEventArgs e) { ///エンジン文字列からのリアルタイムの結果 realTimeResults = e.Result.Text; }
private void SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { ///エンジンからの最終回答文字列 finalAnswer = e.Result.Text; }
それでおしまい。マイクの代わりに録音済みの .wav ファイルを使用する場合は、
_speechRecognitionEngine.SetInputToWaveFile(pathToTargetWavFile);
それ以外の
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
これらのクラスには多数のさまざまなオプションがあり、詳細に検討する価値があります。
Sphinx-4 の SharpSphinx AC# バージョンを試すことができます http://sourceforge.net/p/cmusphinx/discussion/sphinx4-sightings/thread/5953c635/?limit=50
私の記憶が正しければ、Microsoft Speech SDKは音声からテキストへの変換をサポートしています。
次に、LumenVox Speech Engineがあります。
Web サービスとして音声認識に使用できるiSpeech APIもあります。