IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

di il
11 risposte

IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

Buongiorno, volevo provare ad implementare in un piccolo applicaticvo che ho creato il riconoscimento vocale.

Ho cercato in giro in rete e ho capito che delvo aggiungere sapi.dll e sono riuscito con un paio di comandi a far funzionare il lettore vocale che legge un mio testo

Il problema nasce invece quando vorei utilizzare il riconoscimento vocale per creare un input.

ho trovato alcuni codici e zero documentazione con dichiarazioni che quando provo a lanciare mi danno errore e non essendo molto esperto mi pianto

il codie che ho utilizzato è questo

Dim WithEvents SpeechRecognizer As SpeechRecognizer
Dim WithEvents SpeechRecognitionContext As SpeechRecognitionContext
Dim WithEvents SpeechGrammar As SpeechGrammar
Dim WithEvents SpeechResult As SpeechRecognitionResult

'Inizializzazione del riconoscimento vocale
Private Sub AvviaRiconoscimentoVocale()
   Set SpeechRecognizer = New SpeechRecognizer
   Set SpeechRecognitionContext = SpeechRecognizer.CreateSpeechRecognitionContext
   Set SpeechGrammar = SpeechRecognitionContext.CreateGrammar
   SpeechGrammar.Dictation = True 'Consente di riconoscere la parola intera
   SpeechRecognizer.Enabled = True
   MsgBox "Inizia a parlare!"
End Sub

'Event handler per il riconoscimento del testo
Private Sub SpeechRecognitionContext_SpeechRecognized(ByVal Result As SpeechRecognitionResult)
   MsgBox "Hai detto: " & Result.Text
End Sub

'Interrompi il riconoscimento vocale
Private Sub InterrompiRiconoscimentoVocale()
   SpeechRecognizer.Enabled = False
   Set SpeechRecognizer = Nothing
   Set SpeechRecognitionContext = Nothing
   Set SpeechGrammar = Nothing
   MsgBox "Riconoscimento vocale interrotto."
End Sub

Lanciandolo già sulla prima riga di codice Dim WithEvents SpeechRecognizer As SpeechRecognizer  da errore dicendo tipo non definito da utente

spero di non aver fatto troppa confusione e di essere stati abbastanza chiaro

se qualcuno ha qualche dritta da darmi sull'argomento sara' ben accetta

11 Risposte

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Ciao, 

    ma richiede il riferimento alla Microsoft Speech Object Library ? 

    Qui ho trovato della documentazione, non so se fa al caso tu... da approfondire

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Ho provato a vedere se riuscivo a capirci qualcosa ma con questo codice

    Dim WithEvents RecoContext As SpSharedRecoContext
    Dim grammar As ISpeechRecoGrammar

    Private Sub Comando3_Click()
       Dim strText As String
       strText = Result.PhraseInfo.GetText
       Me.TESTO = strText
    End Sub

    Private Sub Form_Activate()
       If (RecoContext Is Nothing) Then
           Set RecoContext = New SpSharedRecoContext
           Set grammar = RecoContext.CreateGrammar(1)
          grammar.DictationLoad
       End If
      Me.TESTO = "Recognition Started"
      grammar.DictationSetState (SpeechRuleState.SGDSActive)
    End Sub

    sull'istruzione  Set RecoContext = New SpSharedRecoContext mi da un errore di automazione

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Comincia a leggere da qui

    https://medium.com/@FordeMike/vba-speech-recognition-sapi-stt-5bd5cbad49f9

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    24/02/2025 - oregon ha scritto:

    Comincia a leggere da qui

    https://medium.com/@FordeMike/vba-speech-recognition-sapi-stt-5bd5cbad49f9

    e' lo stesso link dell'amico precedente ....

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Non l'ho notato ma vuol dire che va bene. Lo hai seguito passo passo?

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Si ma cove hai visto sopra con il codice che ho postalo la seconda volta non ci sto tirando fuori i piedi

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    A me non dà errori.

    Hai aggiunto i riferimenti? Quale versione di SAPI.DLL hai? Quale versione di SO?

    P.S. Ma che vuol dire "non ci sto tirando fuori i piedi"?

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Prova a semplificare... dopo aver aggiunto i Riferimenti alla DLL in questione nel tuo progetto, in una Form scrivi questo:

    Option Compare Database
    Option Explicit
    
    Private WithEvents ListeningSession As SpSharedRecoContext
    Private Grammar As ISpeechRecoGrammar
    
    Private Sub Form_Open()
    	If (ListeningSession Is Nothing) Then
    		Set ListeningSession = New SpSharedRecoContext
    		Set Grammar = ListeningSession.CreateGrammar(1)
    		Grammar.DictationLoad
    	End If
    	Grammar.DictationSetState (SpeechRuleState.SGDSActive)
    End Sub
    
    Private Sub ListeningSession_Recognition( ByVal StreamNumber As Long, _
    										  ByVal StreamPosition As Variant, _
    										  ByVal RecognitionType As SpeechLib.SpeechRecognitionType, _
    										  ByVal Result As SpeechLib.ISpeechRecoResult)
    
    	Me.TuaTextBox1.Value = Me.TextBox1.Value & vbNewLine & Result.PhraseInfo.GetText
    End Sub
  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Buongiorno Alex ho provato con il tuo codice ma mi ritorna sempre errore di automazione

    Penso che il problema sia dovuto alla sapi.dll ma non capisco il motivo.

    la cosa strana che nei riferimenti come microsoft speech.dll ne ho 3 

    1- sapi.dll  sotto system 32 che mi sembra quella piu giusta da usare

    2 - sapi_onecore.dll

    3-mssps.dll

    hai qualche altro suggerimento

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    La libreria è la sapi.dll

    Il problema è nel tuo sistema

    Hai mai configurato il riconoscimento vocale sul tuo windows? Ha mai funzionato? 

    Vai nelle impostazioni e controlla

  • Re: IMPLEMENTARE RICONOSCIMENTO VOCALE IN ACCESS

    Se prove a fare una dettatura con word funziona senza problemi è questa la cosa che non riesco a spiegarmi

Devi accedere o registrarti per scrivere nel forum
11 risposte