Question

I'm working on a program that includes speech synthesis. A few weeks ago, I wrote the introductory

    using (SpeechSynthesizer s = new SpeechSynthesizer())
    {
        s.SetOutputToWaveFile("file.wav");
        s.Speak(textBox1.Text);
    }

program. It worked just fine. I crossed off "research speech synthesis" from my task list and moved on to other parts of the project.

Now I'm writing a real program, and trying to use this same basic block of code. However, it is now failing on the s.SetOutputToWaveFile call. It throws a PlatformNotSupportedException, with the following message: "No voice installed on the system or none available with the current security setting."

I'm on 32-bit Vista. As far as I can tell, both programs have the same compiler settings. Note that this is a Winforms app, and not ASP.Net or anything partially trusted. I pulled up the original program in another instance of Visual Studio, and it still works just fine.

Any ideas?

Edit, 11/9/09:

I've added a bounty, and now even just this program:

static void Main(string[] args)
{
    using (SpeechSynthesizer ss = new SpeechSynthesizer())
    {
        ss.Speak("Hello There");
    }
}

fails. I'm guessing that there's some permission or something that I need to set, but I can't find it. My other program - the initial, basic program that does exactly the same as this new one, still works.

Was it helpful?

Solution

can you compare with WinDiff both .csproj file and look if they use the same stuff for the references?

Maybe one use a local file(in his own sub directory) while the other use a system file?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top