public static void Speak(PromptBuilder p) { var synthesizer = CreateSynthesizerOutputToAudio(); Prompt spokenPrompt = synthesizer.SpeakAsync(p); SynthesisState state = new SynthesisState(synthesizer, spokenPrompt); ShowSpeechCancelDialog(state); }
private static void ShowSpeechCancelDialog(SynthesisState state) { SpeechSynthesizer synthesizer = state.Synthesizer; Prompt spokenPrompt = state.PromptBeingSynthesized; SpeechPlayingDialogBox speechPlayingDialog = new SpeechPlayingDialogBox(state); speechPlayingDialog.Closed += (sender, e) => SpeechPlayingDialog_Closed(synthesizer, spokenPrompt); speechPlayingDialog.ShowDialog(); }
private static void ShowSpeechCancelDialog(SynthesisState state) { SpeechSynthesizer synthesizer = state.Synthesizer; Prompt spokenPrompt = state.PromptBeingSynthesized; SpeechPlayingForm progress = new SpeechPlayingForm(state); DialogResult result = progress.ShowDialog(); if (result == DialogResult.Cancel) { try { synthesizer.SpeakAsyncCancel(spokenPrompt); } catch (ObjectDisposedException) { // Synthesizer has already finished, so we don't need to do anything. } } }
public SpeechPlayingForm(SynthesisState state) { InitializeComponent(); state.Synthesizer.SpeakCompleted += SynthesizerOnSpeakCompleted; }