First you need to add a system.speech reference
Now declare your Reference
Code:
Imports System.Speech
Now we are going to declare this into memory outside of sub.
Code:
Dim gram As New System.Speech.Recognition.DictationGrammar()
Dim WithEvents reco As New Recognition.SpeechRecognitionEngine
Now we are going to our Voice Commands
Code:
reco.SetInputToDefaultAudioDevice()
Dim gram As New Recognition.SrgsGrammar.SrgsDocument
Dim Rule As New Recognition.SrgsGrammar.SrgsRule("Rule")
Dim List As New Recognition.SrgsGrammar.SrgsOneOf("Back", "Forward", "refresh", "Set as Homepage", "Google", "Go to Homepage")
Dim Items As New Recognition.SrgsGrammar.SrgsText
Rule.Add(List)
gram.Rules.Add(Rule)
gram(dot)root = Rule
'MPGH wont let me type Gram (.) root
reco.LoadGrammar(New Recognition.Grammar(gram))
reco.RecognizeAsync()
Now to program the Voice Commands (For our homepage I did it by going to settings, Type: String, Scope: User, Name: HomePageURL)
Code:
Private Sub reco_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognitionEventArgs) Handles reco.SpeechRecognized
Dim homepage As String = My.Settings.HomePageUrl
Select Case e.Result.Text
Case "refresh"
WebBrowser1.Refresh()
Case "Back"
WebBrowser1.GoBack()
Case "Forward"
WebBrowser1.GoForward()
Case "Set as Homepage"
My.Settings.HomePageUrl = WebBrowser1.Url.ToString
My.Settings.Save()
MsgBox("New HomePage:" & homepage)
Case "Google"
WebBrowser1.Navigate("http://google.com")
Case "Go to Homepage"
WebBrowser1.Navigate(homepage)
End Select
(take note this is not proper handling, I am simply doing this improperly for the sake of not giving a fuck)
And now we finish handling our Speech recognizer.
Code:
Private Sub reco_RecognizeCompleted(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognizeCompletedEventArgs) Handles reco.RecognizeCompleted
reco.RecognizeAsync()
End Sub
Now you have a Voice Command Webbrowser without the need of any buttons (assuming you have a mic or a headset).