社区
Delphi
帖子详情
关于如何设置TTS系列控件朗读中文的问题?
rwdx
2002-07-29 03:55:54
如何设置?可有相关质料?
...全文
284
9
打赏
收藏
关于如何设置TTS系列控件朗读中文的问题?
如何设置?可有相关质料?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gxzxy
2002-11-21
打赏
举报
回复
hjd_cw() ,我也想要这个例子,发一个给我,谢谢
zxylbwm@163.com
netseek
2002-09-22
打赏
举报
回复
有一个免费软件叫文本朗读精灵,同时提供一个开发包,简化了Speech开发过程。有兴趣给一个网址
http://www.cnetseek.com/gb/smartread/index.html
My_first
2002-09-16
打赏
举报
回复
先下到ms的网站下载sdk5.1,我发一个给你。
u2m
2002-09-16
打赏
举报
回复
hjd_cw() ,我也想要这个例子,发一个给我,谢谢
bestfeng@263.net
cynwhm
2002-09-16
打赏
举报
回复
我也需要朗读中文的,cynwhm@sohu.com.
rwdx
2002-07-31
打赏
举报
回复
up
rwdx
2002-07-29
打赏
举报
回复
我需要朗读中文的,rwdx@163.net,谢谢!
stiwin
2002-07-29
打赏
举报
回复
---- 金 山 词 霸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 操 作 是 必 不 可 少 的, 因 为 可 能 有 多 个 程 序 不 同 设 置 使 用TTS 引 擎。
----然 后 在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
TextHeight = 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: TButton
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_
READING);
btnPause.Enabled := True;
btnStop.Enabled := True;
end;
procedure TfrmMain.btnStopClick(Sender: TObject);
begin
FISpeech.StopSpeaking;
btnPause.Enabled := False;
btnStop.Enabled := False;
btnPause.Caption := ‘ 暂 停( &P)';
end;
...
----Speak 成 员 函 数 的 第 一 个 参 数 向TTS 引 擎 传 递 需 要 朗 读 的 文 字, 第 二 个 参 数 由 指 定 朗 读 时 使 用 的 语 气 和 优 先 级 的 两 个 符 号 合 并 而 成。
---- 2. 暂 停 与 恢 复
...
procedure TfrmMain.btnPauseClick(Sender: TObject);
begin
with FISpeech do
if IsSpeaking then
begin
AudioPause;
btnPause.Caption := ‘ 恢 复( &R)';
end
else
begin
AudioResume;
btnPause.Caption := ‘ 暂 停( &P)';
end;
end;
...
----这 里 通 过IsSpeaking 属 性 可 以 取 得 当 前 状 态, 然 后 通 过AudioPause 和AudioResume 暂 停 和 恢 复 朗 读。
----另 外 用 成 员 函 数AudioFastForward 和AudioRewind 可 以 向 前 和 后 跳 过 一 句 朗 读, 通 过 读 写Speed 属 性 还 可 以 取 得 或 设 置 朗 读 的 语 速, 单 位 是 字/ 分, 缺 省 值 为170。
----注 意Speed 和Enabled 属 性 缺 省 设 置 是 只 写 的, 但 实 际 上IVTxtAuto 提 供 了Get_Speed 和Get_Enabled 函 数, 所 以 我 们 只 要 把VTxtAuto_TLB 单 元 中 的 声 明 修 改 一 下, 如:
...
IVTxtAuto = interface(IDispatch)
...
property Speed: Integer read Get_Speed write Set_Speed;
property Enabled: Integer read Get_Enabled write Set_Enabled;
...
end;
...
----即 可 正 常 使 用Speed 和Enabled 属 性 了。
----至 此, 一 个 简 单 的 英 文 全 文 朗 读 器 就 完 成 了, 有 兴 趣 的 朋 友 可 以 为 其 加 入 监 视 剪 贴 板, 热 键 激 活 等 功 能。
hjd_cw
2002-07-29
打赏
举报
回复
我有个控件和例子,留e-mail,我发过来。
TTS
语音
朗读
程序(源码+程序)
delphi中开发需要先导入
TTS
的ActiveX
控件
, 方法如下:在Delphi开发界面的Project菜单下Import Type Library, 对话框里会有一个 Micosoft Speech Object Library ...
朗读
中文
需要例如NeoSpeech.
TTS
系列
等的
中文
语音库.
TTS
语音
朗读
软件
总结来说,"
TTS
语音
朗读
软件"是一款基于MFC和微软
TTS
API开发的应用程序,它充分利用了这两者的优势,实现了文本的便捷
朗读
和个性化
设置
。通过理解MFC的编程原理和
TTS
API的功能,我们可以更好地掌握此类软件的开发...
VB6使用
TTS
实现文本
朗读
语音播报的源码,附
TTS
插件
本文将深入探讨如何在VB6中使用
TTS
(Text-to-Speech,文本转语音)技术来实现文本
朗读
和语音播报功能,以及如何利用提供的
TTS
插件进行集成。
TTS
技术是一种将文字转化为可听见的语音的技术,它允许计算机读出屏幕上...
vb6_
TTS
语音
朗读
sdk自动选
中文
语音库.zip
本项目"vb6_
TTS
语音
朗读
sdk自动选
中文
语音库.zip"就是利用VB6结合
TTS
技术,实现了一个能够自动选择
中文
语音库的语音
朗读
SDK。 SAPI(Speech Application Programming Interface)是由微软提供的一个接口,使得...
Delphi7
tts
.rar_Delphi
TTS
下载_Delphi7语音
控件
_delphi7
TTS
_delphi7 spV
Delphi7中英文语音
朗读
程序,含
控件
及源码、执行程序,需要安装安装Microsoft Speech SDK 5.1。
Delphi
5,939
社区成员
262,944
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章