FoxVox Free voice control software for BMS
-
I just removed 1.1 beta from my machine, rebooted, installed 1.1.1 noticing it didn’t come with the default BMS library as it did before (if I’m not mistaken)
I went and downloaded the separate library that is provided via google drive link above, assigned my PTT combo, loaded the library and got an error about the “dictionary not matching the voice recognition grammar” or similar (sorry, I didn’t capture a screenshot).
I rebooted again and now I’m getting the same error as before when starting foxvox:
after moving the library out of the way, foxvox starts up normally again.
Some more debugging showed that while my win10 language is set to english, it has only installed the german speech recognition & package (i don’t know why) and it refused to download additional speech packages over my “metered connection” (which I’m using to prevent forced updates on win10pro).
This condition probably led to the grammar error above, which now seems to be resolved after installing the english speech recognition pack, so right now all is looking good on my end
Thanks for the update foxster & for all your work on this project.
All the best,
Uwe
-
Actually it doesn’t come with or install a default library…it loads the last file used which is stored in a settings config file automatically saved on exit. The config file is located in <Root>\users\<username>\AppData\Local\FoxVox\settings.ini and it stores a key with the library path.
Your explanation indicates something in the library file was breaking it. I’m pretty sure it was the change of the PTT Joystick ID keys in the Beta Version you ran but I’d need the library file to confirm. Anyway, glad we got it resolved. In the meantime I fixed the issues with the PTT keyboard keys binding. I didn’t mention it but you can use keyboard keys for PTT separately or in conjunction with joystick inputs, but the RawInput API changes I implemented in v1.1 caused a bug. I’ll look more into handling corrupted library failures more gracefully, but it should be a very rare issue.
As for the language packs, FoxVox should support all languages installed so if you want to give it a go in German for any reason, it should work. It uses the current culture of the computer however for recognition and I didn’t build in a way to change that. Let me know if we need a v1.2
-
@foxster said in FoxVox Free voice control software for BMS:
Actually it doesn’t come with or install a default library…it loads the last file used which is stored in a settings config file automatically saved on exit. The config file is located in <Root>\users\<username>\AppData\Local\FoxVox\settings.ini and it stores a key with the library path.
Your explanation indicates something in the library file was breaking it. I’m pretty sure it was the change of the PTT Joystick ID keys in the Beta Version you ran but I’d need the library file to confirm. Anyway, glad we got it resolved. In the meantime I fixed the issues with the PTT keyboard keys binding. I didn’t mention it but you can use keyboard keys for PTT separately or in conjunction with joystick inputs, but the RawInput API changes I implemented in v1.1 caused a bug. I’ll look more into handling corrupted library failures more gracefully, but it should be a very rare issue.
As for the language packs, FoxVox should support all languages installed so if you want to give it a go in German for any reason, it should work. It uses the current culture of the computer however for recognition and I didn’t build in a way to change that. Let me know if we need a v1.2
First of all, thank you on my behalf and on behalf of our entire community for the great task that has been given in offering us a program for FALCON BMS free and at no cost, investing your time and dedication.
In our case, we are a Spanish-speaking community, we cannot fully exploit your program, since our win10 operating systems are in Spanish, the graphical interface can be added, although the voice recognition package in English can be added, but even so the The operating system tells us that the language of the graphical interface has to coincide with that of voice recognition and when we open its voice recognition program, it also tells us through an announcement that does not match the language of the operating system with that of voice recognition. .
Any advice you can give us in this regard.
GREETINGS from the Caribbean.
-
I’m no expert in this regard but I think it’s not so easy to use other speech recognition engines when they differ from what windows considers your OS language. I know that voice attack has an option to use alternate engines, but I have no idea if that would allow running the GUI in one language and the speech recognition in another.
Typical Microsoft brain damage if you ask me, sorry I cannot offer any further advice at the moment. I run win10pro in English, and one might argue that with English being the international aviation language anway, a well-versed Viper pilot should have no issue with this. I for one would rather not use voice recognition than having to command my AI folks around in German, this would sound really silly
When I was still on win7 which didn’t allow switching languages unless you went enterprise I half managed to train the voice recognition software to accept spoken english input, mostly by lots of training sessions and excluding the german words it “recognized” instead.
All the best,
Uwe
-
@hoover said in FoxVox Free voice control software for BMS:
I’m no expert in this regard but I think it’s not so easy to use other speech recognition engines when they differ from what windows considers your OS language. I know that voice attack has an option to use alternate engines, but I have no idea if that would allow running the GUI in one language and the speech recognition in another.
Typical Microsoft brain damage if you ask me, sorry I cannot offer any further advice at the moment. I run win10pro in English, and one might argue that with English being the international aviation language anway, a well-versed Viper pilot should have no issue with this. I for one would rather not use voice recognition than having to command my AI folks around in German, this would sound really silly
When I was still on win7 which didn’t allow switching languages unless you went enterprise I half managed to train the voice recognition software to accept spoken english input, mostly by lots of training sessions and excluding the german words it “recognized” instead.
All the best,
UweWe have seen that it is very complicated, even in my case I have the version of win10 SL, which only supports a single language and even so to change the language in the graphical interface it takes entering the register and other somewhat delicate issues.
The same here we want to say the orders in English, but we find this incumbent. We have even tried to train the detection engine but it does not work when it is from one language to another.
So we are still in combat.
Greetings.
-
@viper-0 I’m happy to be able to share something with a great community where there are a lot of others doing the same. I always felt that there would be a demand to support multiple languages but I never got around to testing it. Thanks for letting me know about your experience.
I will take a look at making culture recognition more robust and flexible so they can be assigned and match between the graphical interface and speech recognition modules. I also have to consider what happens with mixed languages also as that may be important, particularly with BMS. Keeping in mind that the tool is only a couple months old and I wanted to get a release out sooner rather than later, I couldn’t address everything up front but I’ll certainly take a look at this and keep you notified.
Thanks for the great feedback, and best wishes!
-
@foxster We really like to exhort all those who give a little bit of their life to support and strengthen this community of military aviation simulation and much more when we are offered such a high quality simulator made from the heart.
So as a representative of my community in my country and my name, we thank you for every minute of your time invested in this wonderful community.
Greetings from the Caribbean.
-
@viper-0 Here’s a screenshot of the new language recognition settings in the v1.2 Beta. The language setting is stored within each library file. You’ll get an error message if you set a language that is not installed whenever voice recognition is started. Hopefully this moves it in the right direction for our multi-national community!
Once it’s through Beta I’ll get it pushed out to everyone. Best Regards.
-
@foxster said in FoxVox Free voice control software for BMS:
@viper-0 Here’s a screenshot of the new language recognition settings in the v1.2 Beta. The language setting is stored within each library file. You’ll get an error message if you set a language that is not installed whenever voice recognition is started. Hopefully this moves it in the right direction for our multi-national community!
Once it’s through Beta I’ll get it pushed out to everyone. Best Regards.
Excellent, really very happy here for such good news.
Anxiously waiting for the beta to pass to get our hands on it.
Greetings, pilot.
-
@hoover / @VIPER-0 Thanks for trying this out. I’m experiencing an error as well - unable to use an installed language pack. The problem is that Windows doesn’t seem register the installed language pack in a way the System.Speech libraries expect to see it. I’ve attached a screenshot showing two languages installed on a computer with all options including SR but only the English language engine is registered on the machine (see the Registry key and Windows folder structure in the attached image). Apparently there has been a change in Windows 10 with the way language packs are installed and used.
I don’t know exactly what MS is doing with speech recognition, but I think things have become messy after Cortana. Since the installed language isn’t registered as an engine to the system, the Recognition Engine throws the exception and the user is unable to use that language. Further investigation will be required but until I can find a way to use the installed languages, all I can do is limit the language options select list to only display those that will work.
-
@foxster said in FoxVox Free voice control software for BMS:
@hoover / @VIPER-0 Thanks for trying this out. I’m experiencing an error as well - unable to use an installed language pack. The problem is that Windows doesn’t seem register the installed language pack in a way the System.Speech libraries expect to see it. I’ve attached a screenshot showing two languages installed on a computer with all options including SR but only the English language engine is registered on the machine (see the Registry key and Windows folder structure in the attached image). Apparently there has been a change in Windows 10 with the way language packs are installed and used.
I don’t know exactly what MS is doing with speech recognition, but I think things have become messy after Cortana. Since the installed language isn’t registered as an engine to the system, the Recognition Engine throws the exception and the user is unable to use that language. Further investigation will be required but until I can find a way to use the installed languages, all I can do is limit the language options select list to only display those that will work.
Immensely grateful for all the effort and dedication.
We are here testing the beta we will send you news after we meet and make the conclusions.
Greetings.
-
Downloaded and installed this tool today. Thank you very much for writing it and publishing it!
However, I ran into the following problem at startup:
===group
The system cannot find the file specified Inner Exception: Empty at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at FoxVox.Models.Voice.Recognizer.e1yoi3edaC0Ejy0xGw8(Object ) at FoxVox.Models.Voice.Recognizer.ToggleRecognition() at FoxVox.Models.Voice.Recognizer.StartRecognition() at FoxVox.MainWindow.<Window_Loaded>d__11.Vib36LqQGZMr8GDqh3Y(Object ) at FoxVox.MainWindow.<Window_Loaded>d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
===
Windows Speec Recognition is enabled and I’ve also downloaded the speech recognition pack for English US.
Not sure what triggers this exception, but maybe you can tell from the stacktrace. -
@kungfoo Hmmmm, nope, you’ve uncovered a new one. What OS and .net versions are you running? First time install? Do you get this error when launching the app? Thanks, and sorry for any issues…I’ll do my best to find the culprit!
-
This is a first time install.
This is what is listed by this tool:
https://github.com/jmalarcon/DotNetVersions/releases/tag/v1.0.0Currently installed "classic" .NET Versions in the system: 2.0.50727.4927 Service Pack 2 3.0.30729.4926 Service Pack 2 3.5.30729.4926 Service Pack 1 4.0.0.0 4.8.04084
-
@kungfoo Win 10?
-
Yup. Culture is EN (US) and that language pack is also installed.
-
It’s probably obvious to everyone, but it took me a while to find the function where I can assign sounds to indicate voice recog. is active / inactive (I prefer push to talk over “always on”), so I thought I share my discovery here:
Under “push to talk” in the “cogwheel” section, there are two little speakers where you can assign sounds that indicate that VR is active and also when VR goes inactive.
Great addition foxster, thanks your hard work!
All the best,
Uwe
-
@foxster This is VERY cool, thank you for developing and sharing!
(Edit: I did not understand the pause/resume properly. They toggle voice recognition on/off entirely. I thought they would allow for ignoring parts of a phrase as the example below.)
I have watched the videos and jumped into the deep end first. I tried to make the tool handle a spoken phrase such as this one, which should lead to a keypress sequence of “T-T-5”:
This would be said verbatim:
“Kunsan Approach, Spade 1, Two-ship F-16s, North, 25 miles, Request runway for overhead approach”
Highlighting the operative words in brackets, everything else is irrelevant:
Kunsan [APPROACH], Spade 1, Two-ship F-16s North, 25 miles, [REQUEST] runway for [OVERHEAD APPROACH]
I could not manage to set that up with Pause and Resume keywords, so I tried a simpler phrase, verbatim :
“Kunsan Approach, Request overhead approach”
It recognizes my phrase as you can see from the screenshot, but problem is that I do not get my T-T-5 command. I have set up Pause and Resume keywords like this:
It works if I remove Pause+Resume words and changes the voice key for the voice command group to “Kunsan Approach”. But that makes it less fluent to state the command.
I might very well be approaching the Pause/Resume the wrong way. If not, would it be possible to add a list of ignore single words, eg. “Kunsan”, such that the first recognized operative word that is parsed is “Approach” ?
Please advice, cheers
-jb -
@jayb Your issue is it’s not locking onto the voice group because the phrase is probably configured to only start with ‘Approach’. To get onto a voice group properly, it must recognize the first phrase in the group, kind of like ‘Alexa, do this’. Needs to start with ‘Alexa’. In your case you should just allow Approach OR Kunsan to get you onto the group key. Then you can say ‘Kunsan’, ‘Approach’, or ‘Kunsan Approach’ together and all will work. The flexibility makes it easy to say it in various fashions so you’re not locked into the same exact speech - feels more natural, but it does need to be set up that way.
Here’s a screenshot
You could also just type in ‘Kunsan Approach’ as one word and it would require both to be said. I think the first way is more flexible/better results.
-
FYI to anyone interested, version 1.2 will be out shortly and it includes the ability to run any windows shell command (launch exe, run bat file, or open a file that has an associated app) on the output command. You can open a pdf or run a program with a voice command in addition to sending keystrokes. Also it will support switching to a different library if you’d ever want to do that. I’m just wrapping it up… should post sometime tomorrow.