voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);            voice.Speak("测试c#语音", flag);  
由于没使用过 所以 只能摸索着看了
  这2个没有问题么。voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);
我觉得有问题吧。你实例化了一个 voice SpVoice的new对象  。就能够直接使用这个了?voice.Speak("测试c#语音", flag);  

解决方案 »

  1.   

    是这样的,如果的系统是XP的,我估计是不行的。Win7支持语言播报,微软在他们的库里 加了这个。另外,我觉得 可能你这段代码些的参数这样不对,之前我有用微软的类库 的来做个语言 代码:       private static readonly SpeechSynthesizer Talker = new SpeechSynthesizer();
            private void button1_Click(object sender, EventArgs e)
            {
                Talker.Rate = -2;
                Talker.Volume = 100;
                Talker.SelectVoiceByHints(VoiceGender.Male, VoiceAge.Child, 2, System.Globalization.CultureInfo.CurrentCulture);            Talker.SpeakAsync(txt_speak.Text);
            }这段代码就可以读出来 你想要的东西。不过读中文是非常烂的,英文还凑合。个人不推荐用此类库来开发语音播报程序,你可以寻找第三方类库的语音包,我就是找的第三方的。