System.Speech语音合成器的奇怪问题

时间:2009-11-06 23:51:06

标签: .net windows text-to-speech

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

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

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

1 个答案:

答案 0 :(得分:3)

你可以将WinDiff两个.csproj文件进行比较,看看他们是否使用相同的东西作为参考文件?

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