今天搞了下微软的TTS,逛了好多网页、博客,拼拼凑凑搞了点东西吧。
首先添加类库调用,系统自带的system.speech
1 using System.Speech.Synthesis;
然后就能调用方法了
1 SpeechSynthesizer speech = new SpeechSynthesizer(); 2 speech.Rate = int.Parse(dudRate.Text);//语速 3 speech.Speak("Hello TTS"); 4 speech.Dispose();
里面有个speech.SelectVoiceByHints()方法。按它的解释可以自己挑选声音,我还以为看到曙光了,一边写一边赞叹微软的强大。等写好运行时才发现没有用,一点变化也没有。当然也不知道它默认的声音是哪来的。然后又看了一边里面的方法,发现有个只读的成员speech.voice,它有好多属性(age、gender、name...)。果断调个name看看,我电脑声音是谁的。结果是 Microsoft HUihui Desktop。额,有点扯多了。这个名字可以在控制面板里的讲述人和语音识别里找到。我系统是win8的,还有个Microsoft Zira Desktop,这个只能读英语。huihui都能读,但读英语效果没Zira好,真是难以取舍哇。
这是设置语音的方法。不设置的话就用系统默认的了。
1 speech.SelectVoice("Microsoft HUihui Desktop");
都只有女声,听听就腻了,偶尔也要换换口味嘛。想看看系统还有其他语音么
貌似又感觉到微软强大的曙光了。。果断满怀希望点进去看了,但是但是万万没想到跳出个英文网站,而且根本没有其它语音,网页看上去也有点年纪的样子。然后在微软社区搜了下,说是不能添加讲述人语音的。好吧~~
还是加其它语言库吧,都说NeoSpeech好,捡过来用用。它有好几中类型的
一开始直接装了个Paul,调用
1 speech.SelectVoice("VW Paul"); 2 speech。speak("Hello");
运行听听看,果然还是男声很好听。不是我有问题,是系统自带的语音没这个好,之后用女声的感觉更好哦。但是我就写了个hello,为啥他能说这么多,话唠哇。。听了好几次才发现原来是广告,原来我下的是未注册的。我这么正直怎么能用这个呢,于是又到网上荡了,查到汉语大字典网站上有正版的哦。
附上下载链接
还有个保存音频的功能,代码:
1 SpeechSynthesizer speech = new SpeechSynthesizer(); 2 SaveFileDialog file = new SaveFileDialog(); 3 file.Title = "保存音频文件"; 4 file.InitialDirectory = ".\\";//对话框的初始目录 5 file.Filter = "音频文件|*.wav";// 要在对话框中显示的文件筛选器 6 file.RestoreDirectory = true;//控制对话框在关闭之前是否恢复当前目录 7 file.FilterIndex = 1;//在对话框中选择的文件筛选器的索引,如果选第一项就设为1 8 file.AddExtension = true; 9 if (file.ShowDialog() == DialogResult.OK) 10 { 11 speech.SetOutputToWaveFile(file.FileName);//这三个方法顺序不能换哦 12 speech.Speak(richTextBox1.Text); 13 speech.SetOutputToNull(); 14 }
写得有点乱的感觉