|
我查了一下,建议这个
1。用SAPI.SPVOICE对象
这个是MS的TTS引擎,似乎在WIN XP 就自带了,至少我试装的一个WIN XP SP2祼机便自带
WINXP初装祼机虽然没有中文语音,不过SAPI.SPVOICE已经有了,所以推荐这个,如果你是2000和98,另找MS的TTS装一个,或当我没说
至于EXCEL的那个APPLICATIP.SPEECH.SPEAK,我还是建议当成鸡肋,垃圾什么的。因为这玩意在2003之前就没有,在2003之后只有EXCEL才有,也就是说要跟着EXCEL APPLICATION一起玩,同学们,不带这么玩的,我们搞TTS的话,就算用XP,用WIN 7,也没说过要带着EXCEL APP啊。
2。中文语音
当然,要有中文。
OFFICE中文会带一个中文版的语音,不过呢XP的同学建议自已另找一个中文语音,因为那个也是垃圾中的战斗机,你做开发听多了会结巴的,教育对象的拼音和英文一定会退步。WIN7自带的就不用了,声音还可以。我在XP下就找一个NEO的LILY语单。
3。SAPI的用法
下面是VBA代码的演示用法,其中主要是发音、速率以及同步的问题,默认是异步,在SPEAK方法发音后同时执行后面的代码,
然后我用了两次MSGBOX停止代码,发音时间比较长,演示PAUSE方法,如果你在SPEAK发音未完之前按下第1个MSGBOX,执行了SPEAK.PAUSE方法,它就停下了。第2次继续
Set sapiX = CreateObject("SAPI.SpVoice")
sapiX.Volume = 100 '音量
sapiX.Rate = 0 '语音速率 越大越快
FlagsAsync=1 '同步或异步,1是异步
'下面这段是选系统已安装的语音,可以不运行,用控制面板人工手选好的
'set colVoice=sapiX.getVoices() '安装有多少个语音集合可选
'set sapiX.Voice=colVoice(0) '选第1种语音
strText="I asked God for a bike, but I know God doesn't work that way."
strText=strText & "So I stole a bike and asked for forgiveness."
strText=strText & "开始我直接求上帝赐辆自行车。后来我琢磨上帝办事儿不是这个路数。 于是老子偷了一辆然后求上帝宽恕。"
sapiX.Speak strtext,FlagsAsync '同步或异步
msgbox "调试窗口,注意同步和异步效果"
sapiX.Pause '暂停SPEAK,异步有效,如果MSGBOX按下去,还在扯的一段就卡察
MSGBOX "PAUSE,继续发音"
sapiX.Resume |
评分
-
3
查看全部评分
-
|