Option
Explicit
On
Imports System.Speech.Recognition
Imports System.Speech.Recognition.SrgsGrammar
PublicClass Form1
''VARIABLE PUBLICA OBJETO SPEECHRECOGNIZERPublic recognizer As SpeechRecognizer
''VARIABLE PARA REPRODUCIR TEXTOPublic voz AsNew Speech.Synthesis.SpeechSynthesizer
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
''INICIAMOS LA VARIABLE QUE UTILIZAMOS PARA EL RECONOCIMIENTO
recognizer = New SpeechRecognizer()
''ANADIMOS EVENTOS PARA EL RECONOCIMIENTOAddHandler recognizer.SpeechDetected, AddressOf detectado
AddHandler recognizer.SpeechRecognitionRejected, AddressOf noreco
AddHandler recognizer.SpeechRecognized, AddressOf reco
''INDICAMOS QUE EL OBJETO ESTE A TRUE=ACTIVADO
recognizer.Enabled = True''DECLARAMOS OBJETO GRAMMARDim grammar AsNew GrammarBuilder
''AÑADIMOS FRASES A RECONOCER
grammar.Append(New Choices("Uno", "Dos", "Tres", "Cuatro", _
"Cinco", "Seis", "Siete", "Ocho", "Nueve", "Cero", "Mas", "Menos", "Del", "Calcular", "Borrar"))
''CARGAMOS OBJETO GRAMMAR EN OBJETO SPEECHRECOGNIZER
recognizer.LoadGrammar(New Grammar(grammar))
System.Windows.Forms.Application.DoEvents()
EndSub''EVENTOS DE SYSTEM.SPEECH.RECOGNITION''SE DETECTA EL HABLA POR MICROFONOPrivateSub detectado(ByVal sender AsObject, ByVal e As SpeechDetectedEventArgs)
''MsgBox(e.AudioPosition.Duration.ToString())EndSubPrivateSub noreco(ByVal sender AsObject, ByVal e As SpeechRecognitionRejectedEventArgs)
''MsgBox("No se reconoce el comando de VOZ")
voz.S***k("Comando no encontrado")
EndSubPrivateSub reco(ByVal sender AsObject, ByVal e As SpeechRecognizedEventArgs)
SelectCase e.Result.Text.ToUpper.ToString
Case"UNO"
TextBox1.Text &= 1
Case"DOS"
TextBox1.Text &= 2
Case"TRES"
TextBox1.Text &= 3
Case"CUATRO"
TextBox1.Text &= 4
Case"CINCO"
TextBox1.Text &= 5
Case"SEIS"
TextBox1.Text &= 6
Case"SIETE"
TextBox1.Text &= 7
Case"OCHO"
TextBox1.Text &= 8
Case"NUEVE"
TextBox1.Text &= 9
Case"CERO"
TextBox1.Text &= 0
Case"MAS"If TextBox1.Text.Contains("-") = TrueThen
operacion("-", "+")
ElseIf TextBox1.Text.Contains("+") = TrueThen
operacion("+", "+")
Else
TextBox1.Text &= "+"EndIfEndIfCase"MENOS"If TextBox1.Text.Contains("+") = TrueThen
operacion("+", "-")
ElseIf TextBox1.Text.Contains("-") = TrueThen
operacion("-", "-")
Else
TextBox1.Text &= "-"EndIfEndIfCase"CALCULAR"If TextBox1.Text.Contains("+") = TrueThen
operacion("+", "")
Else
operacion("-", "")
EndIfCase"BORRAR"Try
TextBox1.Text = Strings.Mid(TextBox1.Text, 1, TextBox1.Text.Length - 1)
Catch ex As Exception
voz.S***k("Campo vacio")
EndTryCase"DEL"
TextBox1.Text = ""
TextBox2.Text = ""CaseElseEndSelectEndSubPublicFunction operacion(ByVal simbol AsString, ByVal simbolx AsString)
Dim linea AsStringDim separado(2) AsStringDim suma AsInteger = 0
linea = TextBox1.Text
separado = Split(linea, simbol, -1)
If (simbol = "+") Then
suma = Convert.ToInt32(separado(0)) + Convert.ToInt32(separado(1))
Else
suma = Convert.ToInt32(separado(0)) - Convert.ToInt32(separado(1))
EndIf
TextBox2.Text = suma
TextBox1.Text = suma & simbolx
ReturnTrueEndFunctionEndClass