我使用的是C#System.Speech.Synthesis而无法获得' pitch' SSML控制元素在与半色调或Herzes一起使用时产生任何效果。以下代码正常工作且音高发生变化(使用代码low
,high
,x-high
等进行控制时):
SpeechSynthesizer synth = new SpeechSynthesizer();
PromptBuilder pb1 = new PromptBuilder();
string high = "<prosody pitch=\"x-high\"> This is extra high pitch. </prosody >";
pb1.AppendSsmlMarkup( high );
synth.Speak( pb1 );
但是当SSML字符串被定义为:
string high = "<prosody pitch=\"+4st\"> This is extra high pitch. </prosody >";
或
string high = "<prosody pitch=\"+200Hz\"> This is extra high pitch. </prosody >";
音高没有任何变化。有没有办法使用&#39; + 4st&#39;或者&#39; + 200Hz&#39;或类似的形式(可能是百分比或绝对值)比几个预定水平更精确地控制音高?