Hallo.
Ich habe mir mal überlegt ein Programm zu erstellen das mit der Stimme gesteuert werden kann.
Ich habe gesucht, und auch was gefunden.
Hier ist der Code:
Den Code habe ich auf der Seite gefunden: Sprachsteuerung [Überarbeitet]
Als ich auf die CheckBox klickte, um die Sprachsteuerungsfunktion zu starten, kam folgender Fehler:
Der Fehler tritt in der Zeile auf:
Die Datei ist vorhanden.
Der Inhalt des XML Dokumentes:
Den Code verstehe ich nicht so ganz, könnt ihr mir helfen den Code zu korrigieren?
Ich benutze dazu WindowsForms.
Ich habe mir mal überlegt ein Programm zu erstellen das mit der Stimme gesteuert werden kann.
Ich habe gesucht, und auch was gefunden.
Hier ist der Code:
VB.NET-Quellcode
- Imports System.Speech.Recognition
- Imports System.IO
- Public Class Form1
- Private _GrammarFile As String = Path.GetFullPath("grammar.xml")
- Dim WithEvents recognizer As SpeechRecognitionEngine
- Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As SpeechRecognizedEventArgs) Handles recognizer.SpeechRecognized
- Dim spoken_text = e.Result.Text
- If spoken_text = "Beenden" Then
- Me.Close()
- Return
- End If
- RichTextBox1.AppendText(spoken_text & " (" & e.Result.Confidence.ToString() & ")" & ControlChars.Cr)
- End Sub
- Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs) Handles Me.FormClosed
- If recognizer IsNot Nothing Then recognizer.Dispose()
- End Sub
- Private Sub DisplayManual()
- Using sw As New StringWriter
- Dim xDoc = XDocument.Load(_GrammarFile)
- For Each xel In xDoc.Elements()(0).Elements()(0).Elements()(0).Elements()
- sw.WriteLine(xel.Value)
- Next
- Richtextbox1.Text = sw.ToString
- End Using
- End Sub
- Private Sub ckRecognationEnabled_CheckedChanged_1(sender As Object, e As EventArgs) Handles ckRecognationEnabled.CheckedChanged
- Try
- If ckRecognationEnabled.Checked Then
- recognizer = New SpeechRecognitionEngine()
- recognizer.SetInputToDefaultAudioDevice()
- Dim grammar As New Grammar(_GrammarFile, "thema")
- recognizer.UnloadAllGrammars()
- recognizer.LoadGrammar(grammar)
- recognizer.RecognizeAsync(RecognizeMode.Multiple)
- DisplayManual()
- Else
- RichTextBox1.Clear()
- recognizer.Dispose()
- recognizer = Nothing
- End If
- Catch ex As Exception
- MessageBox.Show("Fehler: " & ex.Message)
- End Try
- End Sub
- End Class
Den Code habe ich auf der Seite gefunden: Sprachsteuerung [Überarbeitet]
Als ich auf die CheckBox klickte, um die Sprachsteuerungsfunktion zu starten, kam folgender Fehler:
Eine nicht behandelte Ausnahme des Typs "System.FormatException" ist in System.Speech.dll aufgetreten.
Zusätzliche Informationen: C:\Users\Programmierung\documents\visual studio 2012\Projects\Sprachsteuerung\Sprachsteuerung\bin\Debug\grammar.xml(2,54): error : Das XML-Grammatikformat ist ungültig. Die Grammatik kann nicht in das XML-Dokumentobjektmodel geladen werden.
Der Fehler tritt in der Zeile auf:
Die Datei ist vorhanden.
Der Inhalt des XML Dokumentes:
VB.NET-Quellcode
- <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>was</item></one-of>
- </rule>
- </grammar>
Den Code verstehe ich nicht so ganz, könnt ihr mir helfen den Code zu korrigieren?
Ich benutze dazu WindowsForms.