您现在的位置:中国下载站学院中心网络编程Delphi教程Delphi实例教程 → 文章列表

在程序中加入英文朗读功能

作者:佚名  来源:不详  发布时间:2006-12-29 13:13:53   

减小字体 增大字体

 
 
金山词霸2000的奂文全文朗读功能相信一定给尝试过的用户留下了很深刻的印象,而作为一个程序设计者,你一定也想在自己的程序中加入类似的功能吧,因为那将让自己的程序增色不少。

其实这并不是一件困难的事,因为金山词霸实际上也只是直接使用了MS的TTS(Text-to-Speech)技术而已,通过对MS Speech API 的编程,我们完全可以实现比其更强大的功能。下面,让我们在Delphi环境下实际尝试一下。

首先从金山词霸的光盘上\ ciba目录下运行并安装mstts. Exe(MS TTs engine)和spchapi. Exe (MS Speech API).

再在Delphi 里新建一个application。

然后从Delphi的菜单Project/Import Type Library. . .中选击Add. . .,浏览到Windows目录下的Speech子目录里,打开vtxtauto. Tlb,可以看到下面Class names中会出现我们需要的接口的包装类的名字TVTxtAuto,注意对话框底部的Generate Component Wrapper需要被选中,点击Create Unit 就可以打开一个名为VtxtAuTo_TLB的Unit。

至此,我们就可以开始实际编程了。

首先在Form的OnCreate中对需要使用接口初始化并进行注册:

...

Procedure TfrmMain. FormCreate (Sender. Tobject); begin

FISpeech: = CoVTxtAuto_Create;

FISpeech. Register (“Demo Site’, ‘Demo App’); end;

...

由于Delphi对接口进行了良好的包装,因此,只需直接建立包装类,其他后台的操作如接口的查询、释放等交给Delphi在后台自动完成。

注意这里的Register操作是必不可少的,因为可能有多个程序不同设置使用TIS引擎。

然后在MainForm上放一个Tmemo和若干个Tbutton,并在其OnClick中加入对应的代码。

Form定义如下:

Object frmMain: TfrmMain

Left = 296

Top = 187

BorderStyle = bsDialog

Caption = ‘英文全文朗读演示’

ClientHeight = 185

ClientWidth = 456

Color = clBtnFace

Font. Charset = GB2312_CHARSET

Font. Color = clWindowText

Font. Height = -12

Font. Name = ‘宋体’

Font. Style = [ ]

OldCreateOrder = False

Position = poDesktopCenter

OnCreate = FormCreate

PixelsPerInch = 96

TexHeight = 12

Object memText: Tmemo

Left =8

Top = 8

Width = 361

Height = 169

ScrollBars = ssVertical

TabOrder = 0

End

Object btnRead: Tbutton

Left = 376

Top = 8

Width = 75

Height = 25

Caption = ‘朗读(&R)’

TabOrder = 1

OnClick = btnReadClick

End

Object btnPause: Tbutton

Left = 376

Top = 40

Width = 75

Height = 25

Caption = ‘暂停(&P)’

Enabled = False

TabOrder = 2

OnClick = btnPauseClick

End

Object btnStop: Tbutton

Left = 376

Top = 72

Width = 75

Height = 25

Caption = ‘停止(&S)’

Enabled = False

TabOrder = 3

OnClick = btnStopClick

End

Object btnForward: Tbrtton

Left = 376

Top = 120

Width = 75

Height = 25

Caption = ‘下一句(&N)’

Enabled = False

TabOrder =4

OnClick = btnForwardClick

End

Object btnRewind: Tbutton

Left = 376

Top = 152

Width = 75

Height = 25

Caption = ‘上一句(&W)’

Enabled = false

TabOrder = 5

OnClick = btnRewindClick

End

End

关键代码段如下:

1.朗读与停止

...

procedure TfrmMain. BtnReadClick (Sender: Tobject); begin

FISpeech. Speak (memText. Lines. Text, vtxtst_READING0;

BtnPause. Enabled : = True;

BtuStop. Enabled : = True;

End;

Procedure TfrmMain. BtnStopClicl (Sender: Tobject); begin

FISpeech. StopSpeaking;

BtnPause. Enabled : = False;

BtnStop. Enabled : = False;

BtnPause. Caption : = ‘暂停(&P)’;end;

...


itbulo.com/post.php?action=newthread&fid=51&extra=page%3D1" title="如有错误,麻烦请及时告诉我们,谢谢。" target="_blank">我要纠错】【itbulo.com/" target="_blank">进入论坛交流】【关闭此页】【iTbulo.net/" class="lblue" target="_blank">进入博客】

speak成员函数的第一个参数向TTS引擎传递需要朗读的文字,第二个参数由指定朗读时使用的语气和优先级的两个符号合并而成。

 

符号

意义

语气

 

vtxtst_STATEMENT

$00000001

平常说话的语气(缺省)

vtxtst_QUESTION

$00000002

提问的语气

vtxtst_COMMAND

$00000004

命令的语气

vtxtst_WARNING

$00000008

警告的语气

vtxtst_READING

$00000010

阅读文档时的语气

vtxtst_NUMBERS

$00000020

适合阅读数字的语气

vtxtst_SPREADSHEET

$00000040

适合阅读电子表格中元素的语气

优先级

vtxtsp_VERYHING

$00000080

立即读出,可打断正在读的内容

vtxtsp_HIGH

$00000100


在百度中搜索更多在程序中加入英文朗读功能相关网页 转贴于:中国下载站

  • 上一篇文章:如何在状态栏中加入图标(或图片),还有动态的时间
  • 下一篇文章:在Delphi中如何控制其它应用程序窗口
  • 阅读统计:[]
  • 中国下载站】【设为主页】【收藏本页】【打印本文】【回到顶部】【关闭此页

    相关文章
    文章评论(评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码


    设为首页 - 关于我们 - 广告服务 - 网站地图 - 加入收藏 - 网站声明 - 网站帮助 - 友情链接

    • Copyright (C) 2006-2008 www.cndownz.com All Rights Reserved.
      中国下载站 版权所有. 粤ICP备05141802号. 对本站有任何建议、意见或投诉,请来信:cndownzcom@yahoo.com.cn.
      喜欢中国下载站(cndownz.com),请把中国下载站(cndownz.com)告诉你QQ上的5位好友,多谢支持!