Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# SAPI是否识别SSML';音高';元素?_C#_Sapi - Fatal编程技术网

C# SAPI是否识别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

我使用的是C#System.Speech.Synthesis,当与半色调或Herzes一起使用时,无法使“pitch”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 >";