“VB+TTS”编写英语朗读练习软件

2009-09-05 04:10王祥青
中国教育信息化·基础教育 2009年7期
关键词:英语阅读教学

王祥青

摘要:为解决农村中学英语的阅读教学受教师发音不准而效果一直不佳的难题,笔者在VB编程中使用了TTS技术,实现了英语的流利朗读,极大提高了英语阅读教学的效率。

关键词:VB;TTS;英语阅读教学

中图分类号:TP319文献标识码:B 文章编号:1673-8454(2009)14-0061-02

长期以来,农村中学英语的阅读教学,由于受教师发音不够标准的限制一直效果不佳。为破解这一难题,本人在VB编程中使用TTS技术,轻而易举实现了英语的流利朗读,并能自由调节朗读的速度与效率,极大的提高了英语阅读教学的效率。

那么TTS是什么呢?其实,TTS是微软出品的一套文字朗读引擎(Text-To-SpeechEngine),在VB编程中调用TTS实现英语的朗读。

下面以VB6.0为例详解具体的实现过程。

一、TTS引擎安装

TTS引擎所需的Microsoft Text-To-SpeechEngine与Microsoft Speech API软件既可以到微软的站点下载,也可以在“金山词霸.net”的安装光盘上找到(文件名为MSTTS.EXE与SPCHAPI.EXE)。安装了TTS引擎后,在WINDOWS所在文件夹下会生成一个SPEECH子文件夹,其中有一个Vtxtauto.tlb文件,在编程时要调用它。

二、在VB中引入Vtxtauto.tlb文件

进入VB6.0,执行菜单命令“文件/新建工程/标准EXE”并确定,然后执行菜单“工程”中的“引用”,单击“浏览”按钮到WINDOWS文件夹下的SPEECH子文件夹,打开Vtxtauto.tlb文件,则“VoiceText1.0 Type Library”被添加到引用列表中,选中它并单击确定。将库Vtxtauto引入VB后,可以通过菜单“视图”中的“对象浏览器”来了解它所封装的类,以及了解各类的成员函数与属性的意义与使用格式等信息。一些主要的方法与属性将在下面的源程序中给予注释,故在此不详细列出。

三、在窗体FORM1上放置所需控件并设置主要属性

在FORM1上添加三种Label控件,一个TextBox控件,一个HscrollBar控件,六个CommandButton控件。窗体及各控件的主要属性如下:

FORM1:Caption=“英文朗读”

LABEL1:Caption=“请输入英文文档”

LABEL2:Caption=“朗读速度”

LABEL3:Caption=“”

(LABEL3标签用来显示朗读速度值)

TEXT1:Text=“PleaseinputEnglishtext”,ToolTipText=“请输入或粘贴英文文档”,MultiLine=True,ScrollBars=3 – Both.

HSCROLL1:名称=SpeedChange ,Min=90 ,Max=300

(Min与Max属性值分别用来限定可调节的语速的最小值与最大值)

COMMAND1:名称=read,Caption=“朗读”

COMMAND2:名称=pause,Caption=“暂停”

COMMAND3:名称=stop,Caption=“停止”

COMMAND4:名称=prev,Caption=“上一句”

COMMAND5:名称=next,Caption=“下一句”

COMMAND6:名称=quit,Caption=“退出”

四、代码编写

在窗体装载时调用Register方法注册,括号内的两个参数是字符串,可以随便填。

Private Sub Form_Load( )

Call VTxtAuto. VTxtAuto. Register(Space(8),Space(8),)

因为语速的默认值为170,故水平滚动条的初值也设为170

SpeedChange. Value=170

End Sub

设置朗读速度调节代码,当水平滚动条的值Value发生变化时将其赋给控制语速的Speed属性Private Sub SpeedChange_Change( )

VTxtAuto. VTxtAuto. Speed= SpeedChange. Value Label3.Caption= SpeedChange. Value

End Sub

设置“朗读”按钮代码

Private Sub read_Click( )

如果朗读出错,则转到出错处理标记模块ErrorHandler

On Error GoTo ErrorHandler

调用方法Speak进行朗读,第一个参数是要朗读的文本,第二个参数是设置朗读风格

CallVTxtAuto. VTxtAuto.speak(Trim(Text1.Text),

vtxtsp_VERYHIGH+vtxtst_READING)

Exit Sub

ErrorHandler:

MsgBox”只能朗读英文文档,不能朗读汉字符号!”,,”出错信息”

End Sub

设置“暂停”按钮代码

Private Sub pause_Click( )

If VTxtAuto. VTxtAuto.IsSpeaking Then

如果属性IsSpeaking为真,则表示正在朗读,调用AudioPause方法暂停朗读

Call VTxtAuto. VTxtAuto. AudioPause

Pause. Caption=“恢复”

Else

如果已经处于暂停状态则调用AudioResume方法恢复朗读

Call VTxtAuto. VTxtAuto. AudioResume

Pause. Caption=“暂停”

End If

End Sub

设置“停止”按钮代码,调用Stop Speaking方法停止当前朗读

Private Sub stop_Click( )

Call VTxtAuto. VTxtAuto. Stop Speaking

End Sub

设置“上一句”按钮代码,调用AudioRewind方法往后跳过一句

Private Sub prev_Click( )

Call VTxtAuto. VTxtAuto. AudioRewind

End Sub

设置“下一句”按钮代码,调用AudioFastForward方法向前跳过一句

Private Sub next_Click( )

Call VTxtAuto. VTxtAuto. AudioFastForward

End Sub

设置“退出”按钮代码

Private Sub quit_Click( )

Unload Me

End Sub

说明:本程序在中文WINDOWS操作平台,VB6.0环境下运行通过。运行时在文本编辑框中输入或粘贴英文文档,然后单击“朗读”按钮就可播放读音。这样,不管在课上还是在课下,不管有无教师,学生只要打开电脑运行程序即可进行朗读练习,从而避免了因教师发音障碍带来的不便,极大地提高了英语阅读教学的效率!

五、程序改进思想

对于精于VB编程的电脑爱好者来说可对本程序作一些改进,例如增加从文本文件或数据库中读取文档的功能,增加让用户选择朗读的优先级、发声语气类型、发声音量调节功能。当然,这些功能实现起来稍为复杂一些,有兴趣的爱好者可以自行探索一下。

(编辑:刘轩)

猜你喜欢
英语阅读教学
探析普通私立高中生英语阅读学习困境及对策
基于“核心素养”理念的初中英语阅读教学的实践探索
“活动单导学”模式在五年制高职英语阅读教学中的运用
抛锚式教学法在初中英语阅读课中的应用