这是一个微软语音 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