【发布时间】:2021-01-21 03:35:01
【问题描述】:
我正在尝试删除合成处理器添加的自动中断,以创建没有任何“语言暂停”的语音文件。
我正在使用 Microsoft 的语音合成引擎和 C# 中的 SpeechSynthesizer 类。
这是我通过“这是一个为什么会发生自动中断的示例?”得到的输出。用SpeechSynthesizer 包裹在<speak> 标签中:
这是我想要的输出(使用Oddcast's TTS Demo实现):
我已经多次阅读w3.org's SSML documentation,其中3.2.3 - break element,请注意以下几点:
If the element is not present between tokens, the synthesis processor is expected to automatically determine a break based on the linguistic context. In practice, the break element is most often used to override the typical automatic behavior of a synthesis processor.
这就是我的声音目前的表现。我想以某种方式覆盖/关闭此功能,并让演讲完全不间断。我尝试在上面写的自动中断发生的单词之间放置一个<break>元素,属性strength="none"和time="0ms"覆盖它,以及各种不同的东西,例如将整个文本字符串包装在@987654333中@标签等,无济于事。
我也不能只删除后期处理中的中断,因为当添加自动中断时,语音对所说的话的语调不同。
我已经阅读了几个不同的 SSML 文档,虽然与 w3 文档相比,这些文档的措辞通常有所不同,但没有解释如何具体覆盖自动中断,这是我的问题。
【问题讨论】:
标签: c# text-to-speech speech-synthesis ssml speechsynthesizer