【问题标题】:How to change speech synthesizer voice or speed during speech in C#如何在 C# 中更改语音合成器的语音或速度
【发布时间】:2020-01-13 11:18:14
【问题描述】:

我有一个滑块和一个可用语音列表,我希望允许用户在使用 SpeechSynthesizer 类的语音合成过程中即时更改它们。我可以在演讲开始之前使用SpeechSynthesizer.Options.SpeakingRateSpeechSynthesizer.Voice 完成所有这些工作。但是,我希望用户能够在语音发生时更改这些设置。

在语音合成运行时更改属性async 不起作用。我尝试创建一个new SpeechSynthesizer() 并更改声音,但这也不会改变原始合成,因为它正在运行。我知道这是可能的,因为它是在 Microsoft Edge 中完成的。有什么想法吗?

【问题讨论】:

    标签: c# uwp text-to-speech


    【解决方案1】:

    我知道这是可能的,因为它是在 Microsoft Edge 中完成的。

    首先,我不确定 Microsoft Edge 是如何实现这个功能的。边缘很可能没有使用此 API。

    我检查了documentation 并测试了official sample,我没有找到我们可以在演讲开始时修改语音和SpeakingRate 的选项。所以这个功能对于UWP来说应该是不可能的。

    【讨论】:

    • 我认为 Edge 会跟踪引擎说出了多少个字符/单词,然后使用修改后的设置重新启动一个新的语音合成器。无论如何,这就是我要尝试的方法。感谢您的确认。
    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 2013-12-23
    • 2018-10-03
    • 2013-11-30
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多