语⾳⽂本阅读器
在⼀般程序中,我们习惯⽤眼睛和⼿去和程序交互,默默的使⽤软件。当然,在很多情况下这也是必须的,⽐如在⼀个集体⼯作的环境中,⼤家尽量减少相互
之间的⼲扰。但是在很多其他的环境我们还可以利⽤⽤户的⽿朵和嘴,⽐如睡觉前躺在床上听⼀段⼉有声⼩说,等听累了,我们说出指令,让计算机⾃动结束程序和关机,这⼀定是件很惬意的事情。
这个 Idea 听起来不错,可怎样实现呢?如果在⾃⼰的程序中加⼊这种功能很复杂吗?No,因为微软已经从⼗⼏年前就开始了这种尝试,随着近⼏年的技术进步,
已经在 Windows 中加⼊了语⾳功能的 API ⽀持,我们需要做的只是调⽤就 OK。
Windows XP 集成的版本默认只⽀持英⽂,如果使⽤中⽂还需要下载中⽂语⾔包。在 Vista 以后的系统中已经默认集成了中⽂语⾔包,更值得庆幸的是从.Net3.0 版
本以后已经包含了语⾳的托管 DLL,所以.Net 程序员使⽤起来⾮常⽅便,只需要加⼊ System.Speech 引⽤就可以正常使⽤了。
当然使⽤前先要引⼊语⾳的命名空间,我们这期的功能主要是语⾳朗读功能,所以只需要引⼊⼀个命名空间,using System.Speech.Synthesis; 下⼀期我们还会
学习怎样使⽤语⾳对电脑发送指令。在这个命名空间中我们主要使⽤SpeechSynthesizer类,这个类可以实现语⾳朗读功能。
下⾯是具体实现的代码:
/* * 功能: * 弹出⼀个选择⽂件对话框,可以选择⽂本⽂件。 * 如果选择取消,则返回。 * 如果选择是,则把⽂本⽂件内容读⼊到字符串变量txt中。 */ //⽣成选择⽂件对话框对象 OpenFileDialog ofd = new OpenFileDialog(); //设置可以打开的⽂件类型 ofd.Filter = "⽂本⽂件(*)|*.txt"; //设置⽂件对话框起始位置 ofd.InitialDirectory = "c:\"; //设置对话框在关闭前是否还原⽬录 ofd.RestoreDirectory = true; //选择⽂件对话框打开后如果选择取消,则终⽌ if(ofd.ShowDialog()!=System.Windows.Forms.DialogResult.OK) return; //读取选择的⽂本⽂件 string txt = File.ReadAllText(ofd.FileName); /* * 功能: * ⽣成阅读器对象。 * 设置发声属性。 * 阅读字符串变量txt中的⽂本内容。 */ //⽣成阅读器对象 SpeechSynthesizer speaker = new SpeechSynthesizer(); //设置⾳量为最⼤(0-100) speaker.Volume = 100; //设置阅读速度为中等(-10到10) speaker.Rate = 0; //阅读⽂本 speaker.Speak(txt); //释放阅读器 speaker.Dispose();
功能已经实现,很简单吧,有兴趣可以回去⾃⼰试⼀下啊。
Window7 操作体统 / Vs2010 中测试正常。