Einleitung
Für längere Zeit suchte Ich verzweifelt nach einer Möglichkeit, einem AutoIt Skript über ein Headset mündliche Befehle zu erteilen. Ich wollte wenn möglich nicht auf überteuerte zusätzliche Programme wie z.B. "Dragon Naturally Speaking" zurückgreifen, und hatte auch standartmäßig auf Win XP keine windowseigene Spracherkennung. Nachdem mir mehrmals in verschiedenen Skriptercommunitys versichert wurde, dass so etwas nicht möglich sei, wurde Ich durch Zufall in [Only registered and activated users can see links. Click Here To Register...] fündig. Es ist nämlich sehr wohl möglich und funktioniert sehr gut.
Das braucht man:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
So funktioniert es:
Zuerst einmal müsst ihr das Microsoft Speech SDK installieren.
Ab dann könnt ihr die das oben verlinkte Script wie gewohnt in jedes andere Skript einbinden:
Die SAPIListBox.au3 ermöglicht es euch dann in erster Linie, in eure GUI eine spezielle "SAPI"-ListBox einzubauen. Diese unterscheidet sich optisch nicht von der normalen ListBox, ist jedoch Voice sensitive. Sie makiert wenn aktiviert automatisch (durch Zugriff auf das Microsoft Speech SDK) denjenigen ihrer Einträge, welchen Sie gehört zu meinen glaubt. Zunächst braucht ihr dafür eine GUI, in welche ihr includen könnt:
Nun müsst ihr in diese GUI die erwähnte SAPIListBox einbauen:
Nun müsst ihr noch angeben, welche Wörter die SAPIListBox erkennen soll, und sie enabeln (damit sie anfängt darauf zu achten was gesagt wird):
Und ganz zum Schluss müsst ihr noch angeben, was passieren soll, wenn die SAPIListBox ein bestimmtes Wort erkannt hat (in diesem Fall die Maus bewegen:
Umfangreiche Beispielskripts findet ihr im oben verlinkten Thread.
UDF Befehle
Troubleshooting & FAQ
Q: Funktioniert das ganze auch für Vista und/oder Win7?
A: Dem englischen Forum nach nicht - ich habe es aber auch noch nicht getestet.
Q: Obwohl ich das Microsoft Speech SDK installiert habe, bekomme ich sobald Ich mein Skript ausführen möchte einen "Could not create SAPI List Box control. Ensure you have installed the Microsoft Speech SDK 5.1..." Error?!
A: Man muss in diesem Fall von Hand die "SAPI51ListBox.ocx" Active X control auf seinem Computer registrieren. Dazu klickt man auf "Start" > "Ausführen", gibt den Pfad zur .ocx Datei an ("C:\Programme\Microsoft Speech SDK 5.1\Bin\SAPI51ListBox.ocx") und drückt OK. Nun sollte es funktionieren.
Credits
Die UDF (SAPIListBox.au3) sowie teile des Tutorials stammen von seangriffin von autoitscript.com. Ich habe nur zusammengefasst und auf Deutsch übersetzt.
Für längere Zeit suchte Ich verzweifelt nach einer Möglichkeit, einem AutoIt Skript über ein Headset mündliche Befehle zu erteilen. Ich wollte wenn möglich nicht auf überteuerte zusätzliche Programme wie z.B. "Dragon Naturally Speaking" zurückgreifen, und hatte auch standartmäßig auf Win XP keine windowseigene Spracherkennung. Nachdem mir mehrmals in verschiedenen Skriptercommunitys versichert wurde, dass so etwas nicht möglich sei, wurde Ich durch Zufall in [Only registered and activated users can see links. Click Here To Register...] fündig. Es ist nämlich sehr wohl möglich und funktioniert sehr gut.
Das braucht man:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
So funktioniert es:
Zuerst einmal müsst ihr das Microsoft Speech SDK installieren.
Ab dann könnt ihr die das oben verlinkte Script wie gewohnt in jedes andere Skript einbinden:
Code:
#include <SAPIListBox.au3>
Code:
#include <GuiConstantsEx.au3>
[COLOR="Red"]#include <SAPIListBox.au3>[/COLOR]
$fester = GUICreate("Beispiel zur Spracherkennung",400,300)
GUISetState()
While 1
$msg = GUIGetMsg()
switch $msg
case $GUI_Event_Close
ExitLoop
EndSwitch
WEnd
Code:
$fester = GUICreate("Beispiel zur Spracherkennung",400,300)
[COLOR="Red"]$wortbox = _GUICtrlSAPIListBox_Create(10, 10, 380, 280)[/COLOR]
Code:
#include <GuiConstantsEx.au3>
#include <SAPIListBox.au3>
[COLOR="Green"]dim $msg, $wortbox_array[5] = ["Up","Down","Left","Right","Wait"][/COLOR]
$fester = GUICreate("Beispiel zur Spracherkennung",400,300)
$wortbox = _GUICtrlSAPIListBox_Create(10, 10, 380, 280)
GUISetState()
[COLOR="Red"]_GUICtrlSAPIListBox_EnableSpeech($wortbox, 1)[/COLOR]
[COLOR="Green"]_GUICtrlSAPIListBox_AddArray($wortbox, $wortbox_array)[/COLOR]
Code:
While 1 $msg = GUIGetMsg() [COLOR="Red"]$mausposition = MouseGetPos()[/COLOR] [COLOR="Red"]if _GUICtrlSAPIListBox_CurSelChanged($wortbox) = True Then if StringCompare(_GUICtrlSAPIListBox_GetText($wortbox), "Up") = 0 Then MouseMove($mausposition[0],$mausposition[1]-50) EndIf if StringCompare(_GUICtrlSAPIListBox_GetText($wortbox), "Down") = 0 Then MouseMove($mausposition[0],$mausposition[1]+50) EndIf if StringCompare(_GUICtrlSAPIListBox_GetText($wortbox), "Left") = 0 Then MouseMove($mausposition[0]-50,$mausposition[1]) EndIf if StringCompare(_GUICtrlSAPIListBox_GetText($wortbox), "Right") = 0 Then MouseMove($mausposition[0]+50,$mausposition[1]) EndIf EndIf[/COLOR] switch $msg case $GUI_Event_Close ExitLoop EndSwitch WEnd
UDF Befehle
Troubleshooting & FAQ
Q: Funktioniert das ganze auch für Vista und/oder Win7?
A: Dem englischen Forum nach nicht - ich habe es aber auch noch nicht getestet.
Q: Obwohl ich das Microsoft Speech SDK installiert habe, bekomme ich sobald Ich mein Skript ausführen möchte einen "Could not create SAPI List Box control. Ensure you have installed the Microsoft Speech SDK 5.1..." Error?!
A: Man muss in diesem Fall von Hand die "SAPI51ListBox.ocx" Active X control auf seinem Computer registrieren. Dazu klickt man auf "Start" > "Ausführen", gibt den Pfad zur .ocx Datei an ("C:\Programme\Microsoft Speech SDK 5.1\Bin\SAPI51ListBox.ocx") und drückt OK. Nun sollte es funktionieren.
Credits
Die UDF (SAPIListBox.au3) sowie teile des Tutorials stammen von seangriffin von autoitscript.com. Ich habe nur zusammengefasst und auf Deutsch übersetzt.