1

您知道命名空间 System.Speech.Synthesis.TtsEngine 上的任何(简单)示例吗?

我想使用一个 TTS 引擎,它可以让我控制输出语音的音高、速率和音量。看起来上面提到的命名空间允许我这样做,但我找不到一个例子。我还没有完全理解,为了做我想做的事,我是否必须重写(可能是巨大而复杂的)将文本转换为语音的整个代码,或者我是否只是“挂钩”过程和修改一些变量。

对我来说,一个或多或少可行的选择是 MBROLA,因为我可以轻松控制每个音素的持续时间和音高。问题是 MBROLA 是一个音素到语音的引擎,因此我必须先将文本转换为音素,然后才能在 MBROLA 上使用它(这可能很难!例如“我读过”和“我已经读过”,不同的音素用于“阅读”和“阅读”!)。

任何建议将不胜感激!

谢谢!

4

1 回答 1

2

我想知道当 System.Speech.SpeechSynthesizer 已经公开了您描述的所有功能时,为什么您需要进入如此低的级别(System.Speech.Synthesis.TtsEngine 是为编写自己的 TTS 引擎的人设计的),并且更容易使用。

System.Speech.SpeechSynthesizer 具有控制速率、音高和音量的属性。此外,SpeakSsml方法允许您将SSML 标记嵌入到口语文本中,以控制语速、音调和音量,而无需处理语音事件。

于 2010-05-30T16:30:36.743 回答