100分请教各位大哥:关于TTS(Text-to-Speech)的使用问题,内详

LoveDana 2001-12-12 03:31:28
如果引用Microsoft Direct Text-to-Speech,可以选择不同的语音角色,可是不能判断是否朗读是否结束。
其声明如下:
Dim MyTTS As ACTIVEVOICEPROJECTLib.DirectSS

如果引用VoiceText 1.0 Type Library,可以判断朗读是否结束,可是不能选择不同的语音角色。
其声明如下:
Dim vText As New VTxtAuto.VTxtAuto

请问,如何才能既选择不同的语音角色,又能判断是否朗读结束?
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveDana 2001-12-13
  • 打赏
  • 举报
回复
好的,我测试一下,先谢谢了!
TechnoFantasy 2001-12-13
  • 打赏
  • 举报
回复
TTS 5.1
EndStream事件判断是否结束朗读
Word事件判断读到什么位置
lianghu 2001-12-13
  • 打赏
  • 举报
回复
property OnEndStream: TSpVoiceEndStream read FOnEndStream write FOnEndStream;
lianghu 2001-12-13
  • 打赏
  • 举报
回复
在5.1中只有英语才可以选男女声,汉语就只有男声了。
至于确定是否结束我没研究过,我只知在5。1中有一个同步异步的区别,
待俺也去看看。
LoveDana 2001-12-13
  • 打赏
  • 举报
回复
to:lianghu(山人) 

我使用TTS 4.0,使用Select方法可以选择语音角色。
lianghu 2001-12-13
  • 打赏
  • 举报
回复
你用的是微软MsSpeech5.1吗?我在使用这个开发包时怎么没发现可以选择不同的语音角色?
TechnoFantasy 2001-12-13
  • 打赏
  • 举报
回复
如果是4.0
通过Microsoft Direct Text-to-Speech的AudioStop事件可以判断是否结束朗读:

Dim WithEvents MyTTS As ACTIVEVOICEPROJECTLib.DirectSS

Private Sub MyTTS_AudioStop(ByVal hi As Long, ByVal lo As Long)
Debug.Print "END"
End Sub
LoveDana 2001-12-13
  • 打赏
  • 举报
回复
to:lianghu(山人) & TechnoFantasy(www.applevb.com) 

我使用的是TTS4.0,VB6,上面的事件好像没有 :(
plusplus 2001-12-12
  • 打赏
  • 举报
回复
朗读结束的时候应该会发送消息给窗口的。
如果是在C语言中,也可能会调用用户所声明的一个接口的函数,这就是Sink接口函数。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧