web-dev-qa-db-ja.com

テキストへの音声/スピーチ

マイクを介して音声/音声をテキスト(文字列)に変換するAPIまたはライブラリ(できれば無料)が必要です。

さらに、音声合成を実行できるAPIまたはライブラリが必要です。

C#と.NETを使用したいのですが、他の言語で十分です。

ありがとう。

18
charles_har

CMU Sphinxはかなりオープンでスケーラブルなソリューションであり、クライアント側とサーバー側の両方で使用できると思います。

http://cmusphinx.sourceforge.net/

Microsoftデスクトップソリューションを探している場合は、SAPIを使用できます。

http://msdn.Microsoft.com/en-us/magazine/cc163663.aspx

サーバー側では、Microsoft Unified Communicationを使用できますが、ライセンスも考慮する必要があります。

http://www.Microsoft.com/uc/en/gb/default.aspx

更新:

このスレッドにもいくつかの良い参照があります:

C#音声認識-これはユーザーが言ったことですか?

15
ShahidAzim

これは、C#とSystem.Speechを使用して音声からテキストに変換する完全な例です。

コードは2つの主要な部分に分けることができます:

speechRecognitionおよびSpeechHypothesizedイベントを処理するSpeechRecognitionEngineオブジェクト(およびその必須要素)の構成。

ステップ1:SpeechRecognitionEngineの構成

_speechRecognitionEngine = new SpeechRecognitionEngine();
_speechRecognitionEngine.SetInputToDefaultAudioDevice();
_dictationGrammar = new DictationGrammar();
_speechRecognitionEngine.LoadGrammar(_dictationGrammar);
_speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple);

この時点で、オブジェクトはマイクからの音声の文字変換を開始する準備ができています。ただし、実際に結果にアクセスするには、いくつかのイベントを処理する必要があります。

ステップ2:SpeechRecognitionEngineイベントの処理

_speechRecognitionEngine.SpeechRecognized-= new EventHandler(SpeechRecognized); _speechRecognitionEngine.SpeechHypothesized-= new EventHandler(SpeechHypothesizing);

_speechRecognitionEngine.SpeechRecognized + = new EventHandler(SpeechRecognized); _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();

これらのクラスにはさまざまなオプションがたくさんあり、それらをさらに詳しく調べる価値があります。

http://ellismis.com/2012/03/17/converting-or-transcribing-audio-to-text-using-c-and-net-system-speech/

11
bulltorious

c ++を使用したWindows音声認識の呼び出しと使用を参照してください

それは言う:

Microsoftは、Windowsのクライアントバージョンとサーバーバージョンの両方に音声認識エンジンを提供しています。どちらもC++または.NET言語でプログラムできます。 C++でプログラミングするための従来のAPIは、SAPIとして知られています。クライアントとサーバーのスピーチの.NETフレームワークの名前空間は、System.SpeechとMicrosoft.Speechです。

SAPIドキュメント- http://msdn.Microsoft.com/en-us/library/ms723627(VS.85).aspx

クライアント認識の.NET名前空間はSystem.Speech- http://msdn.Microsoft.com/en-us/library/system.speech.recognition.aspx 。 Windows Vistaおよび7には、音声認識エンジンが含まれています。

サーバー認識用の.NET名前空間はMicrosoft.Speechであり、10.2バージョンの完全なSDKは http://www.Microsoft.com/downloads/en/details.aspx?FamilyIDで入手できます。 = 1b1604d3-4f66-4241-9a21-90a294a5c9a4 。音声エンジンは無料でダウンロードできます。

以前の質問の多くはこれに対処しています。 音声認識に基づくプロトタイプを参照して、音声認識と音声合成を始めましょう 、および SAPIおよびWindows 7の問題 の例。

2
Michael Levy

テキストを音声に変換するには、次の3つの手順を実行する必要があります。

1. System.Speech参照を追加します。

2.ヘッダーを追加:

system.Speechを使用します。

system.Speech.Synthesisを使用します。

3. textBox1がテキストボックスのデフォルト名である次のコードを追加します。

            SpeechSynthesizer speaker = new SpeechSynthesizer();
            speaker.Rate = 1;
            speaker.Volume = 100;
            speaker.Speak(textBox1.Text);
0
Rishi Jagati