使用VB.net 创建简单的TTS中英文混合语音朗读

本文介绍了如何使用VB.NET结合微软的Speech SAPI5.1 SDK创建一个简单的TTS应用,实现中英文混合语音朗读。通过引用saip.dll并设置语音引擎,实现了读取文本字符串并调整读英文时的发音选项。代码示例展示了如何切换中英文朗读及设置音量。
摘要由CSDN通过智能技术生成

最初的想法很简单,只是想弄个小程序可以实现单词朗读功能。我了解到TTS(Text-to-Speech)技术可以做到阅读文本文字,用的语音引擎是微软的Speech SAPI5.1 SDK,搜索一下,网络上大把文章谈到这个,还会告诉你下载地址,大小在60M以上。我的运行环境是xpSP2不需要再去下载。打开你的“控制面板”,打开“语音”,是不是看到了2个语音引擎?一个叫"Microsoft Simplified Chinese",一个叫"Microsoft Sam",OK,让我们设置"Microsoft Simplified Chinese"为默认值。

一切就绪,我们先在工程里引用saip.dll,这个文件在我的电脑里路径是C:/Program Files/Common Files/Microsoft Shared/Speech/saip.dll  (Written by HarryGlory .)

接下来,当然是引用了

Imports  SpeechLib

现在开始重头戏了,我们在Form1_Load事件里面写上:

             Dim  MyVoice  As   New  SpeechLib.SpVoice
            
Dim  tmpStr  As   String
            tmpStr 
=   " I love Chou! "
            MyVoice.Speak(tmpStr, SpeechVoiceSpeakFlags.SVSFlagsAsync)

按下F5运行,马上出来结果了,有声音了,耶!简单吧?

什么?你听到的是一个一个字母读出来?试试把tmpStr改成中文 "我爱周星星!" 看看,是不是读出中文了?
但是你很执着,想读英文单词,那怎么办?
OK,让我们稍微改一下代码,如下:

             Dim  MyVoice  As   New  SpeechLib.SpVoice
            
Dim  tmpStr  As   String
            tmpStr 
=   " I love Chou! "
            MyVoice.Voice 
=  MyVoice.GetVoices([ String ].Empty, [ String ].Empty).Item( 1 )
            MyVoice.Speak(tmpStr, SpeechVoiceSpeakFlags.SVSFlagsAsync)

你再按F5运行一下。哇,真的可以耶~!太棒了!
你很聪明,知道了这里Item(0)表示中文朗读,Item(1)表示英文朗读。可是,怎么判断语音引擎呢?顺便设置一下音量啊。呵呵,可以这样做的:

             Dim  language  As   String   =   " MSSimplifiedChineseVoice "   ' 此处判断缺省语音引擎. 英文为 MSSam
            MyVoice.Volume  =   100   '
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值