当前位置: 移动技术网 > IT编程>开发语言>.net > C# 语音合成

C# 语音合成

2019年01月05日  | 移动技术网IT编程  | 我要评论

招女兵条件,60岁老汉内脏全长反,日本9级地震安倍遇难

1. 引用system.speech

2. 通过speechsynthesizer类朗读文本

new speechsynthesizer().speakasync("我们都是好孩子we're good kids.")

3. speck vs speckasync函数

  • playasync--异常播放,可以将需要朗读的文本进行排队。如果不需要,可以按如下取消当前的播放操作。
  • speak--同步播放,会卡ui线程。如果在朗读时,不影响界面操作,则不应使用此函数
 1         private speechsynthesizer speechsyn=new speechsynthesizer();
 2         /// <summary>
 3         /// 异步播放
 4         /// </summary>
 5         private void playasync()
 6         {
 7             var currentspokenprompt = speechsyn.getcurrentlyspokenprompt();
 8             if (currentspokenprompt != null)
 9             {
10                 speechsyn.speakasynccancel(currentspokenprompt);
11             }
12             speechsyn.speakasync(richtextbox1.text);
13         }
14         /// <summary>
15         /// 同步播放
16         /// 注:卡ui
17         /// </summary>
18         private void play()
19         {
20             using (speechsynthesizer speechsyn = new speechsynthesizer())
21             {
22                 speechsyn.speak(richtextbox1.text);
23             }
24         }

4. 设置朗读角色

1     var speechsynthesizer = new speechsynthesizer();
2     var voices= speechsynthesizer.getinstalledvoices(cultureinfo.currentculture).select(x => x.voiceinfo.name).tolist();
3     speechsynthesizer.selectvoice(voices[0]);
4     speechsynthesizer.speakasync("我们都是好孩子we're good kids.");

5. 其它

  • rate -- 语速设置,默认为0
  • volume -- 音量设置

6. 导出音频文件

可以将文本语音合成后,导出成一个wav、mp3等音频文件。

 1         private void exportaudiofile()
 2         {
 3             using (speechsynthesizer speechsyn = new speechsynthesizer())
 4             {
 5                 speechsyn.volume = 50;
 6                 speechsyn.rate = 0;
 7 
 8                 var filepath = environment.getfolderpath(environment.specialfolder.desktop) + $"\\{richtextbox1.text}.mp3";
 9                 if (file.exists(filepath))
10                 {
11                     file.delete(filepath);
12                 }
13 
14                 speechsyn.setoutputtowavefile(filepath);
15                 speechsyn.speak(richtextbox1.text);
16                 speechsyn.setoutputtodefaultaudiodevice();
17 
18                 messagebox.show($"保存录音文件成功,保存路径:{filepath}");
19             }
20         }

demo下载

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网