此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

您现在的位置: 智可网 - 程序开发 - 微软开发专区 - .Net - .Net实例 - 正文
.NET 将文本转换成语音的实例
教程录入:吴家声    责任编辑:446901797 作者:佚名 文章来源:本站原创
用过金山词霸的都知道金山词霸里有个功能能够将单词按其读音读出来。也许会有人认为它是事先将所有的单词的读音文件存储数据库里,然后事需要的时候再调用。其实事实上并不是这样,我们有更好的解决办法,MS就专门提供了这种技术。

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

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

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

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

  创建SpVoiceClass类,(SpVoiceClass是我们这里要用到的主要的类),面在这里必要的属性如下:

属性名

类型

说明

Voice

SpObjectToken

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

AudioOutput

SpObjectToken

用于选择声卡

Rate

Int

频率,说话的速度

Volume

Int

音量,最大为100

 

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

  具体的实现代码如下:

 

Code
private void button1_Click(object sender, EventArgs e)
{
try
{
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,要读是是英文的话,它就会一个字母一个字母的读出来,如果是汉字则会读汉语(前提是装了话音补丁)

 

  好了,简单的Demo已经完成了,接着去探索吧……

分享
打赏我
打开支付宝"扫一扫" 打开微信"扫一扫"
客户端
"扫一扫"下载智可网App
意见反馈
.NET 将文本转换成语音的实例
作者:佚名 来源:本站原创
用过金山词霸的都知道金山词霸里有个功能能够将单词按其读音读出来。也许会有人认为它是事先将所有的单词的读音文件存储数据库里,然后事需要的时候再调用。其实事实上并不是这样,我们有更好的解决办法,MS就专门提供了这种技术。

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

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

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

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

  创建SpVoiceClass类,(SpVoiceClass是我们这里要用到的主要的类),面在这里必要的属性如下:

属性名

类型

说明

Voice

SpObjectToken

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

AudioOutput

SpObjectToken

用于选择声卡

Rate

Int

频率,说话的速度

Volume

Int

音量,最大为100

 

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

  具体的实现代码如下:

 

Code
private void button1_Click(object sender, EventArgs e)
{
try
{
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,要读是是英文的话,它就会一个字母一个字母的读出来,如果是汉字则会读汉语(前提是装了话音补丁)

 

  好了,简单的Demo已经完成了,接着去探索吧……