これは、Microsoft 音声 API 関連の質問です。
SpeechSynthesizer が SpeakStarted イベントをトリガーしたときに、このイベント内で SpeechSynthesizer が何を言おうとしているのかを知りたいという考えです。これで、音声と GUI 表示を同期させることができます。
コード:
SpeechSynthesizer _reader = new SpeechSynthesizer();
_reader.SpeakStarted += new EventHandler<SpeakStartedEventArgs>(_reader_SpeakStarted);
void _reader_SpeakStarted(object sender, SpeakStartedEventArgs e)
{
// now _speak started!
Console.WriteLine("_reader_SpeakStarted\t" + e.ToString());
// string textContent=????
// updateGUI(textContent);
}
_reader.SpeakAsync("Hello world A B C"); //asynchronize method!!!
_reader.SpeakAsync("Hello world B C D");
_reader.SpeakAsync("Hello world C D E");
問題:
SpeakStarted イベント内では、テキスト コンテンツを読み上げることができませんでした。
そこにブレークポイントを置いた場合、「Hello world xx x」が引数に表示されるのは奇妙ですが、それにアクセスする方法はありません。
誰かが親切に私を助けてくれたら、とても感謝しています。
.Net 4、Windows 7 64 ビット、VS2010