Windows 7 是否有一些字符可以插入以获得更长的SAPI5 TTS暂停时间?

Windows 7 是否有一些字符可以插入以获得更长的SAPI5 TTS暂停时间?,windows-7,text-to-speech,sapi,Windows 7,Text To Speech,Sapi,我知道TTS系统将在句点(.)或逗号(,)上暂停。但是我怎样才能让它暂停更长的时间呢?例如,在问答场景中,我希望声音阅读问题并暂停片刻,以便听者能够在心里回答问题,然后声音阅读答案 我曾尝试将一系列时段串在一起,但它们似乎在TTS中合并为一个时段,以便它们有效地暂停与单个时段相同的长度(linux上的Festival没有这样做,但在Windows SAPI上似乎做到了) 是否有一些字符或字符序列可以用来获得更长的暂停时间?或者另一种实现这一目标的方法?角色不起作用。要更好地控制此情况,请传递SP

我知道TTS系统将在句点(.)或逗号(,)上暂停。但是我怎样才能让它暂停更长的时间呢?例如,在问答场景中,我希望声音阅读问题并暂停片刻,以便听者能够在心里回答问题,然后声音阅读答案

我曾尝试将一系列时段串在一起,但它们似乎在TTS中合并为一个时段,以便它们有效地暂停与单个时段相同的长度(linux上的Festival没有这样做,但在Windows SAPI上似乎做到了)

是否有一些字符或字符序列可以用来获得更长的暂停时间?或者另一种实现这一目标的方法?

角色不起作用。要更好地控制此情况,请传递SPF_IS_XML标志:

  HRESULT hr = pVoice->Speak(L"Hello <silence msec=\"1000\"/> world", 
                  SPF_IS_XML, NULL );
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
   Hello<break time="1000ms" />world
</speak>
    private SpeechSynthesizer synth = new SpeechSynthesizer();

    private void sayHello() {
        var builder = new PromptBuilder();
        builder.AppendText("Hello");
        builder.AppendBreak(TimeSpan.FromMilliseconds(1000));
        builder.AppendText("world");
        synth.SpeakAsync(new Prompt(builder));
   }