我正在使用简单的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
如何停止这种行为?
试试这个。
speaker.SpeakSsml("sample <say-as interpret-as=\"string\" format=\”digit string\” detail=\”string\”>90 123 40<say-as>");
如果可以的话,在你的字符串上做一个RegEx替换,将数字包在字符串中。