Vista/Win7 Spracherkennung für XP zum einbinden in VB 2008

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von powachill.

    Vista/Win7 Spracherkennung für XP zum einbinden in VB 2008

    Hallo zusammen, :)

    ich habe mich ein bisschen mit der Spracherkennung von Win 7 rumgeschlagen und weiß auch wie man diese auf win 7 mit einem vb 2008 programm benutzt.

    nun zu meiner Frage:

    da ich auf meinem Laptop nur XP habe, gibt es diese Spracherkennung als "Zusatzprogramm" auch für XP, und wenn nein, gibt es eine kostenfreie alternative, die man ebenfalls in vb 2008 einbinden kann?

    vielen dank im Vorraus: :)

    rahu2000
    nein darauf kennt wahrscheinlich niemand eine antwort. ich nehme an ,dass es nicht möglich sein wird. wenn ich dich richtig berstanden habe, willst du eine beriebssystem komponente von win7 auf XP etc nutzen.



    da die spracherkennung nicht nativ in xp implementiert ist kannst du diese auch nicht seitens des OS's nutzen. mit "nen paar dlls kopieren" ist es da nicht getan: auch die dlls greifen auf andere programme und kernel funktionen zu. das OS ist eine art netzwerk der verknüpften aufrufe. wenn du nur einen "faden" aus dem netz hast kommst du damit in der regel nicht weit.



    heißt im klartext: 1.) es geht nicht oder 2.) du suchst ein anderes voice recognition programm, auf das du zugreifen kannst oder 3.) du programmierst es selbst, das dürfte jedoch wieder auf punkt 1 hinaulaufen ;)
    Ich weiß, dass microsoft mal nen Paket released hat. Ich hatte es auf meinem alten XP-Rechner auch instelliert. Hat auch gut funktioniert damals. OB man das in VB benutzen kann weiß ich nicht.

    Ich such schnell und editiers dazu.

    Ha, gefunden:
    microsoft.com/windowsxp/using/…kowitz_02september23.mspx
    support.microsoft.com/kb/306901

    Hab auch nen SDK gefunden:
    microsoft.com/downloads/detail…83171b4530&displaylang=en
    (ich glaube, dass ich da sogar mal was mit gemacht habe)
    VB geht auch:

    Microsoft.com schrieb:

    You can now use the Win32 Speech API (SAPI) to develop speech applications with Visual Basic ®, ECMAScript and other Automation languages.
    Von meinem iPhone gesendet
    vorausgesetzt der user hat microsoft office xp! außerdem schaut das für mich so aus als müsste man es tatsächlich installieren und die weitergabe einzelner files würde auch hier nicht klappen.

    ma ganz davon abgesehen, dass das nicht in .Net geschrieben ist und er sich, falls überhaupt möglich, erstmal einen wrapper schreiben müsste...
    So habs hinbekommen!!! :) :)

    Nach ein bisschen knobeln und tüfteln hab ich hinbekommen:

    Man installert SDK 5.1 . dann trainiert man das. und dann installiert man ggf. noch eine deutsche ausgabestimme.
    Der COde ohne extra grammar.xml sieht dann so aus und funktioniert super, wenn man den system.speech verweis hinzufügt ;) >:

    VB.NET-Quellcode

    1. Imports System.Speech.Synthesis
    2. Imports System.Speech.Recognition
    3. Imports System.Speech
    4. Public Class Form1
    5. 'Stummschaltung deklarieren
    6. Private Const APPCOMMAND_VOLUME_MUTE As Integer = &H80000
    7. Private Const WM_APPCOMMAND As Integer = &H319
    8. Declare Function SendMessageW Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
    9. '--
    10. Dim WithEvents reconizer As New SpeechRecognizer
    11. Dim grammar As Grammar
    12. Dim speaker As New SpeechSynthesizer
    13. Dim language As New Globalization.CultureInfo("en-US")
    14. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15. Threading.Thread.CurrentThread.CurrentCulture = language
    16. Threading.Thread.CurrentThread.CurrentUICulture = language
    17. Dim choi As Choices
    18. choi = New Choices("Temperature", "Light On")
    19. Dim grammarb As New GrammarBuilder(choi)
    20. grammar = New Grammar(grammarb)
    21. Dim start As New Threading.Thread(AddressOf lausch)
    22. start.Start()
    23. 'speaker.SelectVoice("ScanSoft Steffi_Dri40_16kHz")
    24. CheckForIllegalCrossThreadCalls = False
    25. speaker.SelectVoice("ScanSoft Steffi_Dri40_16kHz")
    26. End Sub
    27. Sub lausch()
    28. reconizer.UnloadAllGrammars()
    29. reconizer.LoadGrammar(grammar)
    30. End Sub
    31. Private Sub reconizer_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs) Handles reconizer.SpeechRecognized
    32. If e.Result.Text = "Temperature" Then
    33. speaker.Speak("Die Temperatur beträgt 21 grad Celsius!")
    34. End If
    35. If e.Result.Text = "Light On" Then
    36. speaker.Speak("Licht wurde angeschaltet!")
    37. End If
    38. End Sub
    39. End Class


    vielen dank an die , die mir geholfen haben ;)

    rahu2000

    PS: ich weiß, der Code ist furchtbar chaotisch :D :D