Ich habe ein problem: ich habe versucht mir ein eigenes Spracherkennungs - Programm zu coden. Dazu benutze ich System.Speech. Die Befehle werden dann über meine 'grammar.xml' abgerufen.
hier der code zu dem Programm:
Code:
Imports System Imports System.Collections.Generic Imports System.Linq Imports System.Speech Imports System.Speech.Recognition Imports System.Text Imports System.Speech.Synthesis Module Module1 Public spoken_text As String Sub Main() Console.WriteLine("Sprachsteuerung wird gestartet...") Dim recognizer As New SpeechRecognitionEngine() recognizer.SetInputToDefaultAudioDevice() AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized Try Dim grammar As New Grammar(My.Application.Info.DirectoryPath + "\grammar.xml", "thema") recognizer.UnloadAllGrammars() recognizer.LoadGrammar(grammar) recognizer.RecognizeAsync(RecognizeMode.Multiple) Catch ex As Exception Console.WriteLine("Exception aufgetreten: " & ex.Message) Console.Read() Exit Sub End Try End Sub Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs) spoken_text = e.Result.Text Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")") If spoken_text = "Hallo" Then Console.WriteLine("Hallo") End If End Sub End Module
Code:
<grammar xmlns="http://www.w3.org/2001/06/grammar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/06/grammar http://www.w3.org/TR/speech-grammar/grammar.xsd" xml:lang="de-DE" version="1.0"> <rule id="thema" scope="public"> <one-of> <item>Test</item> <item>Dies ist ein Test</item> <item>Beenden</item> <item>Hallo</item> </one-of> </rule> </grammar>
Code:
The language for the grammar does not match the language of the speech recognizer.
Es wäre wirklich nett wenn ich hilfe bekomme.
Danke schonmal im Vorraus,
WITZIG