3

我正在开发一个包含语音合成的程序。几周前,我写了介绍

    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");
    }
}

失败。我猜有一些权限或我需要设置的东西,但我找不到它。我的另一个程序 - 与这个新程序完全相同的初始基本程序仍然有效。

4

1 回答 1

3

您能否将两个 .csproj 文件与WinDiff进行比较,看看它们是否使用相同的东西作为参考?

也许一个使用本地文件(在他自己的子目录中)而另一个使用系统文件?

于 2009-11-09T17:03:45.640 回答