我正在用C#编写语音合成程序,并且正在使用两台机器进行调试。计算机 1 的区域性名称为"英语(英国(",并将系统日期显示为"25/03/2017",计算机 2 的区域性名称为"英语(美国(",并将系统日期显示为"03/25/2017"。当使用Microsoft David Desktop作为语音合成器语音时,它将前者发音为"25斜杠03斜杠2017",后者发音为"25th March 2017"。另一方面,当使用Microsoft Hazel Desktop时,它将前者发音为"25th March 2017",后者发音为"03斜杠25斜杠2017"。我知道Hazel是英语,英国的声音,大卫是英语,美国的声音。有没有一种有效的方法可以让所有英语语音正确发音日期,无论系统文化是英国还是美国?
考虑使用 DateTime.ToLongDateString()
方法: System.DateTime.Now.ToLongDateString()
给出星期五, 14 四月 2017.
这应该可以解决不同语音合成语音的问题,但是,您必须注意,从此方法获得的字符串格式将取决于您设置的CultureInfo
。