今天学习了刘金玉老师零基础VB教程的第45期,学习的主要内容如何开发一款语音闹钟。
1.使用文字转换语音(TTS),原理是利用Windows系统开发的一个插件,通过调用插件实现语音功能。
2.补充知识点:
①调用SAPI.SpVoice,这是一个com对象,com对象有哪些呢?使用注册表可以查看,在开始运行栏输入REGEDIT可以调出注册表,通过注册表我们可以看到许多com对象。
②CreateObject函数,用来创建com对象,创建的对象需要用set关键字调用。
3.案例:开发一个语音闹钟
①如图新建窗体和控件
![3bd54e897051e54f93de767d6d4a6e47.png](https://i-blog.csdnimg.cn/blog_migrate/61b473f95aef03ac3dcffa46ccea23d8.jpeg)
②代码:Private Sub Command1_Click()
![725d7d0ff624bd57396ad4130de9c3be.png](https://i-blog.csdnimg.cn/blog_migrate/a4495e403c91f6d8a0a1b52ff405bd24.jpeg)
Text2(0).Enabled = False
Text2(1).Enabled = False
Text1.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Text2(0).Enabled = True
Text2(1).Enabled = True
Text1.Enabled = True
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
Text2(0).Text = DateAdd("s", 5, Now)
Text2(1).Text = DateAdd("h", 1, Now)
End Sub
Private Sub Timer1_Timer()
Label2.Caption = "现在是北京时间:" & Now
Dim i%
For i = 0 To Text2.UBound Step 1
If Text2(i).Text = CStr(Now) Then
Dim o As Object
Set o = CreateObject("SAPI.SpVoice")
o.speak (Text1.Text)
End If
Next i
End Sub
③运行:
由于我的Windows7系统是精简版没有装文本转语音的功能,所以看不到效果,有这个功能的朋友可以用复制代码试试效果。
![fba28114e3dddd369ec57cb529c70068.png](https://i-blog.csdnimg.cn/blog_migrate/2f622f34ba86a9e31df10c93b18287fd.jpeg)