SpAudioFormat Type Property (SAPI 5.3)
Microsoft Speech API 5.3
Object: SpAudioFormat
Type Property
The Type property gets and sets the speech audio format as a SpeechAudioFormatType.
Most applications using standard audio formats should use Type to set and retrieve formats.
Syntax
Set: | SpAudioFormat.Type = SpeechAudioFormatType |
Get: | SpeechAudioFormatType = SpAudioFormat.Type |
Parts
- SpAudioFormat
The owning object. - SpeechAudioFormatType
Set: A SpeechAudioFormatType object that sets the property.
Get: A SpeechAudioFormatType object that gets the property.
Example
The following Visual Basic form code demonstrates the use of the Type and Guid properties. To run this code, create a form with the following controls:
- Two command buttons called Command1 and Command2
Paste this code into the Declarations section of the form.
The Command1 procedure creates a token category object and sets it to the category of audio inputs, selects a token for the first MMSys resource, and instantiates an SpMMAudioIn object with the token's CreateInstance method. The code then creates an SpAudioFormat object from the SpMMAudioIn object, and changes the Type property of the SpAudioFormat object. Finally, the code sets the Format property of the SpMMAudioIn object with the SpAudioFormat object.
The Command2 procedure performs the same series of operations with audio outputs instead of audio inputs.
Option Explicit
Dim C As SpeechLib.SpObjectTokenCategory
Dim T As SpeechLib.SpObjectToken
Dim I As SpeechLib.SpMMAudioIn
Dim O As SpeechLib.SpMMAudioOut
Dim F As SpeechLib.SpAudioFormat
Private Sub Command1_Click()
On Error GoTo EH
Debug.Print
Debug.Print "MMSys AudioIn"
Debug.Print
'Set category object to audio input resources
Set C = New SpObjectTokenCategory
C.SetId SpeechCategoryAudioIn
'Set token object to first MMSys input resource
Set T = C.EnumerateTokens("Technology=MMSys").Item(0)
Debug.Print "First device: " & T.GetDescription
'Create an SpMMAudioIn object from the token,
'and show some of its properties
Set I = T.CreateInstance()
Debug.Print "DeviceId: " & I.DeviceId
Debug.Print "original Audio Format:" & I.Format.Type
'Create an Audio Format object from resource
'If Audio Format's Type is standard, then change it
Set F = I.Format
If F.Type = SAFT22kHz16BitMono Then
F.Type = SAFT11kHz16BitMono
End If
'Set Audioinput's format with changed format object
Set I.Format = F
Debug.Print " changed Audio Format:" & I.Format.Type
Debug.Print "Guid:" & F.Guid
EH:
If Err.Number Then ShowErrMsg
End Sub
Private Sub Command2_Click()
On Error GoTo EH
Debug.Print
Debug.Print "MMSys AudioOut"
Debug.Print
Set C = New SpObjectTokenCategory
C.SetId SpeechCategoryAudioOut
Set T = C.EnumerateTokens("Technology=MMSys").Item(0)
Debug.Print "First device: " & T.GetDescription
Set O = T.CreateInstance()
Debug.Print "DeviceId: " & O.DeviceId
Debug.Print "original Audio Format:" & O.Format.Type
Set F = O.Format
If F.Type = SAFT22kHz16BitMono Then
F.Type = SAFT11kHz16BitMono
End If
Set O.Format = F
Debug.Print " changed Audio Format:" & O.Format.Type
Debug.Print "Guid:" & F.Guid
EH:
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
End Sub