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#