我正在开发一个包含语音合成的程序。几周前,我写了介绍性的
using (SpeechSynthesizer s = new SpeechSynthesizer())
{
s.SetOutputToWaveFile("file.wav");
s.Speak(textBox1.Text);
}
程序。它运作得很好。我从我的任务列表中划掉了“研究语音合成”,然后转到项目的其他部分。
现在我正在编写一个真正的程序,并尝试使用相同的基本代码块。但是,它现在在s.SetOutputToWaveFile
电话上失败了。它抛出PlatformNotSupportedException,并显示以下消息:“系统上没有安装语音,或者当前安全设置没有安装语音。”
我在使用32位Vista。据我所知,两个程序都有相同的编译器设置。请注意,这是一个Winforms应用程序,而不是ASP.Net或任何部分信任的。我在另一个Visual Studio实例中提取了原始程序,它仍然可以正常工作。
有什么想法吗?
编辑,11/9/09:
我已经添加了赏金,现在甚至只是这个程序:
static void Main(string[] args)
{
using (SpeechSynthesizer ss = new SpeechSynthesizer())
{
ss.Speak("Hello There");
}
}
失败。我猜我需要设置一些权限或某些东西,但我找不到它。我的另一个程序 - 与这个新程序完全相同的初始基本程序仍然有效。
答案 0 :(得分:3)
你可以将WinDiff两个.csproj文件进行比较,看看他们是否使用相同的东西作为参考文件?
也许有人使用本地文件(在他自己的子目录中)而另一个使用系统文件?