ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# 语音技术

2021-05-11 15:34:30  阅读:218  来源: 互联网

标签:string filePath C# text 技术 sv ss 语音 朗读


1、使用DotNetSpeech.dll。

 1 /// <summary>
 2 
 3 /// 朗读
 4 /// </summary>
 5 /// <param name="text">要朗读的文本</param>
 6 private void Read(string text)
 7 {
 8     SpVoice sv = new SpVoice();
 9     sv.Rate = 0;//设置朗读速度
10     SpeechVoiceSpeakFlags SSF = SpeechVoiceSpeakFlags.SVSFlagsAsync;
11     sv.Speak(text, SSF);
12 }
13 /// <summary>
14 /// 生成声音文件
15 /// </summary>
16 /// <param name="text">要朗读的文本</param>
17 /// <param name="filePath">生成声音文件的路径</param>
18 /// <param name="fileName">生成声音文件的名称</param>
19 private void CreateFile(string text, string filePath,string fileName)
20 {
21     if (!Directory.Exists(filePath))
22         Directory.CreateDirectory(filePath);
23     SpVoice sv = new SpVoice();
24     SpeechVoiceSpeakFlags SVSF = SpeechVoiceSpeakFlags.SVSFlagsAsync;
25     SpeechStreamFileMode SSFM = SpeechStreamFileMode.SSFMCreateForWrite;
26     SpFileStream SFS = new SpFileStream();
27     SFS.Open(filePath+fileName, SSFM, false);
28     sv.AudioOutputStream = SFS;
29     sv.Speak(text, SVSF);
30     sv.WaitUntilDone(System.Threading.Timeout.Infinite);
31     SFS.Close();
32 }
33 2、 使用System.Speech
34 
35 SpeechSynthesizer ss = new SpeechSynthesizer();
36 //播放
37 if (ss != null)
38 {
39     ss.Dispose();
40     ss.SpeakAsync("朗读的文本");
41 }
42 //暂停
43 if (ss.State == SynthesizerState.Speaking)
44 {
45     ss.Pause();
46 }
47 //继续
48 if (reader.State == SynthesizerState.Paused)
49 {
50     ss.Resume();
51 }
52 //停止
53 if (ss != null)
54 {
55     ss.Dispose();
56 } 

  收集整理,非原创。转载:https://www.cnblogs.com/sydeveloper/archive/2013/05/29/3107090.html

标签:string,filePath,C#,text,技术,sv,ss,语音,朗读
来源: https://www.cnblogs.com/liuzz/p/14755616.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有