Spracheingabetools - Tipps und Tricks ect.

Eomer_13

Vertrauter
Hi Leute,

vielleicht finden ein paar ja auch das die Funktion selbst interessant, mit einem Programm bestimmte Befehle von Windows sprachsteuern zu lassen.
Ich habe jetzt mal einen Thread aufgemacht in dem über die Programme diskutiert werden kann, also über Programme wie Voiceflux, Shoot oder ähnliches.
Auf die Idee gekommen bin ich durch den Utilitythread über Magic Words (im obl forum), da einige Leute (wie Tommy) das sicherlich ganz interessant finden ^^
Grundsätzlich geht es hier jetzt um das Programm Shoot (http://clans.gameclubcentral.com/shoot/downloads.php).
Es läuft nur unter Microsoft .Net 1.1. Falls ihr zusätzlich .Net 2.0 installiert habt dann müsst ihr das tun was hier beschrieben wird.
Außerdem wird Microsoft Speech SDK 5.1 benötigt.

Also los gehts ;)
 
Das folgende Beispiel ist vielleicht ganz nützlich :-D

1) auf dem Desktop eine Verknüpfung zu "cmd.exe" erstellen und mit einer Tastenkombination ausrüsten (hier STRG ALT ROLLEN). Die kann man dann irgendwo in ne Ecke schieben, am besten außerhalb des sichtbaren Bereichs.

2)Und dann folgende XML-Datei mit der shoot.exe starten (eventuell nen Autostart-Eintrag):

Code:
<?xml version="1.0" encoding="iso-8859-1" ?> 
<shoot-config>
	<command-list>
		<command name="Scharesoft" phrase="share soft">	
			<key type="CTRL ALT ScrollLock"/>
			<sequence keys="C:\Programme\Firefox\firefox.exe www.scharesoft.de"/>
			<key type="ENTER"/>
		        <sequence keys="exit"/>
			<key type="ENTER" delay="50" pause="10"/>
		</command>
	</command-list>	
	<push-to-talk initial-state="on">
		<hold on-press="enable">
			<key type="ScrollLock"/>
		</hold>
	</push-to-talk>
</shoot-config>

Dieses Skript bewirkt, dass durch sagen des Wortes "Scharesoft" der Firefox-Browser mit dem Scharesoft-Portal gestartet wird (Beim Sprechen die ROLLEN-Taste drücken)

(Den Pfad natürlich entsprechend der eigenen Platte anpassen. Alternativ kann man das anstatt über die Dos-Box auch über ne Batchdatei machen, was vielleicht sogar besser wär, da der Firefox durchaus schneller sein kann als das exit/ENTER)

Anders als ich es in der Shoutbox gesagt habe gibts die "Windowstaste" nicht zur Auswahl (hät ich vorher testen sollen :roll:), deshalb hier der Weg mit der Verknüpfung.

Weitere nützliche Sachen folgen noch... :-D
 
Ja, die Nutzer müssen aber unbedingt die Trainings-Sessions machen, da das sonst nur die Hälfte erkennt (war bei mir so).

Zusätzlich muss ich mal noch die keymap.xml an die deutsche Tastaturbelegung anpassen, da sonst die Slashes nich erkannt werden (siehe Beispiel. Deshalb macht erstaml statt der cmd-Verknüpfung ne Verknüpfung zu "C:\Programme\Firefox\firefox.exe www.scharesoft.de", die ihr dann so aufruft:

Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<shoot-config>
   <command-list>
      <command name="Scharesoft" phrase="share soft">   
         <key type="CTRL ALT ScrollLock"/>
      </command>
   </command-list>   
   <push-to-talk initial-state="on">
      <hold on-press="enable">
         <key type="ScrollLock"/>
      </hold>
   </push-to-talk>
</shoot-config>

edit:
Mein Laptop hat jetzt schon richtig "Persönlichkeit", manchmal tut er nich auf mich hören (is halt nur nen Mini-Micro im Display verbaut) und wenn ich "fuck you" sage schaltet er sich ab :-D

edit:
So hab die Hälfte der Trainingslektionen durch und mein Laptop versteht mich inzwischen auch beim kleinsten Toleranzbereich (werd aber noch weiter trainieren, weil er manchmal durchs Fernsehen zur Selbstständigkeit animiert wird :-D)

Ich test jetzt mal Voice Flux (www.nabil.de.vu/voiceflux) das basiert auch auf dem SDK 5.1, hat aber noch ne Menge extra Optionen: www.nabil.de.vu/voiceflux/functions.txt
 
Hm also das Firefoxbeispiel hat bei mir leider auch nicht richtig geklappt, hab alles so gemacht wie dus beschrieben hast allerdings hat sich beim halten der rollentaste und Sprechen nur das cmd line fenster geöffnet und die pfade angeeben aber sobald der exit befehl kam ist nix mehr passiert, auch hat sich kein Browserfenster geöffnet :nono:

Aber naja vielleicht lags ja auch an der Trainingssession die ich nicht gemacht hab, jedenfalls gibts da viele nette Möglichkeiten ^^
ich versuchs mal mit deiner neuen Beispielmethode.

Edit: Wegen dem Voice Flux, einer im englischen Forum hat was von "Dragon Speech" erzählt, was das ist weiß ich nicht, aber ich schätze mal es ist auch so was in der Art.
 
Ich weiß schon warum:

Entwederwurde der Pfad falsch hingeschrieben (wegen der anderen tastaturbelegung) oder dein Firefox-Verzeichnis is "...\Mozilla Firefox\...", da tut er nach Firefox abbrechen. Mach einfach die zweite Variante ohne Dosbox.

Das zweite Programm Voiceflux is übrigens auch nicht schlecht, so kann ich z.B. jetzt nen Text markieren "Google" sagen und schon wird der markierte Text mit Google gesucht oder ich kann mir den Text vorlesen lassen. Bin da noch am Suchen nach der perfekten Stimme (hab grad "Katrin" von der Firma Cepstral am Wickel :-D). Die Trainingsfortschritte zählen übrigens für beide Programme, da das übers SDK zentral verwaltet wird.
 
Hmm also irgendwie will das mit dem Firefox bei mir nicht. Er öffnet sich einfach nicht wenn ich die entsprechende Taste drücke und dabei die Angabe gebe.
Naja, habs mir jetzt erstmal was simpleres gemacht (wirklich nur 2 Zeilen verändert also nix besonderes :roll:) sodass ich meinen Arbeitsplatz aufrufen kann. Könnte ich das auch irgendwie managen dass ich keine Taste drücken brauche und der Pfad direkt abgerufen wird?
Und eigentlich kann ich die ganzen Tasten ja in einer einzigen xml Datei speichern, oder gibts da irgendwann Probleme wegen der Länge?
 
Du brauchst keine Taste drücken, hab "push-to-talk initial-state" auf "on" gestellt. Um zu prüfen ob es deinen Spruch erkennt einfach in die Statusleiste schauen, da müsste dann "Recognized: XYZ" stehen. Wenn "share soft" zu schwierig is nimm z.B. "one", oder schieb die Regler unter Speech->Recognizer->Settings etwas nach links.
 
Nein, also Scharesoft erkennt er problemlos. Das mit der automatischen Initialisierung ist natürlich klasse (dachte das muss man dennoch drücken) :)
Falls ich jetzt mehrere Tastenkombinationen in einer xml file haben will, dann kann ich das doch auch so managen mit der automatischen Initialisierung indem ich da eben die Tags nutze oder? (also zwischenzeitlich per [/...] wieder abstelle)

EDIT: Also ich hab das mit den mehreren Shortcuts jetzt eben so gemacht wie es ähnlich bei dir Tommy bzw auch in der Magic Words xml stand.

D.h. mein "Verknüpfungs-xml" sieht jetzt so aus:

Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<shoot-config>
   <command-list>
      <command name="Arbeitsplatz" phrase="workstation">   
         <key type="CTRL ALT scrollLock"/>
      </command>   
     <command name="Eigene Dateien" phrase="My Documents">
         <key type="CTRL ALT 1"/>
      </command>
     <command name="Oblivion Verzeichnis" phrase="Oblivion">
         <key type="CTRL ALT 2"/>
      </command>
      </command-list>
   <push-to-talk initial-state="on">
      <hold on-press="enable">
         <key type="scrollLock"/>
         <key type="CTRL ALT 1"/>
         <key type="CTRL ALT 2"/>
      </hold>
   </push-to-talk> 
</shoot-config>

Aber eben noch lang nicht fertig da ich wohl noch ein paar Ordner dazutun werde die ich sonst nur durch mehrere Klicks erreiche.
Das mit den mehreren "Key type" hintereinander hab ich einfach mal so ausprobiert und siehe da es hat geklappt ^^
Die Ordnerverknüpfungen liegen halt auf dem Desktop und die entsprechenden Shortcuts sind oben zu sehen.
 
So, sorry für den Doppelpost, habe ein neues Beispiel ...

das ist jetzt erstmal eine reine Browser.xml geworden, mit der ich einfach mal rumgespielt habe.
Bis jetzt kann ich damit den Browser selbst öffnen und dann per Befehl zu Schares Portal, Morrowind.de oder zum englischen Oblivion Mods Forum springen.

die xml sieht so aus:

Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<shoot-config>
   <command-list>
      <command name="Browser" phrase="fire fox">   
         <key type="CTRL ALT 4"/>
      </command>
      <command name="Schareportal" phrase="Share soft">
         <key type="Left ALT S"/>
         <sequence keys="www.Scharesoft.de" delay="0" pause="100"/>
         <key type="Enter"/>
         </command>
      <command name="UbiForum" phrase="Morrowind">
         <key type="Left ALT S"/>
         <sequence keys="www.morrowind.de" delay="0" pause="100"/>
         <key type="Enter"/>


         </command>
      <command name="OBL Forum eng" phrase="english oblivion forum">
         <key type="Left Alt S"/>
         <sequence keys="www.elderscrolls.com" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="forums" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="index.php" delay="0" pause="0"/>
         <key type="SHIFT ß"/>
         <sequence keys="showforum" delay="0" pause="0"/>
         <key type="SHIFT 0"/>
         <sequence keys="25" delay="0" pause="100"/>
         <key type="Enter"/>
         </command>
   </command-list>   
   <push-to-talk initial-state="on">
      <hold on-press="enable">
         <key type="4"/>
         <key type="Left ALT S"/>
      </hold>
   </push-to-talk>
</shoot-config>

Führung:

Die erste Zeile ist die Einführung in das Script.
Dann wird gestartet mit <shoot-config> und ganz am Schluss wird wieder beendet mit </shoot.config>.
Die Kommandoliste wird gestartet, in der die verschiedenen möglichen Lautbefehle und ihre Wirkungen dargestellt werden, nachdem alle Kommandos aufgeführt wurden wird sie wieder geschlossen (</command-list>).

Command name: Vermerk welcher Befehl das hier ist
phrase: Die Wörter die man ausspricht um den Befehl ausführen zu lassen.

"key type" ist dazu da dass eine Tastenkombination getätigt oder ein einzelner Buchstabe bzw. ein Zeichen geschrieben oder aktiviert wird.

"sequence keys " ist dazu da einfach eine buchstabenfolge oder ein Wort ect. zu schreiben.

Am Anfang hab ich key type die Tastenkombination STRG 4 ausführen lassen, sodass die Desktopverknüpfung zum Browser gestartet wird. Mit "Fire fox" rufe ich sie auf.
Danach habe ich key type erstmal benutzt, um mit Alt+S die Adressleiste im Browser markieren zu lassen.
Und teilweise habe ich key type für Zeichen wie / in den Internetadressen nehmen müssen weil er die sonst nicht schreibt. Also zum Beispiel Shift 7 für den Slash.

sequence keys habe ich dann für die Adressen bzw. für Teile der Adressen genommen. Bei der dritten Adresse musste ich halt mehrmals zwischen Keys type und sequence keys gewechselt um die Slashes darstellen zu können und danach weiterzu schreiben, z.b. /forums/index.php?

Der Push-to-talk Block gibt in diesem Fall an dass solange der Befehl ausgesprochen wird die Tastenkombination betätigt wird also einmal war das nötig um die Desktopverknüpfung zu öffnen und einmal um die Adressleiste zu markieren.

Das wars auch schon vielleicht gibts ja einigen Aufschluss darüber wie das erstmal so grundlegend funktioniert ^^
 
Huhu,
habe ein Problem mit Shoot: Jedes Mal beim Öffnen einer xml bekomme ich eine Fehlermeldung:
"The 'pause' attribute is not declared. An error occured at file: <Dateipfad>"

Woran könnte das liegen? Wäre für Hilfe sehr danbar :)
 
Hm das müsste soviel heißen wie dass in z.b. in einer solchen Zeile:

<sequence keys="www.Scharesoft.de" delay="0" pause="100"/>

der pause-Wert nicht angeben ist ... aber warum das da steht weiß ich jetzt auch nicht >_> Kommt das bei xml's die du erstellt hast oder von anderen?

EDIT:

Achja meine Browser.xml sieht jetzt so aus (ich werde aber nicht mehr groß was dran machen):

Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<shoot-config>
   <command-list>
      <command name="Browser" phrase="fire fox">   
         <key type="CTRL ALT 4"/>
      </command>
      <command name="Schließen" phrase="close">
         <key type="Left Alt F4"/>
      </command>
      <command name="Abbruch" phrase="stop">
         <key type="Esc"/>
      </command>
      <command name="runterscrollen" phrase="scroll down">
         <key type="down" repeat="9"/>
      </command>
      <command name="hochscrollen" phrase="scroll up">
         <key type="up" repeat="9"/>
      </command>
      <command name="zurück" phrase="back">
         <key type="Backspace"/>
      </command>
      <command name="Neu laden" phrase="reload">
         <key type="F5"/>
      </command>
      <command name="Schareportal" phrase="Share soft">
         <key type="Left ALT S"/>
         <sequence keys="www.Scharesoft.de" delay="0" pause="0"/>
         <key type="Enter"/>
         </command>
      <command name="UbiForum" phrase="Morrowind">
         <key type="Left ALT S"/>
         <sequence keys="forums-de.ubi.com" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="eve" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="ubb.x" delay="0" pause="0"/>
         <key type="SHIFT ß"/>
         <sequence keys="a" delay="0" pause="0"/>
         <key type="SHIFT 0"/>
         <sequence keys="cfrm" delay="0" pause="0"/>
         <key type="SHIFT 6"/>
         <sequence keys="s" delay="0" pause="0"/>
         <key type="SHIFT 0"/>
         <sequence keys="59010161" delay="0" pause="0"/>
         <key type="SHIFT 6"/>
         <sequence keys="f" delay="0" pause="0"/>
         <key type="SHIFT 0"/>
         <sequence keys="765100233" delay="0" pause="0"/>
         <key type="Enter"/>
         </command>
      <command name="OBL Forum eng" phrase="english oblivion forum">
         <key type="Left Alt S"/>
         <sequence keys="www.elderscrolls.com" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="forums" delay="0" pause="0"/>
         <key type="SHIFT 7"/>
         <sequence keys="index.php" delay="0" pause="0"/>
         <key type="SHIFT ß"/>
         <sequence keys="showforum" delay="0" pause="0"/>
         <key type="SHIFT 0"/>
         <sequence keys="25" delay="0" pause="100"/>
         <key type="Enter"/>
         </command>
      <command name="Web.de" phrase="Email">
         <key type="Left Alt S"/>
         <sequence keys="web.de" delay="0" pause="100"/>
         <key type="Enter"/>
         </command>
   </command-list>   
   <push-to-talk initial-state="on">
      <hold on-press="enable">
         <key type="4"/>
         <key type="Left ALT S"/>
         <key type="Left Alt F4"/>
      </hold>
   </push-to-talk>
</shoot-config>

Is ganz witzig, zum Beispiel der scrolldown befehl wenn ich irgendwie im Foren Rpg les und dabei entspannt im Stuhl sitzen möchte oder so ^^
 
Ich bin jetzt komplett auf Voice Flux umgestiegen, da kann man viele andere lustige Sachen machen. Für den Browser hab ich eine ähnliche Konfiguration (das mit dem scrollen merk ich mir mal :-D), außerdem hab ich jetzt einen Großteil meiner Musik verknüpft so kann ich jetzt "offspring", "slipknot" usw. in den Raum rufen und der PC gehorcht (bloß nen Wechsel muss man wegen der Lautstärke per Hand machen oder eben Titelpausen abwarten). Zudem hab ich noch ganz allgemeine Funktionen möglichst eingedeutscht (nich lachen): ubmaldan (abmelden), shleesn (Fenster schließen), copeeran (markierten Text kopieren), lasen (markierten Text vorlesen lassen), witer (Fenster wechseln -> ALT+TAB), ...
Naja, alles in allem: VOLL LUSTIG (und teilweise auch ganz praktisch)
 
Hab mir gerade eine Computerstimme (aber nicht per "Say=" sondern per Wav file da die etwas "realer" ^^ klingt) eingebaut die mir bescheid gibt wenn bestimmte Dinge erledigt sind da ich sie nicht extra im Nachhinein inspiziere (also z.b. Ini-Wechsel in Flux). Und natürlich eine entsprechende Stimme wenn ich den Befehl zum Shutdown gebe ;)
Ich finde die Optionen mit den Mauspositionen ganz witzig, da kann man evntl. ne Menge mit anfangen, aber ich bin bis jetzt zu faul gewesen da groß was dran zu basteln.

Ps.: Die Alt+Tab Funktion könnte man doch auch so nutzen dass per {Alt-Down} (oder so) Alt gedrückt bleibt und man dann mit nem extra command per Tab weiterschalten kann oder? (und dann irgendwann wieder {Alt-Up})
 
Jo, hab das auch mit {altdown} und {altup} gemacht, nur nimm statt {tab} lieber +{tab}, da das erste nur immer zwischen 2 Fenstern herschaltet das zweite aber alle Fenster miteinbezieht.

Das mit dem Vorlesen is ganz lustig, (mein neuester Befehl. "ziet" = "Say:#sh Uhr #mm"). Welche Stimme hast du grad beim Wickel? Die guten sind leider immer kostenpflichtig :cry: (kannste mir ja schicken :-D)
 
Ah okay thx werd ich ausprobieren. Die zwei Stimmen die ich erwähnt hab sind eigentlich nix besonderes, lediglich einmal einer der mir mit einem "affirmative" kommt, und ein Fräulein, das sowas in der Art: "Initializing shutdown sequence, shutdown - initiated" sagt.
An Stimmen für die Text-to-speech engine hab ich leider auch keine anderen als die Standartdinger :/
 
Naja, ich hab da die "Katrin", die sagt aber immer zwischendurch "...bitte registrier mich..." usw. :-D