2017-08-25 8 views
1

Récemment, j'ai essayé de créer un chatbot pour l'école, et l'une des caractéristiques que je voulais était la reconnaissance vocale. Malheureusement, en raison de la nature obsolète de VB6, il existe très peu de tutoriels sur l'utilisation de SAPI pour la reconnaissance vocale avec VB6, et aucun pour activer la diction libre (simplement sans grammaire et conversion de la parole en texte).Comment activer la reconnaissance vocale diction libre dans VB6 en utilisant SAPI

+0

Vous utilisez Microsoft Speech API (SAPI) 5.4 qui fait partie du SDK Microsoft Windows pour Windows 7? –

+0

@PedroPolonia Oui –

Répondre

1

Automation Interfaces and Objects (SAPI 5.4) a la documentation.

exemple Trivial:

Option Explicit 

'See "Automation Interfaces and Objects (SAPI 5.4)" at MSDN. 

Private WithEvents RC As SpeechLib.SpInProcRecoContext 
Private RG As SpeechLib.ISpeechRecoGrammar 

Private Sub Form_Load() 
    With New SpeechLib.SpInprocRecognizer 
     Set RC = .CreateRecoContext() 
     Set .AudioInput = .GetAudioInputs().Item(0) 
    End With 
    With RC 
     .EventInterests = SRERecognition Or SREFalseRecognition 
     Set RG = .CreateGrammar() 
    End With 
    RG.DictationSetState SGDSActive 
End Sub 

Private Sub Form_Resize() 
    If WindowState <> vbMinimized Then 
     Text1.Move 0, 0, ScaleWidth, ScaleHeight 
    End If 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
    RG.DictationSetState SGDSInactive 
End Sub 

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

    With Text1 
     .SelStart = &H7FFF 
     .SelText = "False Rec: " 
     .SelText = Result.PhraseInfo.GetText() 
     .SelText = vbNewLine 
    End With 
End Sub 

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

    With Text1 
     .SelStart = &H7FFF 
     .SelText = "Rec: " 
     .SelText = Result.PhraseInfo.GetText() 
     .SelText = vbNewLine 
    End With 
End Sub