.net 系统有奇怪的问题。语音合成器
我正在做一个包括语音合成的程序。几周前,我写了介绍信.net 系统有奇怪的问题。语音合成器,.net,windows,text-to-speech,.net,Windows,Text To Speech,我正在做一个包括语音合成的程序。几周前,我写了介绍信 using (SpeechSynthesizer s = new SpeechSynthesizer()) { s.SetOutputToWaveFile("file.wav"); s.Speak(textBox1.Text); } 节目。效果很好。我从我的任务列表中划掉了“研究演讲合成”,然后转到项目的其他部分 现在我正在编写一个真正的程序,并尝试使用相同的基本代码块。但是,它现在在
using (SpeechSynthesizer s = new SpeechSynthesizer())
{
s.SetOutputToWaveFile("file.wav");
s.Speak(textBox1.Text);
}
节目。效果很好。我从我的任务列表中划掉了“研究演讲合成”,然后转到项目的其他部分
现在我正在编写一个真正的程序,并尝试使用相同的基本代码块。但是,它现在在调用s.SetOutputToWaveFile
时失败。它抛出一个PlatformNotSupportedException,并显示以下消息:“系统上未安装语音或当前安全设置不可用。”
我使用的是32位Vista。据我所知,两个程序都有相同的编译器设置。请注意,这是一个Winforms应用程序,而不是ASP.Net或任何部分受信任的应用程序。我在另一个VisualStudio实例中调出了原始程序,它仍然可以正常工作
有什么想法吗
编辑,2009年11月9日:
我增加了一笔赏金,现在甚至只是这个计划:
static void Main(string[] args)
{
using (SpeechSynthesizer ss = new SpeechSynthesizer())
{
ss.Speak("Hello There");
}
}
失败了。我猜我需要设置一些权限或其他东西,但我找不到。我的另一个程序——与这个新程序完全相同的初始基本程序,仍然有效。你能将这两个.csproj文件进行比较,看看它们是否使用了相同的引用内容吗
可能一个使用本地文件(在他自己的子目录中),而另一个使用系统文件?类似于s.SetOutputOffaultAudioDevice()的结果是什么?同样的问题?s.Anything()引发同样的异常。在调试器监视窗口中查看时,每个属性都会显示相同的PlatformNotSupportedException错误。工作程序引用System.Speech,而非工作程序引用Microsoft.Speech。他们有完全不同的参考资料!我已经对.csproj文件进行了差异化处理,以寻找安全性差异,并且完全忽略了不同的引用。