我正在开发一个包含语音合成的程序。几周前,我写了介绍
using (SpeechSynthesizer s = new SpeechSynthesizer())
{
s.SetOutputToWaveFile("file.wav");
s.Speak(textBox1.Text);
}
程序。它工作得很好。我从我的任务列表中划掉了“研究语音合成”,然后转到项目的其他部分。
现在我正在编写一个真正的程序,并尝试使用相同的基本代码块。但是,现在s.SetOutputToWaveFile
通话失败。它会引发 PlatformNotSupportedException,并带有以下消息:“系统上没有安装语音,或者当前安全设置没有可用的语音。”
我在 32 位 Vista 上。据我所知,这两个程序都具有相同的编译器设置。请注意,这是一个 Winforms 应用程序,而不是 ASP.Net 或任何部分受信任的应用程序。我在 Visual Studio 的另一个实例中提取了原始程序,它仍然可以正常工作。
有任何想法吗?
编辑,2009 年 11 月 9 日:
我添加了一个赏金,现在甚至只是这个程序:
static void Main(string[] args)
{
using (SpeechSynthesizer ss = new SpeechSynthesizer())
{
ss.Speak("Hello There");
}
}
失败。我猜有一些权限或我需要设置的东西,但我找不到它。我的另一个程序 - 与这个新程序完全相同的初始基本程序仍然有效。