你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
在VFP中调用MSTTS技术实现英文语音输出的方法
 

  :本文介绍了一种在VFP中调用微软的TTS技术的方法,并通过一个发音实例,说明其设计步骤

关键词VFPMSTTSOLE容器控件

 

一、前言

金山词霸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常规控件:五个命令按钮和一个文本框。具体如下图:

然后分别修改五个控件的主要属性:

Form1Caption属性的值为"微软TTS技术的一个例子"

Text1Value属性的值为”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文本输入框中只能输入英文单词或句子,不能输入中文,否则将发生错误,希望大家注意。

 注:本程序在Win98VFP6.0环境中调试通过。

 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089