Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

SpPhraseInfoBuilder RestorePhraseFromMemory method (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

Object: SpPhraseInfoBuilder

RestorePhraseFromMemory Method


The RestorePhraseFromMemory method recreates phrase information from a phrase that has been saved to memory.

The ISpeechPhraseInfo.SaveToMemory method saves phrase information as a Variant variable. RestorePhraseFromMemory method uses this variable to recreate an object based on ISpeechPhraseInfo.


SpPhraseInfoBuilder.RestorePhraseFromMemory(
     PhraseInMemory As Variant
) As ISpeechPhraseInfo

Parameters

PhraseInMemory
A Variant variable containing a phrase saved to memory.

Return Value

A ISpeechPhraseInfo object returning the phrase information.


Example

The following Visual Basic form code demonstrates storing and retrieving the phrase portion of a recognition result.

To run this code, paste it into the Declarations section of a form that contains no controls. In addition to the usual reference to the Microsoft Speech Object Library, this code also needs a reference to the simpleaudio 1.0 Type Library.


Option Explicit

Const AUDIOFORMAT = SAFT8kHz16BitMono

' Text-to-Speech variables:
Dim WithEvents Voice As SpVoice
Dim EndofStream As Boolean
Dim AudioPlugOut As SpAudioPlug

' Speech Recognition variables:
Dim WithEvents RecoContext As SpInProcRecoContext
Dim Grammar As ISpeechRecoGrammar
Dim Recognizer As SpInprocRecognizer
Dim AudioPlugIn As SpAudioPlug

Private Sub Form_Load()

    Const Text = "One of the world's seven wonders"
    Dim Output As Variant

    On Error GoTo EH

    Set Voice = New SpVoice

    ' Set up output audio:
    Set AudioPlugOut = New SpAudioPlug
    AudioPlugOut.Init True, AUDIOFORMAT
    Set Voice.AudioOutputStream = AudioPlugOut

    ' Set up input audio:
    Set AudioPlugIn = New SpAudioPlug
    AudioPlugIn.Init False, AUDIOFORMAT
    Set Recognizer = New SpInprocRecognizer
    Set Recognizer.AudioInputStream = AudioPlugIn

    ' Set up speech recognition:
    Set RecoContext = Recognizer.CreateRecoContext
    Set Grammar = RecoContext.CreateGrammar(1)
    Grammar.DictationLoad
    Grammar.DictationSetState SGDSActive

    ' Speak some text to be recognized.
    Voice.Speak Text, SVSFlagsAsync

    Do While EndofStream = False
        DoEvents

        ' Get audio data from audio object.
        Output = AudioPlugOut.GetData

        ' Output audio data to input audio object--
        If (Len(Output) * 2 <> 0) Then
            AudioPlugIn.SetData (Output)
        End If

    Loop

    Grammar.DictationSetState SGDSInactive

EH:
    If Err.Number Then ShowErrMsg
End Sub

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

    Const NL = vbNewLine
    Dim PhraseBuilder As Object
    Dim PhraseInfo As ISpeechPhraseInfo
    Dim thePhrase As Variant
    Dim T As String

    On Error GoTo EH

    ' Store the phrase first.
    thePhrase = Result.PhraseInfo.SaveToMemory

    ' Retrieve the phrase from memory and display it:
    Set PhraseBuilder = CreateObject("SAPI.SpPhraseInfoBuilder")
    Set PhraseInfo = PhraseBuilder.RestorePhraseFromMemory(thePhrase)
    MsgBox PhraseInfo.GetText, vbInformation

EH:
    If Err.Number Then ShowErrMsg
End Sub

Private Sub Voice_EndStream _
   (ByVal StreamNumber As Long, _
    ByVal StreamPosition As Variant)

    EndofStream = True

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
Show:
© 2015 Microsoft