Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SSML-是否可以删除自动中断暂停?_C#_Text To Speech_Speech Synthesis_Ssml_Speechsynthesizer - Fatal编程技术网

C# SSML-是否可以删除自动中断暂停?

C# SSML-是否可以删除自动中断暂停?,c#,text-to-speech,speech-synthesis,ssml,speechsynthesizer,C#,Text To Speech,Speech Synthesis,Ssml,Speechsynthesizer,我试图删除合成处理器添加的自动中断,以创建没有任何“语言停顿”的语音文件 我正在使用微软的语音合成引擎和C#中的SpeechSynthesizer类 这是“这是一个为什么会发生自动中断的示例?”的输出,用SpeechSynthesizer标记包装: 这是我想要的输出(通过使用实现): 我已经读了好几遍,在这一点上,请注意以下几点: 如果标记之间不存在元素,则合成处理器将根据语言上下文自动确定中断。实际上,break元素最常用于覆盖合成处理器的典型自动行为。 这就是我的声音目前的表现。我想以某

我试图删除合成处理器添加的自动中断,以创建没有任何“语言停顿”的语音文件

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

这是“这是一个为什么会发生自动中断的示例?”的输出,用
SpeechSynthesizer
标记包装:

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

我已经读了好几遍,在这一点上,请注意以下几点:

如果标记之间不存在元素,则合成处理器将根据语言上下文自动确定中断。实际上,break元素最常用于覆盖合成处理器的典型自动行为。

这就是我的声音目前的表现。我想以某种方式覆盖/关闭此功能,使演讲完全不受干扰。我尝试过在自动中断发生的单词之间放置一个属性为
strength=“none”
time=“0ms”
元素,就像上面写的那样覆盖它,以及各种不同的事情,例如在
标记中包装整个文本字符串等,但都没有效果

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

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

在我的文章中,如果你在最后放一个50毫秒的中断,那么它将尊重它-如果它小于50毫秒,那么它将被忽略。
但是,它总是将
包装的内容视为自己的子句,因此将其视为一个句子/子句,而不是像第二个示例那样携带韵律。您需要在一个
元素(和语音)中发送所有文本,以便将其视为一个单一的语言表达。

谢谢您的回答。在上面的示例中,我将所有文本包装在
标记中,并将其包装在一个
标记中,这仍然会在句子中间产生中断。我使用的是一种外部下载的语音,通常称为“Daniel UK”-std Microsoft语音不会导致这种中断。我解决这个问题的老套方法是,列出导致中断的每个单词(变戏法),并用regex命令用破折号替换空格(中断的位置)。结果几乎相当于我上面链接的演示的效果。我仍然不知道如何“正确地”做。是的,我也注意到了这种行为。短跑是个好主意。我认为你能让它作为一种语言表达的唯一方法是为每个声音呈现整个句子,然后使用
s作为指导,在哪里剪切生成的音频文件。当然,这不是一个理想的解决方案。是的,
这个想法可能会奏效,但由于句子/从句结尾的单词的词形变化/语调不同于不停顿地说出来的话,这将导致语调上的不一致。我想破折号现在就可以了!