c# - System.speech 在数字上说 "area code"

标签 c# text-to-speech

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

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

问题是 string out 包含带数字的句子。 Microsoft Speech 将这些识别为“区号”。所以例如而不是说

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 替换,以将数字包装在该字符串中。

关于c# - System.speech 在数字上说 "area code",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436249/

相关文章:

c# - 未更改的值和自动实现的属性

c# - 如何使用字符串获取 Properties.Settings.Default?

c# - 在父表达式中重用表达式结果

delphi - 在哪里可以找到delphi的“文字转语音”组件?

c# - 在 Windows 10 中向 Text to Speech Engine 添加新声音

c# - 根据 LINQ 中一个值的最小值或最大值进行选择

Android 不承认 TTS 引擎

Android - 文本到语音确定进程结束

java - 从语言显示名称获取语言环境

c# - 为什么 AsyncLocal 不从 OWIN 中间件流向 WebForms 页面?