首先项目添加引用。 System.Speech.DLL
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Threading;
using System.Speech.Synthesis;        private void Button1_Click(object sender, EventArgs e)
        {
            
            SpeechSynthesizer synth = new SpeechSynthesizer();            //获取本机上所安装的所有的Voice的名称
            string voicestring = "";            foreach (InstalledVoice iv in synth.GetInstalledVoices())
            {
                voicestring += iv.VoiceInfo.Name + ",";
            }            synth.Volume = 100;
            synth.Rate = -5;
            //根据Voice的name属性确定要使用的Voice
           synth.SelectVoice("Girl XiaoKun");
            //根据文字内容合成语音
            synth.Speak("你好");
        }  synth.SelectVoice("Girl XiaoKun"); 这里报错 
报错信息为 "不能设置语音。未安装匹配的语音,或语音被禁用。"
有做过的来谢谢帮忙

解决方案 »

  1.   

    因为你的synth.GetInstalledVoices()根本就没有检索出Girl XiaoKun来
    你看一下VoiceInfo.Name 默认有Microsoft Sam
                SpeechSynthesizer synth = new SpeechSynthesizer();            //获取本机上所安装的所有的Voice的名称
                string voicestring = "";            foreach (InstalledVoice iv in synth.GetInstalledVoices())
                {
                    voicestring += iv.VoiceInfo.Name + ",";
                }            synth.Volume = 100;
                synth.Rate = -5;
                //根据Voice的name属性确定要使用的Voice
                synth.SelectVoice("Microsoft Sam");
                //根据文字内容合成语音
                synth.Speak("你好");
      

  2.   

    回三楼 我的声音跟声卡服务都开在。回5楼。我的 voicestring  win 7下有  Girl XiaoKun  没有  Microsoft Sam  而 XP有 Microsoft Sam 但是  Microsoft Sam 太难听了 同样在XP也是不能调用 synth.SelectVoice()方法错误也是一样。
    如果不选择  SelectVoice 则是可以的而且不会出错。
    默认win7 下是Lili的声音。
    XP下是 Microsoft Sam
      

  3.   

    现在遇到问题比较棘手就这个语音 跟打印机的问题 xp下语音实在太难听了。但是打印机的驱动确是可以用的。但是在WIN7声音的质量比较好。但是打印机的驱动确是不行。比较郁闷。
      

  4.   

    你装MSTTS了?或者装MS Speech SDK了么?……如果是Vista/win7,系统自带,XP/2003的话,去装一下TTS或者Speech SDK
      

  5.   


    using System.Speech.Synthesis; 
    兄弟这个从3.0就封起来了。
    所以不存在需要安装什么SDK . 
    现在就是掉用 SelectVoice  就出 不能设置语音。未安装匹配的语音,或语音被禁用。 XP  win 7下都一样。如我们不调用这个SelectVoice  方法 就是默认系统自带的声音。
    XP很难听的。
      

  6.   


    在XP下页可以做测试就是调用SelectVoice  方法赋值就报错。不调用就是默认的声音。XP很难听的。