C#实现语音播报

方法一

1、首先要安装语音包Microsoft Speech SDK 5.1

2、引用 Interop.SpeechLib.dll

3、然后以下代码即可

SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
voice.Rate = 1;//语速
voice.Volume = 100;//音量
voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);//Item(0)中文、Item(3)英文
voice.Speak("语音播报", flag);

C#实现语音播报_第1张图片

方法二

 List<string> ls_speack = new List<string>();
 
 
   public void Speaking()
    {
        Task task = new Task(() =>
        {
            while (true)
            {
                Thread.Sleep(100);
                if (ls_speack.Count == 0)
                {
                    continue;
                }
                SpeechSynthesizer speech = new SpeechSynthesizer();
                speech.Volume = 100; //音量
                CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
                InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
                if (neededVoice == null)
                {
                    //say = "未知的操作";
                }
                else
                {
                    speech.SelectVoice(neededVoice.VoiceInfo.Name);
                }
                for (int k = 0; k < ls_speack.Count; k++)
                {
                    Thread.Sleep(100);
                    speech.Speak(ls_speack[k]);
                }
                ls_speack = new List<string>();
            }
 
        });
        task.Start();
    }
 
 
    public static void Speaking(string saying)
    {
        string say = saying;
        Task task = new Task(() =>
        {
            SpeechSynthesizer speech = new SpeechSynthesizer();
            speech.Volume = 100; //音量
            CultureInfo keyboardCulture = System.Windows.Forms.InputLanguage.CurrentInputLanguage.Culture;
            InstalledVoice neededVoice = speech.GetInstalledVoices(keyboardCulture).FirstOrDefault();
            if (neededVoice == null)
            {
                say = "未知的操作";
            }
            else
            {
                speech.SelectVoice(neededVoice.VoiceInfo.Name);
            }
 
            speech.Speak(say);
        });
        task.Start();
    }

你可能感兴趣的:(关于程序,c#,开发语言)