摘 要:本文介绍了一种在VFP中调用微软的TTS技术的方法,并通过一个发音实例,说明其设计步骤
关键词:VFP,MSTTS,OLE容器控件
一、前言
金山词霸2000中即可进行查字典时同时读出相应的英文单词,也可进行全文英文朗读功能,这大大方便了用户的使用,提高了金山词霸的实用性。其实,金山词霸2000 中就是直接利用了微软的MSTTS (Text To Speech)技术,即文本语音发声技术。而作为一个程序设计者, 你一定也想在自己的程序中加入类似的功能吧,因为那将让自己的程序增色不少。
下面,介绍一种在VFP6.0中调用微软的MS Speech API接口,实现英语单词发音的实例,供有兴趣的电脑爱好者参考。
二、具体实现方法如下:
第一, 要在您的电脑中安装MSTTS引擎。在金山词霸2000 的安装过程中,将自动安装MSTTS;我们也可以利用金山词霸2000 安装光盘中的MSTTS.EXE 文件单独安装,在金山词霸2000光盘上\ciba子目录下运行mstts.exe(MS TTS engine)并安装spchapi(MS Speech API)。安装成功后,在您系统的Windows 目录下将有一个Speech 子目录,其中安装了相应的支持文件。
第二, 进入VFP6.0,执行菜单“文件/新建”,然后单击“文件类型框”中的“项目”选项,然后单出“新建文件”按钮,在弹出的对话框中“项目文件”输入框中输入一个项目文件名,如MYTTS,最后单出“保存”按钮就完成了第一步工作。这时屏幕上会出现一个“项目管理器”窗口。
第三, 在“项目管理器”窗口中选择“文档”中的“表单”,然后单击“新建”按钮后选择“新建表单”按钮。这时会出现一个表单设计器窗口,这时便可开始进行程序界面的设计,建立五个VFP常规控件:五个命令按钮和一个文本框。具体如下图:
然后分别修改五个控件的主要属性:
Form1:Caption属性的值为"微软TTS技术的一个例子"
Text1:Value属性的值为”Hello,my friends!”
Command1:
Caption属性的值为″开始发音″
Enabled属性的值为 .T.
Command2:
Caption属性的值为″停止发音″
Enabled属性的值为 .F.
Command3:
Caption属性的值为″暂停发音″
Enabled属性的值为 .F.
Command4:
Caption属性的值为″继续发音″
Enabled属性的值为 .F.
Command5:Caption属性的值为″退出系统″
第四,加入MSTTS发音OLE对象,具体如下:
在表单控件工具框中,选择“OLE容器控件”,并在表单的TEXT1文本框的右边将其放置,这时可能需要一段时间等待(视计算机速度),之后将在屏幕上出现一个“Insert Object”对话框,在对话框中选择“Insert Control”选项(也可能需要一段时间等待),然后将在屏幕上出现一个“Control Type”选择框,在其中选择“DirectSS Class”,最后单击“OK”按钮完成MSTTS发音OLE对象的插入。如下图所示:
第五, 编写程序代码:
1、双击“开始发音”控件,在弹出的Command1_Click()代码窗口中输入如下代码:
* 如果text1中有汉字 , 将有错误
* 开始朗读
thisform.olecontrol1.speak(thisform.text1.text)
thisform.command1.enabled=.t.
thisform.command2.enabled=.t.
thisform.command3.enabled=.t.
thisform.command4.enabled=.f.
2、 双击“停止发音”控件,在弹出的Command2_Click()代码窗口中输入如下代码:
*停止发音
thisform.olecontrol1.AudioReset
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.command3.enabled=.f.
thisform.command4.enabled=.f.
3、 双击“暂停发音”控件,在弹出的Command3_Click()代码窗口中输入如下代码:
*暂停发音
thisform.olecontrol1.AudioPause
thisform.command1.enabled=.t.
thisform.command2.enabled=.f.
thisform.command3.enabled=.f.
thisform.command4.enabled=.t.
4、 双击“继续发音”控件,在弹出的Command3_Click()代码窗口中输入如下代码:
*继续发音
thisform.olecontrol1.AudioResume
thisform.command1.enabled=.t.
thisform.command2.enabled=.t.
thisform.command3.enabled=.t.
thisform.command4.enabled=.f.
5、双击“退出系统”控件,在弹出的Command4_Click()代码窗口中输入如下代码:
thisform.release
至此,已完成所有工作,点击VFP表单的执行表单按钮,运行上述程序,并在Text1中输入英文单词或句子,然后单击“开始发音”按钮,即可实现朗读。
三、结束语
微软的MSTTS发音技术至目前还不支持中文发音(CTTS),所以本文介绍的方法,在Text1文本输入框中只能输入英文单词或句子,不能输入中文,否则将发生错误,希望大家注意。
注:本程序在Win98、VFP6.0环境中调试通过。
|