HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
For the ones who have the error:
HotVoice.dll failed to load
Dll may be blocked. Try running the powershell command Get-ChildItem -Path '.'-Recurse Unblock-File in the script folder
Be sure to have the Microsoft Speech platform Runtime Server installed:
https://www.microsoft.com/en-us/download/details.aspx?id=27225
And chose one or more languages pack:
https://www.microsoft.com/en-us/download/details.aspx?id=27224
I got this error too, and found that I need the runtime server.
Moreover be sure to use the AutoHotkey Unicode 64Bit.
HotVoice.dll failed to load
Dll may be blocked. Try running the powershell command Get-ChildItem -Path '.'-Recurse Unblock-File in the script folder
Be sure to have the Microsoft Speech platform Runtime Server installed:
https://www.microsoft.com/en-us/download/details.aspx?id=27225
And chose one or more languages pack:
https://www.microsoft.com/en-us/download/details.aspx?id=27224
I got this error too, and found that I need the runtime server.
Moreover be sure to use the AutoHotkey Unicode 64Bit.
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Dang. Still won't work
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Hey @evilC, this is amazing!
I went through this thread, and in this post, you add the prefix "Open" to the app name.
I would like to build on that, so that it actually opens the app. I tried to use the Switch command to recognise the word that is chosen, and then open the corresponding app. My script is as per below:
Trying to work out what to use as the choice for Switch; is it even possible?
I went through this thread, and in this post, you add the prefix "Open" to the app name.
I would like to build on that, so that it actually opens the app. I tried to use the Switch command to recognise the word that is chosen, and then open the corresponding app. My script is as per below:
Code: Select all
MyFunc(grammarName, words){
ToolTip % "Command: " grammarName " " words[2]
msgbox % words[2]
Switch % words[2]
{
Case Word:
msgbox WORD
run WINWORD.exe /w
Case Excel:
run, excel.exe /x
Case PowerPoint: ;to do more than one case at a time use Case 2, 3:
run,Powerpnt.exe /x
Case Outlook:
Run, Outlook.exe
}
}
____________________________________
Check out my site, submeg.com
Connect with me on LinkedIn
Courses on AutoHotkey
Check out my site, submeg.com
Connect with me on LinkedIn
Courses on AutoHotkey
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Switch syntax is wrong, you need quotes around each option
Case "Word":
Case "Word":
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Just wondering, can anyone confirm that this script works on Windows7 ?
I've still had no luck but am very hopeful that there is a way to get it running on my Win7 computer :/
I've still had no luck but am very hopeful that there is a way to get it running on my Win7 computer :/
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
@scriptor2016, v1.4 is working on my Win7 SP1 64-bit system. Downloaded from here. German and Spanish work too, by the way.
If you just clone the github repo and run an example, for sure it won't work. You need the zip file from the releases page. There are other requirements too, listed on this github page.
Regards,
burque505
If you just clone the github repo and run an example, for sure it won't work. You need the zip file from the releases page. There are other requirements too, listed on this github page.
Regards,
burque505
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
hi burque505burque505 wrote: ↑18 Jul 2020, 17:40@scriptor2016, v1.4 is working on my Win7 SP1 64-bit system. Downloaded from here. German and Spanish work too, by the way.
If you just clone the github repo and run an example, for sure it won't work. You need the zip file from the releases page. There are other requirements too, listed on this github page.
Regards,
burque505
I followed all the instructions and am still getting this message:
HotVoice.dll failed to load
Dll may be blocked. Try running the powershell command Get-ChildItem - Path '.' - Recurse Unblock-File in the script folder
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
The instructions were easy to follow, but there was one problem.
I cannot run "unblock.ps1" as administrator, because "run as administrator" is not appearing when I right-click the file. So instead, I clicked on "Run With Powershell".
Could this be a problem?
(By the way, I do not have the file "unblock1.ps1", but instead the file is called "Unblocker.ps1")
I cannot run "unblock.ps1" as administrator, because "run as administrator" is not appearing when I right-click the file. So instead, I clicked on "Run With Powershell".
Could this be a problem?
(By the way, I do not have the file "unblock1.ps1", but instead the file is called "Unblocker.ps1")
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Gosh, I don't know if that'll be a problem or not. Are you able to run PowerShell as admin? If so, open Powershell, navigate to the directory with 'Unblocker.ps1' and run it from there with PowerShell.
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
ok, so I managed to get into powershell to run the Unblock.ps1 script.
But it gave me the following error:
\Unblocker1.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
But it gave me the following error:
\Unblocker1.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
I managed to set powershell to unrestricted, so the above error message has been taken care of.
After navigating to the proper directory, tried all of these:
./Unblocker.ps1
./Unblocker
. ./Unblocker.ps1
. ./Unblocker
.\Unblocker.ps1
.\Unblocker
. .\Unblocker.ps1
. .\Unblocker
But I get this error:
"The term 'Unblock-File' is not recognized as the name of a cmdlet, function, script file, or operable program...etc." error.
Anyhoo. Looks like this is a lost cause. If I simply right-click the Unblocker.ps1 file in windows explorer, then choose "Run With Powershell" , a small black pop-up window appears for less than a second then disappears. I'm guessing that window is a .cmd command prompt window or something - but it doesn't look like the PowerShell window.
I've been at this for many months now and have never solved it. Thanks again though, maybe someone else might be able to chime in and see why HotVoice won't run on this system.
Windows7 64-Bit Service Pack 1
Microsoft Speech Platform Runtime is installed as well as the english pack.
After navigating to the proper directory, tried all of these:
./Unblocker.ps1
./Unblocker
. ./Unblocker.ps1
. ./Unblocker
.\Unblocker.ps1
.\Unblocker
. .\Unblocker.ps1
. .\Unblocker
But I get this error:
"The term 'Unblock-File' is not recognized as the name of a cmdlet, function, script file, or operable program...etc." error.
Anyhoo. Looks like this is a lost cause. If I simply right-click the Unblocker.ps1 file in windows explorer, then choose "Run With Powershell" , a small black pop-up window appears for less than a second then disappears. I'm guessing that window is a .cmd command prompt window or something - but it doesn't look like the PowerShell window.
I've been at this for many months now and have never solved it. Thanks again though, maybe someone else might be able to chime in and see why HotVoice won't run on this system.
Windows7 64-Bit Service Pack 1
Microsoft Speech Platform Runtime is installed as well as the english pack.
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
What version of PowerShell are you running?
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
hey, thanks for keeping up with this.
I typed in (Get-Host).Version and it returned these results:
Major = 2
Minor = 0
Build = -1
Revision = -1
Also, the target location of my powershell is
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
I typed in (Get-Host).Version and it returned these results:
Major = 2
Minor = 0
Build = -1
Revision = -1
Also, the target location of my powershell is
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Try this, the version is the second result:
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
There's only one command in the unblocker ps1 script - just make sure you have an admin powershell prompt active, copy the one line of code from the ps1 file, then paste it into an admin powershell prompt and run it
The alternative to even needing the blocker is to unblock the files whilst they are still in the zip - you can right-click the HotVoice zip, select properties, then check the unblock box there
Then, when you unzip the files from the hotvoice zip, they are already unblocked
The alternative to even needing the blocker is to unblock the files whilst they are still in the zip - you can right-click the HotVoice zip, select properties, then check the unblock box there
Then, when you unzip the files from the hotvoice zip, they are already unblocked
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
thanks - I managed to select 'unblock' before unzipping the files, but unfortunately the same "dll may be blocked" error continues to show.evilC wrote: ↑20 Jul 2020, 11:35There's only one command in the unblocker ps1 script - just make sure you have an admin powershell prompt active, copy the one line of code from the ps1 file, then paste it into an admin powershell prompt and run it
The alternative to even needing the blocker is to unblock the files whilst they are still in the zip - you can right-click the HotVoice zip, select properties, then check the unblock box there
Then, when you unzip the files from the hotvoice zip, they are already unblocked
The only other issue was when I ran the 'Demo.ahk' file for the first time, it wouldn't load because it couldn't find the path to the Lib folder in order to include HotVoice.ahk , so I had to change the #Include line at the top of the Demo.ahk
originally, the line looked like something like this:
#include Lib\HotVoice.ahk
but it was directing to some random folder in my hard drive, so i had to change it so it now reads like this:
#include D:\MyScriptFolders\HotVoice\Lib\HotVoice.ahk
..I don't know if this may have caused any issues.
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
If you unzip the zip,all the files should be in the right place and the demo scripts should work.
Are you sure you are downloading a release, or are you maybe using the green "clone or download" button on the main page.
Do you have the DLLs in your zip?
Are you sure you are downloading a release, or are you maybe using the green "clone or download" button on the main page.
Do you have the DLLs in your zip?
-
- Posts: 862
- Joined: 21 Dec 2015, 02:34
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
I'm pretty sure I've figured out the #include Lib\HotVoice.ahk issues because I am no longer seeing the error which states it cannot find the HotVoice.ahk in the Lib folder, but the "HotVoice.dll failed to load" error still happens when I run Demo.ahk
But-
If I compile Demo.ahk and then run the .exe, I get this error:
Unable to find lib\HotVoice.dll, exiting...
This is the location of my AHK Lib folder:
C:\Documents and Settings\MyUser\Documents\AutoHotkey\Lib
and inside this Lib folder are:
-HotVoice.ahk
-HotVoice.dll
-Microsoft.Speech.dll
And this is where I downloaded and saved the HotVoice.zip file:
D:\AutoHotKey\Scripts\HotVoice
and in this folder are:
-CHANGELOG.md
-Choices Example.ahk
-Demo.ahk
-HotVoice.zip
-LICENSE
-README.md
-Simple Example.ahk
-Unblocker.ps1
-Lib(the Folder) - is this the Lib folder the script points to, or is it pointing to the C:\Documents and Settings\MyUser\Documents\AutoHotkey\Lib folder?
anyhow, inside this Lib folder are again these 3 files:
---HotVoice.ahk
---HotVoice.dll
---Microsoft.Speech.dll
And, here's the full Demo.ahk code I'm using:
so, even though it gives the "HotVoice.dll failed to load" error, it is still locating the HotVoice.dll file ... but when compiling Demo.ahk and then running it as Demo.exe, the error says that it cannot find the .dll file.
...what in the world could be wrong here. I'd give anything to get this thing running.
But-
If I compile Demo.ahk and then run the .exe, I get this error:
Unable to find lib\HotVoice.dll, exiting...
This is the location of my AHK Lib folder:
C:\Documents and Settings\MyUser\Documents\AutoHotkey\Lib
and inside this Lib folder are:
-HotVoice.ahk
-HotVoice.dll
-Microsoft.Speech.dll
And this is where I downloaded and saved the HotVoice.zip file:
D:\AutoHotKey\Scripts\HotVoice
and in this folder are:
-CHANGELOG.md
-Choices Example.ahk
-Demo.ahk
-HotVoice.zip
-LICENSE
-README.md
-Simple Example.ahk
-Unblocker.ps1
-Lib(the Folder) - is this the Lib folder the script points to, or is it pointing to the C:\Documents and Settings\MyUser\Documents\AutoHotkey\Lib folder?
anyhow, inside this Lib folder are again these 3 files:
---HotVoice.ahk
---HotVoice.dll
---Microsoft.Speech.dll
And, here's the full Demo.ahk code I'm using:
Code: Select all
#SingleInstance force
#Persistent
; Load the HotVoice Library
#include Lib\HotVoice.ahk
; Create a new HotVoice class
hv := new HotVoice()
recognizers := hv.GetRecognizerList()
Gui, Add, Text, xm w600 Center, Available Recognizers
Gui, Add, ListView, xm w600 r5 hwndhRecognizerId -Multi, ID|Name|Code|Language
Loop % recognizers.Length(){
rec := recognizers[A_index]
if (rec.TwoLetterISOLanguageName == "iv")
continue ; Invariant language culture does not seem to be supported
LV_Add(, rec.Id, rec.Name, rec.TwoLetterISOLanguageName, rec.LanguageDisplayName)
}
LV_ModifyCol(1, 30)
LV_ModifyCol(2, 350)
LV_ModifyCol(3, 40)
LV_ModifyCol(4, 155)
LV_Modify(1, "Select")
Gui, Add, Button, Center w600 gLoadRecognizer, Load selected recognizer`n(Languages supported by this demo: en, fr)
Gui, Add, Text, xm w600 Center, Available Commands
Gui, Add, ListView, xm w600 r10 hwndhAvailableCommands, Name|Grammar
Gui, Add, Text, xm Center w600, Mic Volume
Gui, Add, Slider, xm w600 hwndhSlider
Gui, Add, Text, xm Center w600, Output
Gui, Add, Edit, hwndhOutput w600 r5
LV_ModifyCol(1, 125)
Gui, Show, , HotVoice Demo
return
LoadRecognizer:
; Initialize HotVoice and tell it what ID Recognizer to use
Gui, ListView, % hRecognizerId
if (LV_GetCount() == 0){
UpdateOutput("No supported languages found")
return
}
recognizer := GetCurrentRecognizer()
Gui, ListView, % hAvailableCommands
LV_Delete()
if (recognizer.TwoLetterISOLanguageName == "en"){
; ==== ENGLISH ====
hv.Initialize(recognizer.Id)
; -------- Volume Command ------------
volumeGrammar := hv.NewGrammar()
volumeGrammar.AppendString("Volume")
percentPhrase := hv.NewGrammar()
percentChoices := hv.GetChoices("Percent")
percentPhrase.AppendChoices(percentChoices)
percentPhrase.AppendString("percent")
fractionPhrase := hv.NewGrammar()
fractionChoices := hv.NewChoices("quarter, half, three-quarters, full")
fractionPhrase.AppendChoices(fractionChoices)
volumeGrammar.AppendGrammars(fractionPhrase, percentPhrase)
hv.LoadGrammar(volumeGrammar, "Volume", Func("LogWords"))
; Use custom text in listview, else it is too long
LV_Add(, "Volume", "Volume [[quarter,half,three-quarters,full],[<Number> percent]]")
; -------- Call Contact Command -------------
contactGrammar := hv.NewGrammar()
contactGrammar.AppendString("Call")
femaleGrammar := hv.NewGrammar()
femaleChoices := hv.NewChoices("Anne, Mary")
femaleGrammar.AppendChoices(femaleChoices)
femaleGrammar.AppendString("on-her")
maleGrammar := hv.NewGrammar()
maleChoices := hv.NewChoices("James, Sam")
maleGrammar.AppendChoices(maleChoices)
maleGrammar.AppendString("on-his")
contactGrammar.AppendGrammars(maleGrammar, femaleGrammar)
phoneChoices := hv.NewChoices("cell, home, work")
contactGrammar.AppendChoices(phoneChoices)
contactGrammar.AppendString("phone")
LV_Add(, "CallContact", hv.LoadGrammar(contactGrammar, "CallContact", Func("LogWords")))
} else if (recognizer.TwoLetterISOLanguageName == "fr"){
; ==== FRENCH ====
hv.Initialize(recognizer.Id)
; -------- Volume Command ------------
volumeGrammar := hv.NewGrammar()
volumeGrammar.AppendString("Volume")
percentPhrase := hv.NewGrammar()
percentChoices := hv.GetChoices("Percent")
percentPhrase.AppendChoices(percentChoices)
percentPhrase.AppendString("Pour-cent")
volumeGrammar.AppendGrammars(percentPhrase)
hv.LoadGrammar(volumeGrammar, "FrenchVolume", Func("LogWords"))
LV_Add(, "Volume", "Volume [<Nombre>] pour cent")
; -------- French Greeting Command ------------
contactGrammar := hv.NewGrammar()
contactGrammar.AppendString("Bonjour")
maleGrammar := hv.NewGrammar()
maleChoices := hv.NewChoices("Claude, Jaques")
maleGrammar.AppendChoices(maleChoices)
contactGrammar.AppendGrammars(maleGrammar)
LV_Add(, "Greeting (French)", hv.LoadGrammar(contactGrammar, "FrenchGreeting", Func("LogWords")))
} else {
UpdateOutput("Language " recognizer.TwoLetterISOLanguageName " is not supported by this demo")
return
}
; Monitor the volume
hv.SubscribeVolume(Func("OnMicVolumeChange"))
LogRecognizerLoad(recognizer)
hv.StartRecognizer()
return
LogRecognizerLoad(recognizer){
UpdateOutput("Loading Recognizer ID:" recognizer.Id ", Code: " recognizer.TwoLetterISOLanguageName ", Name: " recognizer.LanguageDisplayName)
}
GetCurrentRecognizer(){
global recognizers, hRecognizerId
Gui, ListView, % hRecognizerId
return recognizers[LV_GetNext()]
}
OnMicVolumeChange(state){
global hSlider
GuiControl, , % hSlider, % state
}
; Log out recognized words
LogWords(grammarName, words){
UpdateOutput(grammarName ": " Join(words))
}
; Join array of words into sentence
Join(arr){
for i, w in arr {
str .= w " "
}
return str
}
UpdateOutput(text){
global hOutput
static WM_VSCROLL = 0x115
static SB_BOTTOM = 7
Gui, +HwndhGui
; Get old text
GuiControlGet, t, , % hOutput
;~ t .= text " @ " A_Now "`n"
t .= text "`n"
GuiControl, , % houtput, % t
; Scroll box to end
PostMessage, WM_VSCROLL, SB_BOTTOM, 0, Edit1, ahk_id %hGui%
}
^Esc::
GuiClose:
ExitApp
...what in the world could be wrong here. I'd give anything to get this thing running.
Re: HotVoice - Speech Recognition + Volume detection for AHK (C# DLL)
Hello! Thanks for your app, it works fine , but maybe you can help me with some functions that I'm struggling but can't make work, thanks in advance
I would like say "7" and the mouse click on a place on window, say "8" and click on other. I've managed to set the "7" but dunno how to add more orders. Could you help me?
I would like say "7" and the mouse click on a place on window, say "8" and click on other. I've managed to set the "7" but dunno how to add more orders. Could you help me?
Code: Select all
; This script demonstrates a single initial word ("Test")
#SingleInstance force
#Persistent ; You will need this if your script creates no hotkeys or has no GUI
; Load the HotVoice Library
#include Lib\HotVoice.ahk
; Create a new HotVoice class
hv := new HotVoice()
; Initialize HotVoice and tell it what ID Recognizer to use
hv.Initialize(0)
; Create a new Grammar
testGrammar := hv.NewGrammar()
; Add the word Seven to it
testGrammar.AppendString("Seven")
; Load the Grammar
hv.LoadGrammar(testGrammar, "Seven", Func("myfunction"))
hv.StartRecognizer()
return
myfunction(grammarName, words){
WinActivate, game
WinGetPos, winX, winY, winWidth, winHeight, A
X := winWidth * 0.36
Y := winHeight * 0.86
Click %X% %Y%
Click 600, -2600
}