ISpeechRecoGrammar DictationUnload method (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

Interface: ISpeechRecoGrammar

DictationUnload Method

The DictationUnload method unloads the active dictation topic from the grammar.




Return Value



The following Visual Basic form code demonstrates the use of the DictationLoad, DictationSetState, and DictationUnload methods. It creates a grammar, configures the grammar to perform both dictation and command and control (C and C) recognition, and toggles between the two types of recognition.

To run this code, create a form with the following control:

  • A command button called Command1

Paste this code into the Declarations section of the form.

The Form_Load procedure creates a grammar object, associates it with the system dictation lexicon and the Solitaire C and C grammar, and begins recognition in dictation mode. The Command1_Click procedure toggles the recognition mode between dictation and C and C. The Form_Unload procedure unloads the dictation grammar and deactivates the C and C grammar.

Option Explicit

Dim MyRecoContext As SpeechLib.SpSharedRecoContext
Dim MyGrammar As SpeechLib.ISpeechRecoGrammar

Private Sub Command1_Click()
    On Error GoTo EH

    If Command1.Caption = "&Dictation;" Then
        MyGrammar.CmdSetRuleIdState 0, SGDSInactive     'C&C; off
        MyGrammar.DictationSetState SGDSActive          'Dictation on
        Command1.Caption = "&C; and C"
        MyGrammar.DictationSetState SGDSInactive        'Dictation off
        MyGrammar.CmdSetRuleIdState 0, SGDSInactive     'C&C; on
        Command1.Caption = "&Dictation;"
    End If

    If Err.Number Then ShowErrMsg
End Sub

Private Sub Form_Load()
    On Error GoTo EH

    'Create a RecoContext and its Grammar
    Set MyRecoContext = New SpSharedRecoContext
    Set MyGrammar = MyRecoContext.CreateGrammar

    'Get dictation grammar and set it inactive
    MyGrammar.DictationLoad "", SLOStatic
    MyGrammar.DictationSetState SGDSInactive

    'Get Command & Control grammar, and set it inactive
    MyGrammar.CmdLoadFromFile "C:\SOL.XML", SLOStatic
    MyGrammar.CmdSetRuleIdState 0, SGDSInactive

    'Set dictation active and set up Command1.Caption
    MyGrammar.DictationSetState SGDSActive
    Command1.Caption = "&C; and C"

    If Err.Number Then ShowErrMsg
End Sub

Private Sub Form_Unload(Cancel As Integer)
    On Error GoTo EH

    MyGrammar.CmdSetRuleIdState 0, SGDSInactive

    If Err.Number Then ShowErrMsg
End Sub

Private Sub ShowErrMsg()

    ' Declare identifier:
    Dim T As String

    T = "Desc: " & Err.Description & vbNewLine
    T = T & "Err #: " & Err.Number
    MsgBox T, vbExclamation, "Run-Time Error"

End Sub