SpeechRecoContext RecognizerStateChange Event (SAPI 5.4)
Interface: ISpeechRecoContext Events
The RecognizerStateChange event occurs when the SR engine changes state.
SpeechRecoContext.RecognizerStateChange( StreamNumber As Long, StreamPosition As Variant, NewState As SpeechRecognizerState )
- Specifies the stream number.
- Specifies the position within the stream.
- A SpeechRecognizerState constant specifying the new state of the speech recognition (SR) engine.
The following Visual Basic form code demonstrates the use of the RecognizerStateChange event. The application displays the recognition text but also has a button to control the SR engine's state (also called the recognizer). Click this button to toggle the recognizer state between Active and Inactive. The application also beeps after a state change.
To run this code, create a form with the following controls:
- A command button called Command1
- A label called Label1
Paste this code into the Declarations section of the form.
The Form_Load procedure creates and activates a dictation grammar.
Public WithEvents RC As SpSharedRecoContext Public myGrammar As ISpeechRecoGrammar Private Sub Command1_Click() If RC.Recognizer.State = SRSActive Then RC.Recognizer.State = SRSInactive Command1.Caption = "SRSInactive" Else RC.Recognizer.State = SRSActive Command1.Caption = "SRSActive" End If End Sub Private Sub Form_Load() Set RC = New SpSharedRecoContext Set myGrammar = RC.CreateGrammar myGrammar.DictationSetState SGDSActive Command1.Caption = "SRSActive" End Sub Private Sub RC_Recognition(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal Result As SpeechLib.ISpeechRecoResult) Label1.Caption = Result.PhraseInfo.GetText End Sub Private Sub RC_RecognizerStateChange(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, ByVal NewState As SpeechLib.SpeechRecognizerState) Beep End Sub