Salve a tutti, premetto che sono nuovo in questo forum e che non sono un mago del vb.net.
Sto cercando di sviluppare un progetto che raccoglie input da microfono e li rende dei comandi. Dopo aver scritto il codice l'applicazione girava, ma se parlavo (in inglese, non so se esista una libreria per il riconoscimento dell'italiano) niente. Non succedeva proprio niente. Allora ho fatto un passo indietro e ho scrito questo breve codice, per capire se, prima di tutto visual basic riceveva l'input dal microfono:
Imports System.Speech.Recognition
Imports System.Speech.Recognition.SrgsGrammar
Public Class Form1
Private recognizer As SpeechRecognizer
Public Sub New()
InitializeComponent()
recognizer = New SpeechRecognizer()
AddHandler recognizer.SpeechDetected, AddressOf recognizer_SpeechDetected
End Sub
Private Sub recognizer_SpeechDetected(ByVal sender As Object, ByVal e As SpeechDetectedEventArgs)
Label1.ForeColor = Color.Blue : Label1.Text = "Ho sentito qualcosa"
End Sub
End Class
Provandola su win xp funziona, ma su win 7 continua ad esserci il problema dell'input da microfono. Ho provato ad aggiungere anche questo pezzo di codice, ma non cambia niente, anzi mi da un errore:
in Public Class
Private engine As New SpeechRecognitionEngine
in Form_load
Dim T As New Threading.Thread(AddressOf engine.SetInputToDefaultAudioDevice)
T.Start()
T.Join()
Avete una soluzione?
PS: la libreria System.Speech da un casino di errori (ho letto sul web che è "instabile" cioè che certe volte da certi errori, altre volte no, ad es. a me in certi casi da errori sull Host. Sto valutando di passare al C#![]()