Sprachsteuerung

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von NscMike.

    Sruxs schrieb:

    das Hier

    [VB.NET] Sprachsteuerung

    und es funktioniert leider nur nicht auf windows XP habs gerade getestet mit win 7

    VB.NET-Quellcode

    1. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized

    Fehler 1 "recognizer_SpeechRecognized" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden. c:\users\laurenz\documents\visual studio 2010\Projects\ConsoleApplication2\ConsoleApplication2\Module1.vb 18 59 ConsoleApplication2

    Erkennt er net ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „goraxer“ ()

    Was heisst denn jetzt "sprachsteuerung" ?? String gesprochen ausgeben oder dein Programm soll Sprache verstehen ??
    Nur Ausgabe:

    VB.NET-Quellcode

    1. Dim SAPI
    2. SAPI = CreateObject("sapi.spvoice")
    3. SAPI.speak("Gesprochener Text")

    Habe ich mir irgendwann mal ergooglet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „compufreak“ ()

    DosiSoft schrieb:

    Schick mal den ganzen Code, dann wissen wir auch ob du evtl etwas vergessen/falsch gemacht hast.


    VB.NET-Quellcode

    1. ' In diesem Teil wird euere Grammar hinzugefügt also eure Worte und .NET wird gesagt das ihr auf die Sprachsteuerung zugreifen wollt.
    2. Console.WriteLine("Sprachsteuerung wird gestartet...")
    3. ' Hier wird die Sprachsteuerung deklariert
    4. Dim recognizer As New SpeechRecognitionEngine()
    5. ' Hier wird der Sprachsteuerung gesagt das es das Standart Mikrofon nehmen soll
    6. recognizer.SetInputToDefaultAudioDevice()
    7. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized
    8. ' Ihr müsst Try Catch nicht verwenden aber es ist empfehlenswert wenn etwas nicht funktioniert das man nicht mit Fehlern beworfen wird.
    9. Try
    10. ' So, hier werden euere Wörter gespeichert also eure Befehle. Diese stehen in grammar.xml das kommt später
    11. Dim grammar As New Grammar(My.Application.Info.DirectoryPath + "\grammar.xml", "thema")
    12. ' Hier wird nochmal der Cache von grammars gelöscht damit nichts falsches aufgenommen wird
    13. recognizer.UnloadAllGrammars()
    14. ' Hier erfolgt die Zuweisung der Befehle
    15. recognizer.LoadGrammar(grammar)
    16. ' Hier wird die eigentliche Erkennung gestartet.
    17. recognizer.RecognizeAsync(RecognizeMode.Multiple)
    18. Catch ex As Exception
    19. Console.WriteLine("Exception aufgetreten: " & ex.Message)
    20. Exit Sub
    21. End Try
    22. End Sub

    goraxer schrieb:

    DosiSoft schrieb:

    Schick mal den ganzen Code, dann wissen wir auch ob du evtl etwas vergessen/falsch gemacht hast.


    VB.NET-Quellcode

    1. ' In diesem Teil wird euere Grammar hinzugefügt also eure Worte und .NET wird gesagt das ihr auf die Sprachsteuerung zugreifen wollt.
    2. Console.WriteLine("Sprachsteuerung wird gestartet...")
    3. ' Hier wird die Sprachsteuerung deklariert
    4. Dim recognizer As New SpeechRecognitionEngine()
    5. ' Hier wird der Sprachsteuerung gesagt das es das Standart Mikrofon nehmen soll
    6. recognizer.SetInputToDefaultAudioDevice()
    7. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized
    8. ' Ihr müsst Try Catch nicht verwenden aber es ist empfehlenswert wenn etwas nicht funktioniert das man nicht mit Fehlern beworfen wird.
    9. Try
    10. ' So, hier werden euere Wörter gespeichert also eure Befehle. Diese stehen in grammar.xml das kommt später
    11. Dim grammar As New Grammar(My.Application.Info.DirectoryPath + "\grammar.xml", "thema")
    12. ' Hier wird nochmal der Cache von grammars gelöscht damit nichts falsches aufgenommen wird
    13. recognizer.UnloadAllGrammars()
    14. ' Hier erfolgt die Zuweisung der Befehle
    15. recognizer.LoadGrammar(grammar)
    16. ' Hier wird die eigentliche Erkennung gestartet.
    17. recognizer.RecognizeAsync(RecognizeMode.Multiple)
    18. Catch ex As Exception
    19. Console.WriteLine("Exception aufgetreten: " & ex.Message)
    20. Exit Sub
    21. End Try
    22. End Sub


    Wenn das der gesamte code ist, dann bezweifle ich sowieso dass es funktioniert. Lies Dir nochmal den ersten Beitrag im Link von Sruxs durch.
    Allso in VB 2008

    Alls erstes erstellst du dir eine neue Konsolenanwendung
    dann Importierst du

    VB.NET-Quellcode

    1. Imports System.Speech
    2. Imports System.Speech.Recognition
    3. Imports System.Text
    4. Imports System.Speech.Synthesis



    Nun auf Projekt Verweis hinzufügen
    dann wählst du denn reiter .Net und suchst nach:
    System.Speech

    und drückst auf OK

    dann machst du:

    VB.NET-Quellcode

    1. Module Module1
    2. Public spoken_text As String
    3. Sub Main()
    4. ' diesem Teil wird euere Grammar hinzugefügt also eure Worte und .NET wird gesagt das ihr auf die Sprachsteuerung zugreifen wollt.
    5. Console.WriteLine("Sprachsteuerung wird gestartet...")
    6. ' Hier wird die Sprachsteuerung deklariert
    7. Dim recognizer As New SpeechRecognitionEngine()
    8. ' Hier wird der Sprachsteuerung gesagt das es das Standart Mikrofon nehmen soll
    9. recognizer.SetInputToDefaultAudioDevice()
    10. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized
    11. ' Ihr müsst Try Catch nicht verwenden aber es ist empfehlenswert wenn etwas nicht funktioniert das man nicht mit Fehlern beworfen wird.
    12. Try
    13. ' So, hier werden euere Wörter gespeichert also eure Befehle. Diese stehen in grammar.xml das kommt später
    14. Dim grammar As New Grammar(My.Application.Info.DirectoryPath + "\grammar.xml", "thema")
    15. ' Hier wird nochmal der Cache von grammars gelöscht damit nichts falsches aufgenommen wird
    16. recognizer.UnloadAllGrammars()
    17. ' Hier erfolgt die Zuweisung der Befehle
    18. recognizer.LoadGrammar(grammar)
    19. ' Hier wird die eigentliche Erkennung gestartet.
    20. recognizer.RecognizeAsync(RecognizeMode.Multiple)
    21. Catch ex As Exception
    22. Console.WriteLine("Exception aufgetreten: " & ex.Message)
    23. Exit Sub
    24. End Try
    25. Console.WriteLine("Sprachsteuerung erfolgreich gestartet.")
    26. While Not spoken_text = "Beenden"
    27. System.Threading.Thread.Sleep(100)
    28. End While
    29. Console.WriteLine("Programm wird geschlossen...")
    30. recognizer.Dispose()
    31. End Sub
    32. Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs)
    33. spoken_text = e.Result.Text
    34. If spoken_text = "was" Then
    35. Console.WriteLine("Hallo Björn, wie geht es dir?")
    36. Else
    37. Console.WriteLine("was?")
    38. End If
    39. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")
    40. End Sub
    41. End Module


    Und danach erstellst du eine .xml datei namens grammar.xml
    in der schreibst du rein:

    XML-Quellcode

    1. <grammar xmlns="http://www.w3.org/2001/06/grammar"
    2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://www.w3.org/2001/06/grammar
    4. http://www.w3.org/TR/speech-grammar/grammar.xsd"
    5. xml:lang="de-DE" version="1.0">
    6. <rule id="thema" scope="public">
    7. <one-of>
    8. <item>Test</item>
    9. <item>Dies ist ein Test</item>
    10. <item>Beenden</item>
    11. <item>was</item>
    12. </one-of>
    13. </rule>
    14. </grammar>


    das wars und befehle etc fügst du bei:

    VB.NET-Quellcode

    1. Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs)
    2. spoken_text = e.Result.Text
    3. If spoken_text = "was" Then
    4. Console.WriteLine("Hallo Björn, wie geht es dir?")
    5. Else
    6. Console.WriteLine("was?")
    7. End If
    8. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")
    9. End Sub


    ein
    z.b

    VB.NET-Quellcode

    1. spoken_text = e.Result.Text
    2. If spoken_text = "vb-paradiese" Then
    3. Console.WriteLine("beste Forum der Welt")
    4. Else
    5. Console.WriteLine("was willste?")
    6. End If
    7. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")








    Hier ein Kleines beispiel projekt von mir:
    Projekt
    Dateien

    Sruxs schrieb:

    Allso in VB 2008

    Alls erstes erstellst du dir eine neue Konsolenanwendung
    dann Importierst du

    VB.NET-Quellcode

    1. Imports System.Speech
    2. Imports System.Speech.Recognition
    3. Imports System.Text
    4. Imports System.Speech.Synthesis



    Nun auf Projekt Verweis hinzufügen
    dann wählst du denn reiter .Net und suchst nach:
    System.Speech

    und drückst auf OK

    dann machst du:

    VB.NET-Quellcode

    1. Module Module1
    2. Public spoken_text As String
    3. Sub Main()
    4. ' diesem Teil wird euere Grammar hinzugefügt also eure Worte und .NET wird gesagt das ihr auf die Sprachsteuerung zugreifen wollt.
    5. Console.WriteLine("Sprachsteuerung wird gestartet...")
    6. ' Hier wird die Sprachsteuerung deklariert
    7. Dim recognizer As New SpeechRecognitionEngine()
    8. ' Hier wird der Sprachsteuerung gesagt das es das Standart Mikrofon nehmen soll
    9. recognizer.SetInputToDefaultAudioDevice()
    10. AddHandler recognizer.SpeechRecognized, AddressOf recognizer_SpeechRecognized
    11. ' Ihr müsst Try Catch nicht verwenden aber es ist empfehlenswert wenn etwas nicht funktioniert das man nicht mit Fehlern beworfen wird.
    12. Try
    13. ' So, hier werden euere Wörter gespeichert also eure Befehle. Diese stehen in grammar.xml das kommt später
    14. Dim grammar As New Grammar(My.Application.Info.DirectoryPath + "\grammar.xml", "thema")
    15. ' Hier wird nochmal der Cache von grammars gelöscht damit nichts falsches aufgenommen wird
    16. recognizer.UnloadAllGrammars()
    17. ' Hier erfolgt die Zuweisung der Befehle
    18. recognizer.LoadGrammar(grammar)
    19. ' Hier wird die eigentliche Erkennung gestartet.
    20. recognizer.RecognizeAsync(RecognizeMode.Multiple)
    21. Catch ex As Exception
    22. Console.WriteLine("Exception aufgetreten: " & ex.Message)
    23. Exit Sub
    24. End Try
    25. Console.WriteLine("Sprachsteuerung erfolgreich gestartet.")
    26. While Not spoken_text = "Beenden"
    27. System.Threading.Thread.Sleep(100)
    28. End While
    29. Console.WriteLine("Programm wird geschlossen...")
    30. recognizer.Dispose()
    31. End Sub
    32. Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs)
    33. spoken_text = e.Result.Text
    34. If spoken_text = "was" Then
    35. Console.WriteLine("Hallo Björn, wie geht es dir?")
    36. Else
    37. Console.WriteLine("was?")
    38. End If
    39. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")
    40. End Sub
    41. End Module


    Und danach erstellst du eine .xml datei namens grammar.xml
    in der schreibst du rein:

    XML-Quellcode

    1. Test
    2. Dies ist ein Test
    3. Beenden
    4. was


    das wars und befehle etc fügst du bei:

    VB.NET-Quellcode

    1. Private Sub recognizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs)
    2. spoken_text = e.Result.Text
    3. If spoken_text = "was" Then
    4. Console.WriteLine("Hallo Björn, wie geht es dir?")
    5. Else
    6. Console.WriteLine("was?")
    7. End If
    8. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")
    9. End Sub


    ein
    z.b

    VB.NET-Quellcode

    1. spoken_text = e.Result.Text
    2. If spoken_text = "vb-paradiese" Then
    3. Console.WriteLine("beste Forum der Welt")
    4. Else
    5. Console.WriteLine("was willste?")
    6. End If
    7. Console.WriteLine((e.Result.Text & " (") + e.Result.Confidence.ToString() & ")")








    Hier ein Kleines beispiel projekt von mir:
    Projekt

    Wie kann ich auslesen, dass wenn er ein wort net kennt z.b abs nicht kennt er abs in der console schreibt und net was