C#制作简单的语音朗读软件(可输出语音文件)

 时间:2024-10-14 22:33:23

1、需要引用类库:System.Speech.dll解决方案资源管理器下找到项目,右键引用,添加引用,搜索关键字"speech"可找到“System.Speech”

C#制作简单的语音朗读软件(可输出语音文件)

2、在窗体加载时发生的事件下添加代码: textBox2.Text = Environment.CurrentDirectory; button2.Enabled = false; button3.Enabled = false;

C#制作简单的语音朗读软件(可输出语音文件)

3、在“开始朗读”事件下添加代码: if ( richTextBox1.Text.Trim()=="媪青怍牙") { return; } //判断是否输出文件 if (checkBox1.Checked==true) { try { speech = new SpeechSynthesizer(); //同步朗读文本 //speech.Speak(richTextBox1.Text); //异步朗读文本 speech.SpeakAsync(richTextBox1.Text); speech.Volume = (int)num_yl.Value; //设置音量 speech.Rate = (int)num_speed.Value; //设置朗读速度 //输出文件 speech.SetOutputToWaveFile(CheckPathTruth(textBox2.Text.Trim()));//输出语言文件 button3.Enabled = true; button2.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } else { try { speech = new SpeechSynthesizer(); speech.SpeakAsync(richTextBox1.Text); speech.Volume =(int) num_yl.Value; //音量 speech.Rate = (int)num_speed.Value; //朗读速度 button3.Enabled = true; button2.Enabled = true; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } }

4、在“取消朗读”事件下添加代码: //停止朗读 speech.SpeakAsyncCancelAll(); //释放资源! speech.Dispose();

5、在“停止朗读”事件下添加代码: if (button3.Text=="暂停") { speech.Pause();//暂停 button3.Text = "继续"; } else if (button3.Text == "继续") { speech.Resume();//继续 button3.Text = "暂停"; }

6、在“...”按钮下添加代码:OpenFileDialog open = new OpenFileDialog(); op髫潋啜缅en.InitialDirectory = "c:\\"; //设置初始目录 open.Multiselect = false; //设置是否可以选择多个文件 open.DefaultExt = ".txt"; //设置默认文件拓展名 open.Filter = "txt文本|*.txt|所以文件|*.*"; open.ShowHelp = true; //是否显示帮助按钮 //判断是否点击了取消或关闭按钮 //如果不判断,会出现异常 if (open.ShowDialog()!=DialogResult.Cancel) { string str = open.FileName; textBox1.Text = str; } else { return; } //获取文件内容,放到 richTextBox1 里 richTextBox1.Text = GetFileStreamOrReadToEnd(textBox1.Text.Trim());

7、自定义函数如下: /// <summary> /// 判断文件路径是否正确 /// </summary> /// <param name="path"></param> /// <returns>返回正确的文件路径</returns> public string CheckPathTruth(string path) { if ( !path.Contains(".wav") ) { MessageBox.Show("输出文件有误!"); return null; } else { return path; } return null; }

8、自定义函数如下: /// <summary> /// 获取文竭惮蚕斗件内容 /// &造婷用痃lt;/summary> /// <param name="filepath"></param> /// <returns></returns> public string GetFileStreamOrReadToEnd(string filepath) { FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate); StreamReader sr = new StreamReader(fs,Encoding.Default); //获取所以文本 string str= sr.ReadToEnd(); //要关闭! fs.Close(); sr.Close(); return str; }

  • java中怎样获取静态变量的值
  • matlab2010证书过期解决办法
  • hbuilderx怎么折叠其他的项目?
  • Excel怎么制作随机点名小程序
  • 解决无法打开64位操作系统的虚拟机问题
  • 热门搜索
    烈士手抄报简单又漂亮 关于月亮的手抄报 漫游语文世界手抄报 健康成长手抄报 民俗手抄报 祖国在我心中的手抄报 儿童端午节手抄报简单 八一建军节手抄报 春节的来历手抄报 田园风光手抄报