如何停止语音合成器?

发布于 2025-01-06 17:34:25 字数 136 浏览 1 评论 0原文

如何停止 System.Speech.Synthesi.Syntheziser?有内置的暂停和恢复方法,但我不知道如何完全停止引擎。当我使用 SpeakAsyncCancel 方法时,状态属性指示合成器仍在说话。

我必须使用线程还是我不明白?

How do I STOP the System.Speech.Synthesi.Syntheziser? There are build in methods for pausing and resuming,but I don't see how to totally stop the engine. when I use the SpeakAsyncCancel method the state property indicated that the Synthesizer is still speaking.

Do I have to use threads or do I not understand?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

安人多梦 2025-01-13 17:34:25

我也遇到了同样的问题,经过一番研究后解决了。合成器是多线程的,因此它们只能是程序中的一个实例,因此使用静态构造函数在某处创建一个静态实例。

I had the same problem and figured it out after some goggling. The Synthesizer is multi-threaded, therefore they must only be ONE instance in the program, so make a static one somewhere with a static constructor.

踏月而来 2025-01-13 17:34:25

使用SpeakAsyncCancel需要传递一个提示参数,例如:

Synthesizer.SpeakAsyncCancel(new Prompt("cancelling now"));

也可以使用SpeakAsyncCancelAll(),最后dispose:

Synthesizer.SpeakAsyncCancelAll();
Synthesizer.Dispose();

Using SpeakAsyncCancel you need to pass a prompt parameter, for example:

Synthesizer.SpeakAsyncCancel(new Prompt("cancelling now"));

You can use SpeakAsyncCancelAll() as well, and finally dispose:

Synthesizer.SpeakAsyncCancelAll();
Synthesizer.Dispose();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文