Spracherkennung again - SpeechRecognition über COM-Object

  • Hallo!

    Ich habe momentan ein großes Problem mit der Windows-Spracherkennung.
    Auf meinem Computer läuft 32bit-Vista, natürlich inkl. der eingebauten Spracherkennung.

    Folgendes konnte ich ausfindig machen:
    http://msdn.microsoft.com/en-us/library/ms720590(VS.85).aspx

    Und bisher habe ich herausgefunden, dass es "Shared" und "InProc" Spracherkennung gibt - beim einen geht das über einen Prozess, beim anderen geht ein Fenster auf, von der normalen Win-Sprach-Erkennung.

    Natürlich gibt es schon zich Script-Beispiele zu dem Thema, und via ObjCreate usw. hab ich es auch tatsächlich geschafft, die Spracherkennung zu starten.
    Lediglich ObjEvent bringt keinerlei Effekt mit sich.

    [autoit]

    $rc = ObjCreate("SAPI.SpSharedRecoContext")
    $reco = $rc.Recognizer
    $gram = $rc.CreateGrammar
    $gram.DictationSetState(1)

    [/autoit][autoit][/autoit][autoit]

    ObjEvent($rc, "RC_")

    [/autoit][autoit][/autoit][autoit]

    While 1
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func RC_Recognition($sn, $sp, $rt, $res)
    MsgBox(0, "Test", $res.PhraseInfo.Text)
    EndFunc

    [/autoit]

    Selbst in VisualBasic hab ich mir die Zähne ausgebissen, egal welcher Beispielcode von Microsoft, nichts funktioniert!

    Einmal editiert, zuletzt von Pennywise (25. März 2010 um 02:30)

  • Zitat von Pennywise


    *********** PUSH! ************

    Hat keiner ne Ahnung, woran das liegt?


    *********** PUSH! ************

    anscheinend nicht,

    PS.: pushen wird in diesem Forum nicht gerne gesehen,

    mfg (Auto)Bert

  • anscheinend nicht,

    PS.: pushen wird in diesem Forum nicht gerne gesehen,

    mfg (Auto)Bert

    Sorry, war verzweifelt. :rofl:

    Aber ich habs jetzt endlich geschafft - endlich!!!

    [autoit]

    Run("SimpleDict.exe", @ScriptDir, @SW_HIDE)
    While 1
    $text = ControlGetText("Simple dictation application", "", "[CLASS:Edit; INSTANCE:1]")
    If ($text <> "") Then
    MsgBox(0, "Recognition", $text)
    ControlSetText("Simple dictation application", "", "[CLASS:Edit; INSTANCE:1]", "")
    EndIf
    WEnd

    [/autoit]

    Über ein SDK-Beispiel-Programm.
    Nicht die ideale Lösung die ich wollte, aber wenigstens etwas, womit ich an meinem super-geheimen-ultra-Projekt arbeiten kann. Nach Stunden von Arbeit und Forschung. Nach Tausend Source-Codes in VB, C++, C#, usw. usw. und Tage langer Suche im MSDN, geht wenigstens die eine Sache richtig! :thumbup: