本站文件搜索 :输入关键字,查找本站您所需要的文件! 本网站已经开通手机终端,手机访问http://www.dnjqxx.com 转至对应的WebApp域名。
当前位置:首页 > 电脑设计 > 电脑设计技巧 > 详细内容
用VB实现文本朗读功能
发布时间:2015-2-12  阅读次数:3344  字体大小: 【】 【】【

摘  要:本文通过两个实例,论述了如何在VB中通过MSTTS技术和SmartRead技术分别实现中、英文文本朗读的功能,对于设计人性化的界面提供了一种比较好的参考。


关键词:VB;MSTTS




一、利用MSTTS技术实现英语朗读功能


MSTTS(Microsoft Text-to-Speech)技术是微软推出的文本转换为语音的开发技术,利用该技术可以实现英语字句的朗读,并且可以调节朗读时的语气以及语速。下面我们分析如何在VB中通过MSTTS技术实现英语朗读功能。


首先需要安装MSTTS引擎。如果已经安装了金山词霸的话,那么该引擎已经被安装;如果没有安装金山词霸的话,可以在http://www.testsoft.net/mstts.exe下载mstts.exe并安装。


下面我们通过一个简单的实例,讨论一下VB中使用MSTTS技术的方法。


第一,打开VB6.0,新建一个标准工程,执行“工程”菜单中的“引用”菜单项,单击“浏览”按钮,打开系统目录Windows(对于windows 98)或者Winnt(对于windows 2000)目录下Speech子目录中的vtxtauto.tlb,则“Voice Text Object Library”引用被添加,如图一。



图一 添加引用




第二,在Form1中添加一个文本框Text1和一个命令按钮Command1,对这两个对象分别设置以下属性:


Text1的Text属性为hello world,MultiLine属性为True,ScrollBars属性为2;Command1的Caption属性为“朗读”,如图二。





图二 英文朗读界面设计


第三,编写如下代码:


Private Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long


Private Sub Form_Load()


   '通过API函数调用 , 判断系统是否安装有声卡以及声卡驱动程序


   Dim i As Integer


   i = waveOutGetNumDevs()


   If i <= 0 Then


 MsgBox "系统无声卡或未装声卡驱动程序,请安装好以后再试...", "错误提示"


   Unload Me


   Else


       '注册


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


   End If


End Sub




Private Sub Command1_Click()


   '开始朗读


   Call VTxtAuto.VTxtAuto.Speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)


End Sub


按F5启动应用程序,带上耳机,如果声卡工作正常,单击“朗读”按钮,你就会听到“hello world”的标准朗读,你也可以在文本框中输入一段英文,单击“朗读”按钮,同样可以听到该英文的朗读。


关于以上代码,说明如下:


1.      由于声卡是朗读的必备条件,因此首先调用waveOutGetNumDevs这个API,根据其返回值判断是否安装声卡,如果已安装的话,则通过Call VTxtAuto.VTxtAuto.Register(Space(10), Space(10))语句进行注册,否则就给出未安装声卡的错误提示信息。


2.    实现语句朗读的核心代码是:Call VTxtAuto.VTxtAuto.Speak(Trim(Text1.Text), vtxtsp_VERYHIGH + vtxtst_READING)。Speak函数的第一个参数向TTS引擎传递需要朗读的文字;第二参数则用来控制朗读时的语气和优先级,由两个常量相加组成。控制优先级的常量有:vtxtsp_HIGH,加入播放队列开始,尽快读出;vtxtsp_NORMAL,默认,加入播放队列末尾;vtxtsp_VERYHIGH,立即读出,可打断正在读的内容。控制语气的常量有:vtxtst_COMMAND,命令的语气;vtxtst_NUMBERS,阅读数字的语气;vtxtst_QUESTION,提问的语气;vtxtst_READING,阅读文档时的语气;vtxtst_SPREADSHEET,阅读电子表格中元素的语气;vtxtst_STATEMENT,平时说话时的语气,为默认值;vtxtst_WARNING,警告语气。


3.    可以通过StopSpeaking方法实现停止朗读,通过AudioPause实现暂停朗读以及通过AudioResume实现恢复朗读。具体实现代码如下:


               '停止朗读


               Call VTxtAuto.VTxtAuto.StopSpeaking


               '暂停或恢复朗读


               'IsSpeaking可以取得当前状态


               If VTxtAuto.VTxtAuto.IsSpeaking Then


                   Call VTxtAuto.VTxtAuto.AudioPause


               Else


                   Call VTxtAuto.VTxtAuto.AudioResume


               End If


   4、 除此以外,常用的方法还有:AudioFastForward和AudioRewind,分别可以实现向前和向后跳过一句朗读,而通过设置Speed属性的值可以控制朗读的语速,默认值为170。

 

1 2  下一页
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!


电脑技巧学习网站版权所有  地址:广州市海珠区
       本站部分有关软件和系统的内容和观点来自网络,不代表本站观点!特此公告!电脑技巧学习论坛,真诚欢迎热爱探讨电脑技巧的朋友加入电脑技巧学习论坛,将你的观点、见解和作品分享给网友们!电脑技巧网,提供计算机知识,电脑使用技巧,电脑基础知识,让电脑爱好者可以快速学到电脑知识!
 注意事项:电脑不要24小时通电,偶尔会遭遇雷雨天气。会损坏电脑。 


站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

 copyright 2000-2109  ( dnjqxx.com ) All rights reserved   粤ICP备18150927号
广告联系|版权声明|下载帮助|软件发布| 网站地图|

企业简介 |总裁致辞|成长历程|联系我们|组织机构|企业文化

网站统计