2017-08-25 40 views
1

最近、私は学校用のチャットボックスを作成しようとしていました。残念なことに、VB6の非難された性質のため、VB6での音声認識にSAPIを使用する上でのチュートリアルはほとんどなく、自由な言葉遣いを可能にするためのチュートリアルはほとんどありません。SAPIを使用してVB6でフリー・ディクテーションの音声認識を有効にする方法

+0

は、Windows 7用のMicrosoft Windows SDKの一部であるマイクロソフト音声API(SAPI)5.4を使用していますか? –

+0

@PedroPoloniaはい –

答えて

1

Automation Interfaces and Objects (SAPI 5.4)です。

簡単な例:

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