C# SAPI是否识别SSML';音高';元素?
我使用的是C#System.Speech.Synthesis,当与半色调或Herzes一起使用时,无法使“pitch”SSML控制元素产生任何效果。以下代码正常工作,音调改变(当使用代码C# SAPI是否识别SSML';音高';元素?,c#,sapi,C#,Sapi,我使用的是C#System.Speech.Synthesis,当与半色调或Herzes一起使用时,无法使“pitch”SSML控制元素产生任何效果。以下代码正常工作,音调改变(当使用代码低、高、x高等进行控制时): SpeechSynthesizer synth=新的SpeechSynthesizer(); PromptBuilder pb1=新PromptBuilder(); string high=“这是超高音。”; pb1.附录MLMarkup(高); 合成语音(pb1); 但当SSML
低
、高
、x高
等进行控制时):
SpeechSynthesizer synth=新的SpeechSynthesizer();
PromptBuilder pb1=新PromptBuilder();
string high=“这是超高音。”;
pb1.附录MLMarkup(高);
合成语音(pb1);
但当SSML字符串定义为:
string high = "<prosody pitch=\"+4st\"> This is extra high pitch. </prosody >";
string high=“这是超高音。”;
或
string high=“这是超高音。”;
音高没有任何变化。有没有一种方法可以使用“+4st”或“+200Hz”或类似的形式(可能是百分比或绝对值)来比使用几个预定义的级别更精确地控制音高?它肯定可以在我的机器上工作(Win 8.1),“-100Hz”对“0Hz”对“100Hz”都有不同的音高。然而,它只支持其中的三个,这无疑是对语音实现的限制。您需要区分SAPI和TTS引擎。特别是,您使用的是哪种声音?您是否找到了解决此问题的方法?
string high = "<prosody pitch=\"+4st\"> This is extra high pitch. </prosody >";
string high = "<prosody pitch=\"+200Hz\"> This is extra high pitch. </prosody >";