18

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

さらに、テキスト読み上げを実行できるAPIまたはライブラリが必要になります。

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

ありがとう。

4

6 に答える 6

15

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# 音声認識 - これはユーザーが言ったことですか?

于 2011-01-13T07:28:38.483 に答える
11

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

これらのクラスには多数のさまざまなオプションがあり、詳細に検討する価値があります。

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

于 2012-03-17T17:13:27.347 に答える
2

C++ を使用して Windows 音声認識を呼び出して使用するを参照してください。

それは言う:

Microsoft は、Windows のクライアント バージョンとサーバー バージョンの両方に音声認識エンジンを提供しています。どちらも C++ または .NET 言語でプログラミングできます。C++ でプログラミングするための従来の API は、SAPI として知られています。クライアントとサーバーの音声用の .NET Framework ネームスペースは、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 の問題を参照してください。

于 2011-01-14T21:39:01.707 に答える
-1

テキストを音声に変換するには、次の 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);
于 2012-02-06T09:23:12.347 に答える
-1

I'd like to use C# and .NET, but other languages will suffice.フェスティバルに参加する場合は、これをチェックしてくださいC++

于 2011-01-13T06:48:23.503 に答える
-1

すべての Windows OS には、Text2Speach 用のビルトイン DLL があります。対応する dll は c:\Programs\Shared Folders\Microsoft Shared\Speech\sapi.dll (sAPI - speach api) にあります。パスについてはよくわかりませんが、とにかく sapi.dll を検索することができます。

その後、次のコード スニペットを使用できます。

SpVoice oVoice = new SpVoice();
oVoice.Voice = oVoice.GetVoices("","").Item(0); // 0 indicating what kind of speaker you want
oVoice.Volume = 50;
oVoice.Speak("hello world", SpeechVoiceSpeakFlags.SVSFDefault);
oVoice = null;
于 2011-01-13T07:01:02.783 に答える