方法一
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);
方法二
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();
}