SSML-是否可以取消自动中断暂停



我正在尝试删除合成处理器添加的自动中断,以创建没有任何"语言停顿";。

我使用微软的语音合成引擎和C#中的SpeechSynthesizer类。

这是我用";这是一个为什么会发生自动中断的例子"包裹在带有SpeechSynthesizer:的<speak>标签中

https://clyp.it/4nofhh3n

这是我想要的输出(通过使用Oddcast的TTS Demo实现(:

https://clyp.it/m55wt14u

我已经阅读了w3.org的SSML文档好几次了,在第3.2.3点-break元素中,请注意以下内容:

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.

这就是我的声音目前的表现。我想以某种方式覆盖/关闭此功能,并使语音完全不受干扰。我尝试过在出现这种自动中断的单词之间放置一个属性为strength="none"time="0ms"<break>元素,就像他们在上面写的那样来覆盖它,以及各种不同的事情,比如用<s>标签包装整个文本字符串等等,都没有用。

我也不能在后期处理中删除中断,因为当添加自动中断时,语音在所说的单词上有不同的音调。

我已经阅读了几个不同的SSML文档,虽然与w3文档相比,这些文档的措辞通常有点不同,但没有解释如何具体覆盖自动中断,这是我的问题。

在我对SpeechSynthesizer的实验中,如果你在最后中断50ms,它会尊重它——如果它小于50ms,就会被忽略。然而,它总是将<speak>包装的内容视为自己的从句,所以会把它当作一个句子/从句来说话,而不是像第二个例子那样带有韵律。您需要在单个<speak>元素(和语音(中发送所有文本,才能将其视为单个语言话语。

相关内容

  • 没有找到相关文章

最新更新