SpeechRecognizer GetFormat Method (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

Interface: ISpeechRecognizer

GetFormat Method

The GetFormat method returns the current input audio format.

The sound format may be different at different times or at different points during processing. For example, the audio format at the time the input reaches the sound device (the audio card for instance) may differ from the audio format by the time it reaches the speech recognition (SR) engine. GetFormat specifies which location should be polled and returns the audio format for that location.

     Type As SpeechFormatType
) As SpAudioFormat


Request for the audio format at entering the sound device or SR engine.

Return Value

The GetFormat method returns an SpAudioFormat variable.


This code example demonstrates the GetFormat method. After a successful recognition, two GetFormat calls poll SAPI for the audio formats of the sound device and the SR engine and display the results in a message box.

To run this code, create a form without any controls. Paste this code into the Declarations section of the form.

Option Explicit

Public WithEvents RC As SpSharedRecoContext
Public myGrammar As ISpeechRecoGrammar

Private Sub Form_Load()
    On Error GoTo EH

    Set RC = New SpSharedRecoContext
    Set myGrammar = RC.CreateGrammar
    myGrammar.DictationSetState SGDSActive
    RC.Recognizer.EmulateRecognition ("We the people")

    If Err.Number Then ShowErrMsg
End Sub

Private Sub RC_Recognition _
   (ByVal StreamNumber As Long, _
    ByVal StreamPosition As Variant, _
    ByVal RecognitionType As SpeechLib.SpeechRecognitionType, _
    ByVal Result As SpeechLib.ISpeechRecoResult)

    On Error GoTo EH

    Const NL = vbNewLine
    Dim audioFormat As SpAudioFormat
    Dim T As String

    T = "Text recognized: " & Result.PhraseInfo.GetText & NL

    Set audioFormat = RC.Recognizer.GetFormat(SFTInput)
    T = T & "Audio input type: " & audioFormat.Type & NL

    Set audioFormat = RC.Recognizer.GetFormat(SFTSREngine)
    T = T & "SR engine input type: " & audioFormat.Type
    MsgBox T, vbInformation

    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