System.speech请不要说区号

时间:2012-07-11 15:36:22

标签: c# text-to-speech

我正在使用简单的c#代码让程序进行讨论

        if (checkBox1.Checked == true) {
            SpeechSynthesizer speaker = new SpeechSynthesizer();
            speaker.Rate = 1;
            speaker.Volume = 100;
            speaker.Speak(stringout);

问题是字符串输出包含带数字的句子。 微软讲话将这些视为“区号” 所以例如而不是说

样本90 123 40

我听到了:

示例区号 90 123 40

如何阻止此行为?

1 个答案:

答案 0 :(得分:1)

试试这个:

speaker.SpeakSsml("sample <say-as interpret-as=\"string\" format=\”digit string\” detail=\”string\”>90 123 40<say-as>");

如果可行,请在字符串中使用RegEx替换来包装该字符串中的数字。