Visual Basic开发实例大全 (提高卷).doc
文本预览下载声明
( TTS开发
( 音频播放及录制
( 音频设备控制
1.1 TTS开发
实例001 ?语音识别程序
语音识别技术的发展和广泛应用,使用户与计算机的对话方式不再仅仅局限于使用键盘或鼠标发送指令的方式上。本实例通过调用微软公司提供的Speech SDK,实现对计算机的语音控制。运行本实例程序,单击“开始”按钮,对着麦克风说“录音机”,语音识别程序即做出响应,并调用操作系统自带的“录音机”程序。通过语音控制调用“录音机”程序的运行结果如图1.1所示。
图1.1 通过语音控制调用“录音机”程序
制作语音识别程序首先需要创建语音识别的语法环境,然后在该环境中创建用于语音识别的语法对象,并加载该语法对象所需的语音识别规则,最后激活语音识别对象。
激活语音识别对象后,语音识别对象的识别事件可以对计算机用户发出的声音做出响应,判断用户朗读的词汇并执行相应的操作。在本实例程序中所使用的关键技术如下。
(1)创建语音识别的语法环境。
使用Set语句创建SpSharedRecoContext类型对象,SpSharedRecoContext类型对象在SpeechLib命名空间内。创建代码如下:
Set RecoContext = New SpSharedRecoContext
(2)创建语音识别的语法对象。
创建语音识别语法对象通过使用SpSharedRecoContext类型对象的CreateGrammar()方法来实现,代码如下:
Set Grammar = RecoContext.CreateGrammar(1)
( 说明:上面代码中的参数1用于指定语法ID。语法ID可以识别每个语法对象。尽管每个语法对象只能有一个标识符,但语法ID设置值仍然可以是不唯一的,其默认值是0。CreateGrammar()方法返回的类型为ISpeechRecoGrammar。
(3)加载语音识别规则。
进行语音识别需要加载语音识别规则,规则的加载通过使用ISpeechRecoGrammar类型对象的DictationLoad()方法来实现。DictationLoad()方法的语法如下:
object.DictationLoad(TopicName ,LoadOption)
参数说明
object:ISpeechRecoGrammar类型对象。
TopicName:可选参数,类型为String,用于指定加载规则的题目。默认值是空字符串。
LoadOption:可选参数,类型为SpeechLoadOption,用于指定静态加载或动态加载方式,默认采用静态加载。
例如下面的代码采用默认参数值,以静态的形式加载规则。
Grammar.DictationLoad
(4)激活语音识别对象。
激活语音识别对象通过使用ISpeechRecoGrammar类型对象的DictationSetState()方法,将语音规则状态设置为SGDSActive实现,代码如下:
Grammar.DictationSetState SGDSActive
(5)停止语音识别对象。
停止语音识别对象通过使用ISpeechRecoGrammar类型对象的DictationSetState()方法,将语音规则状态设置为SGDSInactive实现,代码如下:
Grammar.DictationSetState SGDSInactive
(1)创建VB(Visual Basic)工程,并引用Microsoft Speech Object Library类库。引用步骤为:在VB开发环境中,选择“工程”/“引用”命令,在弹出的“引用”对话框中选中Microsoft Speech Object Library复选框,如图1.2所示,单击“确定”按钮添加。
图1.2 引用Microsoft Speech Object Library类库
(2)在工程中的默认窗体Form1上添加3个CommandButton控件,分别命名为Cmd_Start、Cmd_Stop和Cmd_Close,其Caption属性分别设置为“开始”、“停止”和“关闭”。
(3)在窗体上添加一个PictureBox控件,命名为Pic_Frame。
(4)在窗体上添加一个TextBox控件,命名为Txt_Show,其MultiLine 属性为True。
(5)编写主要程序代码。
① 开始语音识别,代码如下:
Private Sub Cmd_Start_Click ()
If (RecoContext Is Nothing) Then 当不存在语音识别语法环境时
Set RecoContext = New SpSharedRecoContext 创建语音识别语法环境
Set Gramma
显示全部