System.speech在数字上写着 "区号"。

问题描述 投票:7回答:1

我正在使用简单的C#代码来让一个程序说话。

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

问题是字符串出来后包含有数字的句子。而微软语音识别这些数字为 "区号"。因此,比如说,与其说

sample 90 123 40

我听说。

sample *area code* 90 123 40

如何停止这种行为?

c# text-to-speech
1个回答
1
投票

试试这个。

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

如果可以的话,在你的字符串上做一个RegEx替换,将数字包在字符串中。

© www.soinside.com 2019 - 2024. All rights reserved.