首页 理论教育 一款可调节语速的英文阅读程序

一款可调节语速的英文阅读程序

时间:2023-03-03 理论教育 版权反馈
【摘要】:对于不常见的单词,也能够根据英文的发音原则,读出较准确的发音。本文通过Voice Text Object 使用TTS技术,在VB环境中开发出一款可调节语速的英语朗读软件,使计算机具有说话的能力,有助于英语听力训练和学习。VB6.0 是功能强大的可视化编程语言,有很强的多媒体处理能力,如众所周知的演示动画、播放动态图像与声音文件等。运行它就能够进行英文的整段流利朗读,号称“无话不说”。Speak方法:该方法把指定的英文文本用语音朗读出来。

让电脑开口说话:一款可调节语速的英文阅读程序

江汉大学教育学院 李廷军

一、引言

让计算机具有英文语音朗读功能是通过使用Microsoft的 TTS(Text to Speech)技术实现的,而TTS技术是通过使用Microsoft Speech API将文本内容直接进行识别发音的技术。Microsoft Speech API的功能十分强大,不光可以准确读出单词,而且还能够实现流利地朗读句子乃至段落、文章。对于不常见的单词(如中文人名的拼音),也能够根据英文的发音原则,读出较准确的发音。

采用TTS技术来进行发音的核心部分是一个语音引擎,此引擎只有几兆字节,不需要大量声音文件的支持,因此,它可以节省很大的存储空间,还可应付预先未知的语句。本文通过Voice Text Object (VTxtAuto对象)使用TTS技术,在VB环境中开发出一款可调节语速的英语朗读软件,使计算机具有说话的能力,有助于英语听力训练和学习。

本文所采用的操作系统是Window XP。它对Microsoft Speech API支持得非常好。而所采用的编程环境是 VB6.0。VB6.0 是功能强大的可视化编程语言,有很强的多媒体处理能力,如众所周知的演示动画、播放动态图像与声音文件等。接下来最重要的是安装Microsoft Speech API,Microsoft Speech API在共享软件光盘上都会带有。《金山词霸2002》电子词典装备了一种TTS技术,其中就包含一个spchapi.exe文件。安装成功后,系统的Windows目录下将有一个Speech子目录,其中安装了相应的支持文件。运行它就能够进行英文的整段流利朗读,号称“无话不说”。其中的Vcmd.exe作为进程外的自动化服务器,提供将文本转换为语音的服务。Vtxtauto.tlb为相应的类型库,对服务器的接口给出了与语言无关的描述。硬件环境没有什么特殊的要求,只要能够顺利运行Windows 9x操作系统就可以了。

二、VtxtAuto 对象的属性和方法

1.在VB6.0工程中引用Voice Text Object函数库

虽然在系统中安装了Microsoft Speech API,但是在用VB建立的工程中还不能直接引用VTxtAuto对象,必须先在VB中引用Voice Text Object函数库。方法是:

(1)单击“工程”菜单中的“引用”命令,出现“引用”对活框。

(2)滚动列表找到Voice Text Object Library选项,并单击其复选框,将其选定。

(3)单击“确定”按钮关闭对话框。

经过以上步骤,已经将Voice Text Object函数库引入我们的工程中,现在就可以引用VTxtAuto对象,使用VTxtAuto对象的属性和方法编程了。

2.VTxtAuto对象的属性

(1)Callback属性:指定一个自定义类的名字,这个类的方法接收来自VTxtAuto对象的通知。

(2)Enabled属性:使被朗读文本有效或无效,值为逻辑型。当取值为True时,文本有效,允许朗读;当取值为False时,文本无效,禁止朗读。

(3)IsSpeaking 属性:用来检查VTxtAuto对象是否正在朗读文本。若是,值为True;若不是,值为False。这个属性为只读属性,不能赋值。

(4)Speed属性:用来设置或返回朗读的速度。速度的单位为:字/分钟,取值范围在30~510之间,超出这个范围将产生错误。默认值为170字/分。

(三)VTxtAuto对象的方法

(1)无参数的方法

无参数的方法共有5个,它们分别为:AudioFasForward方法,表示前进一个句子或短语;AudioPause方法,表示暂停朗读;AudioResume方法,表示恢复朗读;AudioRewind方法,表示后退一个句子或短语;StopSpeaking 方法,表示停止朗读。

(2)有参数的方法,参数的方法共有Register方法和Speak方法两个方法

其中Register方法用来注册使用 VtxtAuto对象的应用程序。必须在调用其他属性和方法之前先使用这个方法。语法为:对象.Register(sSitename as String,sApplicationname as String)。第一个参数sSitename 指要连接到的位置,用一个空的字符串代替默认位置(“Local PC”)。第二个参数sApplicationname为应用程序的名字。

Speak方法:该方法把指定的英文文本用语音朗读出来。语法为:对象.Speak(sTextToSpeak as String,Iflag as Long),参数sTextToSpeak是用来向TTS引擎传送需要朗读的文本;参数IFlag是用来指定朗读时使用的语气。

三、界面设计及各控件属性的设置

本程序在FORM1上添加两个Label控件、一个RichTextBox控件、一个CommonDialog控件、一个Slider控件和八个CommandButton控件。窗体及各控件的主要属性设置如表1所示。

表 1

img28

四、程序运行及其运用

编写相关代码后,本程序在中文Windows XP、VB 6.0环境下运行通过。运行时在文本编辑框中输入或通过点击“装载文本”按钮调入一篇英文文档,然后单击“朗读”按钮就可播放读音,运行界面如图1所示。它可以用做英语的听力练习。

img29

图 1

TTS技术具有很广泛的应用前景,如计算机自动报警、提醒,计算机朗读电于邮件,机器人讲话等很多领域都可采用这种技术。本文对在VB编程中使用TTS技术只是起个抛砖引玉的作用,熟悉VB编程的电脑爱好者可以对本程序作一些改进,例如增加对声卡和TTS引擎是否安装的检测、增加对多种英语语音方言选择的功能、增加让用户选择朗读的优先级和发声音量调节等功能,从而可以让其得到更广泛的应用。

参考文献

[1]http://www.blong.com/Conferences/DCon2002/Speech/SAPI4HighLevel/SAPI4.htm#Introduction

[2]http://www.microsoft.com/msagent/downloads.htm

[3]http://www.netcenter-vn.net/data_html/itlibrary/reference/library/0672309289/ch21.htm#Chapter14WhatIsSAPI

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈