注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

lx121225的个人主页

 
 
 

日志

 
 

NET 将文本转换成语音  

2008-10-07 15:56:49|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.csdn.net/alexniit4/archive/2008/09/28/2991483.aspx

用过金山词霸的都知道金山词霸里有个功能能够将单词按其读音读出来。也许会有人认为它是事先将所有的单词的读音文件存储在数据库里,然后事需要的时候再调用。其实事实上并不是这样,我们有更好的解决办法,MS就专门提供了这种技术。

  在计算机中将文本转换成语音的技术叫做语音合成(TTS:Text To Speech)。要使用它的话就需要到MS官网上去下载地址为:http://www.microsoft.com/reader/developers/downloads/tts.mspx

安装时还要求我先安装一个叫MSReader 2.1的程序,下载地址为:http://www.microsoft.com/reader/downloads/pc.mspx

没有找到SpeechLib.dll需要先在解决方案中引用:C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.dll ,引用之后就生成了Interop.SpeechLib.dll

  这个东西不是很大,到于原理还没有去想过,因为现在只是帮想了解的朋友做个最基本的DEMO。

  下下来了后就安装,注意:如果想实现汉字或非英语的阅读就要去下载SpeechSDK51LangPack。

  下面来创建一个TTS程序,首先在VS中创建一个项目,然后添加引用"安装目录\Samples\Csharp\ListBox"中的Interop.SpeechLib.dll程序集,在程序里引用SpeechLib Namespace。

  创建SpVoiceClass类,(SpVoiceClass是我们这里要用到的主要的类,它包含在SpeechLib.dll中),面在这里必要的属性如下:

属性名

类型

说明

Voice

SpObjectToken

大概是用于设置声音的效果

AudioOutput

SpObjectToken

用于选择声卡

Rate

Int

频率,说话的速度

Volume

Int

音量,最大为100

        Rate的值越小说话的速率越慢

  根据SpVoiceClass类中几个必要的属性,我们可以做一个类似下图的简单界面

NET 将文本转换成语音 - lx121225 - lx121225的个人主页

  具体的实现代码如下:

NET 将文本转换成语音 - lx121225 - lx121225的个人主页NET 将文本转换成语音 - lx121225 - lx121225的个人主页Code

         using SpeechLib;

private void button1_Click(object sender, EventArgs e)

{

try

{

                SpVoiceClass voic=new SpVoiceClass();

                voic.Voice = voic.GetVoices(null, null).Item(comboBox1.SelectedIndex);

voic.AudioOutput = voic.GetAudioOutputs(null, null).Item(comboBox2.SelectedIndex);

voic.Rate = trackBar1.Value;

voic.Volume = trackBar2.Value;

voic.Speak(textBox1.Text, SpeechVoiceSpeakFlags.SVSFDefault);

}

catch

{

;

}

}

  注意:comboBox1.SelectedIndex不为3时能读英语和汉语(前提是装了话音补丁),但是英文单词是单个字单个字读不是读整个单词;如果为3,只能读英文不能读汉字,读英文的话,它就会一个单词一个单词的读出来。

  评论这张
 
阅读(135)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017