SpeechRecognizer DisplayUI Method (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

Interface: ISpeechRecognizer

DisplayUI Method

The DisplayUI method initiates the display of the specified UI.

The speech recognition (SR) and text-to-speech (TTS) engines are capable of displaying and running various user interfaces (UI). These displays assist with different aspects of the speech environment:

  • User training
  • Microphone training wizards
  • Adding and removing words
  • Setting controls for the engine

Many of these UIs are available using Speech properties in Control Panel. In addition, engines are capable of requesting specific UIs be run to improve a situation. For example, the SR could request more user training if the recognitions are consistently poor.

Engines are not required to support UIs and not all engines will have the same UIs. Consult the manufacturer's engine documentation for specific details. An application may call ISpeechRecognizer.IsUISupported before attempting to invoke a particular UI to see if the engine supports it. Invoking unsupported UIs will cause a run-time error. If the UI is available, use ISpeechRecognizer.DisplayUI to invoke the display.

     hWndParent As Long,
     Title As String,
     TypeOfUI As String,
     [ExtraData As Variant = Nothing]


Specifies the window handle of the owning window.
Specifies the caption used for the UI window.
A String specifying the name of the UI to display. For a list of available SAPI 5 UI, see Engine User Interfaces.
[Optional] Specifies the ExtraData. This information is unique to the application and may be used to provide additional or more specific information to the UI. By default, the Nothing value is used and indicates the UI does not use any additional information provided by this method.

Return Value



See ISpeechRecognizer.IsUISupported and ISpeechRecoContext.RequestUI for additional information.


The following Visual Basic form code demonstrates the use of the DisplayUI event. The application runs the training wizard, the same one available using Speech properties in Control Panel.

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.

Option Explicit

Dim RC As SpSharedRecoContext

Private Sub Command1_Click()
    On Error GoTo EH

    Const Title = "My App's Additional Training"
    Dim SpRecog As ISpeechRecognizer
    Set SpRecog = RC.Recognizer

    SpRecog.DisplayUI Form1.hWnd, Title, SpeechUserTraining, ""

    If Err.Number Then ShowErrMsg
End Sub

Private Sub Form_Load()
    On Error GoTo EH

    Dim myGrammar As ISpeechRecoGrammar
    Set RC = New SpSharedRecoContext
    Set myGrammar = RC.CreateGrammar
    myGrammar.DictationSetState SGDSActive

    If Err.Number Then ShowErrMsg
End Sub

Private Sub ShowErrMsg()

    ' Declare identifiers:
    Dim T As String

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

End Sub