Voice Controll

Tutorials.at
Verfügbare Informationen zu "Voice Controll"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Dirty Oerty - DrPhil_Guth - exbs
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 21
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Voice Controll
  • Letzte Antwort: vor 17 Jahren, 9 Tagen, 4 Stunden, 36 Minuten
  • Alle Beiträge und Antworten zu "Voice Controll"

    Re: Voice Controll

    Dirty Oerty - 12.04.2007, 22:36

    Voice Controll
    tag leuts,
    hab mir was angeguckt, das will ich auch ma programmieren :D

    und zwar: voice controll

    also steuerung des computers durch die eigene stimmer
    (steuer mein WinAmp nur noch mit stimme)

    ich würd dazu gern das Speech SDK 5.1 von Microsoft benutzen.

    hat einer von euch damit nen bissle erfahrung?
    weil auf so was wie nen tutorial bin ich nich gestosen :(
    kennt jemand vllcht nen tutorial?

    oder kennt jemand nen anderes "interface"?

    viele fragen, hoffe auf viele antworten :D :wink:

    (achja: ich programmier in C/C++)

    lg
    daniel



    Re: Voice Controll

    DrPhil_Guth - 12.04.2007, 22:53


    Kann dir nicht helfen...

    aber 2 dinge möchte ich dir auf den weg geben:

    -RTFM

    -Schau mal nach obs ne doku gibt


    Bei unbekannten begriffen brauchst du nur wikipedia zu befragen



    Re: Voice Controll

    Dirty Oerty - 12.04.2007, 23:49


    das is mein problem, gibt nur die windowsanleitung dazu, und die is in technischem englisch verfasst, bis ich die überhaupt mal durchgelesen und einigermasen verstanden hab, dauert das jahre :(

    ich könnte schon mit nem englischen tut umgehn, nur muss das auch lesbar sein (was die MSDN für mich nich is...)


    lg
    daniel



    Re: Voice Controll

    DrPhil_Guth - 12.04.2007, 23:55


    Tja, wenn du solche speziellen und weit fortgeschrittenen Themen behandeln willst, dann wirst du häufig keine Tutorials finden. Da gibts dann nur technische anleitungen und fast alle sind auf englisch. Also ich würd mich dran gewöhnen wenn ich du wäre.
    Kannst ja noch ein bisschen suchen. Aber viel finden wirst du nicht, das sag ich dir gleich.
    mfg, DrPhil_Guth



    Re: Voice Controll

    Dirty Oerty - 13.04.2007, 00:23


    hm, ja, das is mein problem.
    naja, ich bin dann eigntl meistens nur zu faul, das englische zu lesen :oops: , dann kann ich mich ncih aufs programmieren konzentrieren :?

    naja, ich guck mal.

    lg
    daniel



    Re: Voice Controll

    exbs - 13.04.2007, 02:18


    Desdo mehr englische Texte du liest, desdo besser wirst du sie verstehen, fang damit an. Ich war auch immer zu faul englische Texte zu lesen, bis ich erkannte, dass es nicht anders geht.



    Re: Voice Controll

    Dirty Oerty - 13.04.2007, 11:30


    jaja, ihr klingt ja schon wie meine englischlehrerin^^

    ich kanns ja lesen, nur muss ich mich dann aufs lesen konzentrieren und nich aufs programmieren lernen^^


    naja, aber andere frage:

    habt ihr nen plan, wie sich andere anwendungen dadurch dann kontrollieren lassen könnten?

    also winamp kann man dann vollkommen kontrollieren.

    vllcht wenn man dem prog ne API-message schickt?

    oder mit speichermanipulation?


    lg
    daniel



    Re: Voice Controll

    exbs - 13.04.2007, 11:57


    Zitat: oder mit speichermanipulation? Soetwas kann böse enden.

    Wenn es zum bsp um Winamp geht könntest du dein Programm folgergendermaßen gestallten, wenn es ein wort erkennt, dann simuliert es einen shortcut von winamp. Hier das mit der Tastatur.

    Zitat: vllcht wenn man dem prog ne API-message schickt? Dafür müsstest du doch aba die interfaces der anderen Programme kennen oder ?
    Auslistung aller Winapi bfehle auf deutsch.



    Re: Voice Controll

    Dirty Oerty - 13.04.2007, 22:18


    wow, danke, das is hilfreich :D

    *mich drübermach*



    Re: Voice Controll

    Dirty Oerty - 14.04.2007, 00:38


    mist :x , mir is eingefallen, das das mit der tastatur nich funktionieren wird.
    weil was passiert, wenn man nen anderes fenster im focus hat?

    bei Winamp führt SRT + P zu den einstellungen
    bei firefox kommt man zu drucken.

    hm... :( :?:



    Re: Voice Controll

    exbs - 14.04.2007, 16:23


    Sicher (bin aba jetzt echt net gewillt zu gugn) gibt es eine Winapi funktion welche den focus umsetzen kann ...

    ggf auch mal in einem forum fragen, wo sich die leute besser damit auskennen.



    Re: Voice Controll

    Dirty Oerty - 14.04.2007, 17:30


    klar, gibt es die, hab ich auch schon gefunden.

    aber ich denk mal, das die recht viel leistung braucht...

    und die dann 2 mal schnell hintereinander (so schnell, das es der benutzer nicht merkt)


    und vorallem:

    was macht man, wenn der benutzer z.b. gerade beim eingeben von text ist?



    Re: Voice Controll

    exbs - 14.04.2007, 17:34


    Hast du denn schon realisiert wie das programm die stimme erkennt, sprich ist diese funktion schon in dein programm implimentiert ?

    Mach dir erstmal darüber gedanken.

    Du wirst wohl nicht drumherrum kommen, die programme durch schnittstellen zu steuern, bei einigen programm kann man doch mit hilfe von plugins neue funktionen implimentieren.

    Die sache über die tastatur ist selbstverständlich nicht besonders komfortabel.



    Re: Voice Controll

    Dirty Oerty - 14.04.2007, 17:38


    die stimmerkennung ist der einfachste part^^

    ich weiß, sowas klingt kompliziert, und die funktionen dazu sind's bestimmt auch.
    aber ich programmier ja keine eigene schnittstelle.

    ich verwend ja Microssoft Speech SDK 5.1

    klar, dadurch wirds plattformabhängig, aber ne schnittstelle, die plattformunabhängig is, gibt's leider nich :(

    klar gibt's die plugin-funktion, aber das prog, das bei mir zur kontrolle von winamp läuft ist nicht als plugin in winamp drinne.
    wüsste auch nich, we man nen plugin programmiert :oops:



    Re: Voice Controll

    Dirty Oerty - 17.04.2007, 20:15


    sagt mal bin ich bedeppert oder was is los?

    ka, das CodeBlocks liefert mir beschwerden, von wegen nicht deklariert.
    dabei steht in der msdn deutlich drin, was man alles einbinden muss, bzw was man verlinken muss. :?

    hier mal der code (is nich viel, hab ja grad erst angefangen, is eigntl nur grundgerüst und noch keine fct erkennbar^^):

    main.cpp
    Code:
    #include <windows.h>
    #include <iostream>
    #include <string>
    #include "main1.h"




    int WINAPI WinMain (HINSTANCE hThisInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR lpszArgument,
                         int nFunsterStil)
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */

        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);

        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;

        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Total Voice Control",       /* Title Text */
               WS_TILED |WS_MINIMIZEBOX|WS_CAPTION|WS_SYSMENU, /* default window */
               0,       /* Windows decides the position */
               0,       /* where the window ends up on the screen */
               250,                 /* The programs width */
               400,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );

        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);

        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }

        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }








    main1.h
    Code:
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

    /*  Make the class name into a global variable  */
    char szClassName[ ] = "TVC-MainWindowClass";

    /*  This function is called by the Windows function DispatchMessage()  */

    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }

        return 0;
    }

    ///////////////////////////////////////////////////

    typedef struct tagKEYBDINPUT {
        WORD wVk;
        WORD wScan;
        DWORD dwFlags;
        DWORD time;
        ULONG_PTR dwExtraInfo;
    } KEYBDINPUT, *PKEYBDINPUT;

    typedef struct tagMOUSEINPUT {
        LONG dx;
        LONG dy;
        DWORD mouseData;
        DWORD dwFlags;
        DWORD time;
        ULONG_PTR dwExtraInfo;
    } MOUSEINPUT, *PMOUSEINPUT;

    typedef struct tagHARDWAREINPUT {
        DWORD uMsg;
        WORD wParamL;
        WORD wParamH;
    } HARDWAREINPUT, *PHARDWAREINPUT;

    typedef struct tagINPUT {
      DWORD type;
      union {MOUSEINPUT mi;
                KEYBDINPUT ki;
                HARDWAREINPUT hi;
               };
      }INPUT, *PINPUT;

    ////////////////////////////////////////////
    //////////////////////////////////////////////////

    HWND _current;
    HWND _target;


    INPUT _t1,_t2,_t3;//Tastatureingaben (simulierte)



    das in main1.h, die typedeff's sind nur, um's mal zum laufen zubekommen, ich kann aber KEINE der funktionen, die ich bräuchte (z.B. SendInput) verwenden?!?


    falls es nich klar is:

    ich versuch nun mithilfe von SendInput Tastatureingaben zu simulieren.
    Dann kommt das zwischen den Anwendungen switchen dazu (durch ändern des keyboardfocus)
    Und dann die Einbindung von Sprache.


    ka, wenn jemanden was auffällt, is wahrscheinlich was ganz primitives und ich bin nur müde, ka :cry:



    Re: Voice Controll

    DrPhil_Guth - 18.04.2007, 13:40


    Hast du bei deinem Compiler eingestellt woher er die bibliotheken einbinden soll? Du musst die speech sdk dazutun.



    Re: Voice Controll

    Dirty Oerty - 18.04.2007, 14:33


    na ich nutz doch noch nix aus der Speech SDK.
    alles, was ich bis jetzt benutz, sind eigntl nur die Sachen zum tastatureingabn simulieren.

    Also:

    die INPUT struktur und alle unterstrukturen werden nicht erkannt.
    die Funktion SendInput() wird nicht erkannt.

    laut msdn ist zum verwenden der funktionen nur die windows.h sowie die kernel32.lib, user32.lib und gdi32.lib nötig.

    das hab ich alles so eingestellt.

    ich hab's nun übrigens auch mal mit Dev C++ probiert, das liefert mir den selben Fehler :?

    ich hab auch mal alles in eine main.cpp datei geschrieben, bringt auch nix.



    Re: Voice Controll

    exbs - 18.04.2007, 15:13


    hab den code gelesen ... leider nicht wirklich was erkannt ... poste doch mal alle fehlermeldungen !



    Re: Voice Controll

    Dirty Oerty - 18.04.2007, 16:07


    Zitat: error: 'INPUT' does not name a type

    also wenn die typedeffs, die ich selbst gemacht hab, weg sind.

    ansonsten halt, das die funktion SendInput vor ihrer verwendung doch bitte deklariert werden soll^^



    Re: Voice Controll

    exbs - 18.04.2007, 22:24


    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp
    hast du auch alle header eingebunden ... ?



    Re: Voice Controll

    Dirty Oerty - 19.04.2007, 15:00


    Zitat: include Windows.h

    ja, die hab ich.

    und beim linker steht die user32.lib auch da. :?



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Großes Blender Problem!!! - gepostet von vpascal am Donnerstag 06.09.2007
    c/c++? - gepostet von pYp am Montag 04.09.2006
    qIp, ICQ, MSN, Trilian und andere... - gepostet von Dirty Oerty am Samstag 17.11.2007
    Falsches Virtual Pascal ??? - gepostet von M4RC0 am Donnerstag 04.05.2006
    Ein gewagtes Projekt - gepostet von Dragorad am Donnerstag 26.10.2006
    lua für psp? - gepostet von bonsai007 am Mittwoch 12.09.2007
    ersatz für getch() - gepostet von DrPhil_Guth am Freitag 28.07.2006



    Ähnliche Beiträge wie "Voice Controll"

    09.06.2007 The Sweet Voice Club - Funatic (Donnerstag 07.06.2007)
    Voice of Rock 5 - ski_kai (Montag 17.10.2005)
    The Third Voice - drimnagh (Samstag 27.01.2007)
    Unsre Antwort auf Voice-check ;) - Heiko (Sonntag 30.01.2005)
    Voice-Messages - alexandra (Donnerstag 18.01.2007)
    Linguatec - Voice Reader - Jürgen (Samstag 26.05.2007)
    Voice Overlay - Nuck (Mittwoch 16.08.2006)
    Controll-irgendwas by massi - massi1992 (Dienstag 08.08.2006)
    Ventrilo Voice Chat - refowe (Mittwoch 18.04.2007)
    frida, just a voice? - de solere (Sonntag 04.03.2007)