Pat*_*ick 6 c# com text-to-speech
我正在使用 Microsoft 的语音平台运行时,我正在使用该SpVoice界面使运行时说出我想要的句子。
为了停止演讲中间的句子,我创建了这样的函数
public void StopSpeak()
{
try
{
Speaker.Speak("", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
}
catch (COMException ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在语音平台说话时运行它时,我收到了这个 com 错误:
Exception from HRESULT: 0x80045006
Run Code Online (Sandbox Code Playgroud)
我查了微软,这意味着波形设备正忙,我现在意识到每次语音平台忙说一句话时我都会收到这个错误。
是否有其他方法可以使用 SpVoice 或 Speech Platform Runtime 附带的任何其他界面或类来停止语音中间句子?
谢谢。
要停止 Speech 而不必处理异常,请使用Skipon 方法SpVoice。文档在这里。
这应该有效,因为它会跳过int.MaxValue句子:
public void StopSpeak()
{
Speaker.Skip("Sentence", int.MaxValue);
}
Run Code Online (Sandbox Code Playgroud)