[HowTo] VDR Spracherkennung beibringen

  • Hallo zusammen,


    hier mal ein kurzes aber effektives HowTo um dem VDR Englische Sprecher Unabhängige Spracherkennung beizubringen:


    Ihr benötigt (paketnamen unter Debian): sphinx2-bin, perl-tk, perlbox (http://perlbox.org/)


    Perlbox erlaubt das anlegen von neuen Sprachmodellen unter X und läuft auch im server mode ohne X.


    perlbox.tar.gz im Anhang unterhalb /root entpacken
    tar xzvf perlbox.tar.gz
    sodass /root/.perlbox-voice entsteht


    Dann init-perlbox.tar.gz aus dem Anhang unterhalb /etc/init.d/ entpacken, sodass /etc/init.d/perlbox entsteht
    mit chmod 755 /etc/init.d/perlbox Rechte zuweisen!


    jetzt noch die Datei /etc/rc2.d/S23perlbox anlegen:

    Bash
    #!/bin/bash
    /bin/su -c '/etc/init.d/perlbox start'


    und chmod 777


    Ihr müsst mit dem Benutzer mal schaun was Ihr braucht, hier läuft alles als root.


    in ../.perlbox-voice/Listerner.conf stehen die bereits eintrainierten Befehle:


    Ihr dürft die Linux-Befehle im Editor verändert! Aber Hände weg von den Sprach-Befehlen
    Unter X allerdings könnt Ihr das Programm starten und auch neue Sprach-Befehle definieren!


    Das Sphinx Vokabular umfasst 125.000 Englische Vokabeln. Da sollte man so schnell nichts vermissen ;)


    Deutliche schnell gesprochene Befehle mag sphinx am liebsten. Viel Erfolg.

  • hehe, good news :)
    wie machst du es denn mit dem mikro? Hast du ein normales, ein funkmikro oder ein Richtmikro? Ein Kabel bis zur Couch? Sprichst Du direkt ins mikro rein (so wie ich)? oder bist du einen meter davon entfernt?


    Wäre schön wenn jeder mal seine Erfahrungen postet, am liebsten mal einer mit Richtmikro :)


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Hallo,


    habe das mal auf LINVD instaliert ...


    Supper Ansatz ..


    läuft so weit .. aber die Treffergenauigkeit lässt noch etwas zu wünschen übrig ...


    Wie kann ich denn eiene Deutschebibliothek benutzen oder geht das noch nicht ..


    Der svdrsend.pl ist glaub ich etwas träge .. aber geht erstmal ...


    Als Machbarkeitsstudie Supperidee ... kann ma den nicht auch auf lirc zugreifen ..


    kann man auch 2 Sprchbefehle kombinieren zum Beispiel :


    Channel One=/usr/bin/svdrpsend.pl CHAN 1


    Sprachsteuerung :


    wget http://archive.debian.org/debi…inx2-bin_0.4-0.1_i386.deb
    wget http://archive.debian.org/debi…x2-hmm-6k_0.4-0.1_all.deb
    wget http://archive.debian.org/debi…phinx2g0_0.4-0.1_i386.deb
    wget http://archive.debian.org/debi…erl-tk_800.024-1_i386.deb
    wget http://heanet.dl.sourceforge.n…box-voice-0.09.noarch.deb
    wget http://archive.debian.org/debi…le-perl_1.0.14-1_i386.deb
    wget http://archive.debian.org/debi…mldbm-perl_2.00-9_all.deb
    wget http://archive.debian.org/debi…tools1.2_1.2.2-2_i386.deb

    debtool -f sphinx2-bin_0.4-0.1_i386.deb
    debtool -f sphinx2-hmm-6k_0.4-0.1_all.deb
    debtool -f libsphinx2g0_0.4-0.1_i386.deb
    debtool -f perl-tk_800.024-1_i386.deb
    debtool -f perlbox-voice-0.09.noarch.deb
    debtool -f libstorable-perl_1.0.14-1_i386.deb
    debtool -f libmldbm-perl_2.00-9_all.deb


    optional
    wget http://archive.debian.org/debi…stival_1.4.2-2.1_i386.deb
    debtool -f festival_1.4.2-2.1_i386.deb
    wget http://belnet.dl.sourceforge.n…box-voice-0.09.noarch.tgz


    linvdr:/etc/init.d# Perlbox-VoiceServer.pm :Could not start festival server.
    Make sure festival is installed, in your path and you have permissions
    LOADED DESKTOP PLUGIN: kde


    und die Sprachbefehle zum testen ...


    [command_section]
    # Zahlen 0 -9
    zero=/usr/bin/svdrpsend.pl MESG 0
    one=/usr/bin/svdrpsend.pl MESG 1
    two=/usr/bin/svdrpsend.pl MESG 2
    three=/usr/bin/svdrpsend.pl MESG 3
    four=/usr/bin/svdrpsend.pl MESG 4
    five=/usr/bin/svdrpsend.pl MESG 5
    six=/usr/bin/svdrpsend.pl MESG 6
    seven=/usr/bin/svdrpsend.pl MESG 7
    eight=/usr/bin/svdrpsend.pl MESG 8
    nine=/usr/bin/svdrpsend.pl MESG 9
    #Farben
    green=/usr/bin/svdrpsend.pl MESG Green
    red=/usr/bin/svdrpsend.pl MESG Red
    blue=/usr/bin/svdrpsend.pl MESG Blue
    yellow=/usr/bin/svdrpsend.pl MESG Yellow
    # Steuerung
    left=/usr/bin/svdrpsend.pl MESG Left
    right=/usr/bin/svdrpsend.pl MESG Right
    down=/usr/bin/svdrpsend.pl MESG Down
    up=/usr/bin/svdrpsend.pl MESG Up
    exit=/usr/bin/svdrpsend.pl MESG Back
    menu=/usr/bin/svdrpsend.pl MESG Menu
    okay=/usr/bin/svdrpsend.pl MESG OK
    info=/usr/bin/svdrpsend.pl MESG Info
    mute=/usr/bin/svdrpsend.pl MESG Mute
    power down=/usr/bin/svdrpsend.pl MESG Power
    #Play und Aufnahme
    pause=/usr/bin/svdrpsend.pl MESG Pause
    record=/usr/bin/svdrpsend.pl MESG Record
    stop=/usr/bin/svdrpsend.pl MESG Stop
    #Usertasten
    videos=/usr/bin/svdrpsend.pl MESG User3
    music=/usr/bin/svdrpsend.pl MESG User4
    overview=/usr/bin/svdrpsend.pl MESG User7

  • .. dauert wohl was bis SE groß in Mode kommt ;)
    also was ich noch sagen muß, auf meinem Softdevice Rechner läuft die Spracherkennung auch nicht annähernd so präzise wie auf meinem rein analogen vdr wo fast 100 % cpu zur Verfügung stehen. Beides sind P3 ~900mhz Rechner.

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Du brauchst X nur um mit perlbox neue Befehle anzulernen.
    Der Service für die Spracherkennung läuft komplett ohne X!
    Probier das doch mal aus und poste hier Deine Ergebnisse - ich hab hier schon ein Funkmikro rumliegen aber noch keine Zeit gehabt damit zu testen :)


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Wenn ich das nächste mal eine geile idee habe, such ich mir wohl besser ein anderes Forum wo sich vielleicht auch ein paar tester finden ; )

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Hallo uzer,


    ich finde Deine Idee auch geil, bin aber aus Zeitmangel noch nicht dazu gekommen, die Sache auszuprobieren.


    Nicht aufgeben und frustriert sein sondern weitermachen!


    Die Spracherkennung ist wohl auch für die Hausautomation sehr interessant. Ich habe mir bei Reichelt ein X-10 Computerinterface und X-10 Schalter besorgt. Mit der Linux Software heyu kann man dann die X-10 Geräte steuern. Umgekeht kann man mit einem anderen Programm auch den PC steuern.
    Es gibt auch noch ein X-10 Plugin für den VDR, das allerdings nicht mehr aktell zu sein scheint.


    Gruß


    Paul

    Server: Raspberry Pi, Acer Aspire easyStore H340, DIGIBIT R1 SAT>IP

    Clients: Hauppauge MediaMVP, Raspberry Pi mit Vomp-Client und SAT>IP, BananaPi Pro, Mele M5


  • Nö, klappt bei mir nicht.
    Habe die Sachen installiert, und mit "/etc/init.d/perlbox start" gestartet.
    Das die Soundkarte samt Headset funktioniert, habe ich mit alsamixer getestet.
    In der Konsole in der ich perlbox gestartet habe, tauchten aber einige Zeilen auf, nachdem ich gesprochen habe. Z.B. sowas hier

    Code
    INFO: uttproc.c(507):   1.18 SoS,   2.08 sec elapsed,  1.76 xRT,   0.02 sec CPU,  0.02 xRT


    Eine Idee wie ich den Fehler eingrenzen kann oder ist es ein Benutzerfehler?
    Ich spreche "down" und das Programm im VDR sollte einen Kanal runter stellen, oder?

    Server: ubuntu 9.10 server, vdr 1.7
    Workstation: kubuntu 8.04

  • Na hoffentlich steht das Mikro nicht zu nah am Fernseher, wenn ich mal wieder einen englischen Film gucke. ;)

    Einmal editiert, zuletzt von froschi ()

  • Spracherkennung ist super. Ich muss dasselbe jetzt in einem Softwareprojekt an meiner Uni machen (ich studiere Computerlinguistik).


    Spracherkennung bzw. VDR per Java steuern



    Nach einem netten Hinweis hab ich diesen Thread gefunden. Ich werde die Idee wohl zum Großteil weiterverfolgen und finde es schonmal super das es klappt :)


    Wir haben natürlich ein paar andere Möglichkeiten (da wir z.T. auch kommerzielle Software nutzen können, die einfach ne bessere Spracherkennung produziert :)


    Die Idee ist natürlich das System ein wenig flexibler zu machen, dass du mehr als nur Keywords benutzen kannst und auch ein wenig ausgefallenere Sachen fragen kannst wie "Was läuft denn morgen abend um 8 auf ARD?"


    Vielleicht sollte ich mal noch einen Thread starten und nach Features fragen, die eurer Meinung nach so ein System haben sollte, also was man denn mit der Sprache so machen können sollte...gibt da ne Menge Möglichkeiten, denn mit Sprache geht doch einiges einfacher :)

  • heyho randili,
    schön das jemand aktives diesen thread gefunden hat :)


    Also die Spracherkennung mit sphinx2 hat wirklich prima damals funktioniert.
    Allerdings gab es wohl Probleme mit der Konfiguration von perlbox. In meinem Howto hab ich den .perlbox_config/ bereitgestellt, damit kein X gestartet/installiert werden muss - perlbox ist ein X programm, läuft aber als daemon ohne X - dies war wohl der Fehler. Als ich das ganze später mal auf einem zweiten PC getestet habe, hatte ich auch höchstens noch 5% erkennung anstatt der 90% die ich davor hatte. Also da lag der Hund begraben.


    Solltest Du es testen, starte perlbox und erstell eine eigene config auf dem pc. Irgendwas wird da noch generiert was ich übersehen habe!


    Ansonsten, bzgl. Features, wichtig ist erstmal eine gute Basis. Erst wenn die Erkennung stimmt kann man sich komplexe Ausdrücke einprogrammieren.


    Wenn Du kommerziele Software benutzt, dann haben wir leider nichts davon.


    mfg

    Server: Seagate Dockstar - Debian Squeeze

    Client: Apple TV 2 / Samsung LExxC650

    OldOne: Debian Etch - Matrox G450 & SkyStar2

  • Bin in den falschen Thread nach dem Login gelandet
    Gruß
    Markus

    1. VDR: 1.6.0-1 (E-Tobi multipatch) // OS: Ubuntu 8.04 // Hardware: Media MVP H4 // DHCP: auf NSLU2 // TFTP: über Vompserver
    2. VDR: 1.6.0 // OS: Zen2Vdr 1.0 auf SMT 7020S DOM // Hardware: Media MVP H4 // DHCP: auf NSLU2 // TFTP: über Vompserver

    Einmal editiert, zuletzt von staudtm ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!