微软TTS,Neospeech TTS 简单使用_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 微软TTS,Neospeech TTS 简单使用

微软TTS,Neospeech TTS 简单使用

 2014/7/7 21:45:17  WMTcore  程序员俱乐部  我要评论(0)
  • 摘要:今天搞了下微软的TTS,逛了好多网页、博客,拼拼凑凑搞了点东西吧。首先添加类库调用,系统自带的system.speech1usingSystem.Speech.Synthesis;然后就能调用方法了1SpeechSynthesizerspeech=newSpeechSynthesizer();2speech.Rate=int.Parse(dudRate.Text);//语速3speech.Speak("HelloTTS");4speech.Dispose();里面有个speech
  • 标签:微软 使用

    今天搞了下微软的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 }

写得有点乱的感觉

 

发表评论
用户名: 匿名