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






