SpeechRecoContext RecognizerStateChange Event

Microsoft Speech SDK

Intelligent Interface Technologies Home Page Microsoft Speech SDK

Speech Automation 5.1

Interface: ISpeechRecoContext Events

RecognizerStateChange Event


The RecognizerStateChange event occurs when the SR engine changes state.

SpeechRecoContext.RecognizerStateChange(
     StreamNumber As Long,
     StreamPosition As Variant,
     NewState As SpeechRecognizerState
)

Parameters

StreamNumber
Specifies the stream number.
StreamPosition
Specifies the position within the stream.
NewState
A SpeechRecognizerState constant specifying the new state of the speech recognition (SR) engine.

Example

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