FoxVox Free voice control software for BMS
-
Hoover,
If you’re up for the beta testing, I’ll add you to the distribution and send you a download link. Currently requires 64 bit windows with .net 4.7 or higher installed.
I mean, Im currently running software which requires 64 bit and .net 4.7.2 or higher… on linux. So it might not be so hard and fast as you might assume.
What licence is this under? If no choice has been made yet, may I suggest GPLv3?
-
I mean, Im currently running software which requires 64 bit and .net 4.7.2 or higher… on linux. So it might not be so hard and fast as you might assume.
What licence is this under? If no choice has been made yet, may I suggest GPLv3?
Thanks Blu3Wolf…I’ll take a look. I was also looking at the MIT license…I’ve been mainly focused on just building it. I know .net can be run on Linux and Mac (to some extent) but I haven’t looked into whether anyone’s ever run Msft Speech Recognition Engine on it.
-
I’ve been wondering if tools like this would run ok under WINE, alongside BMS.
Does Mono or Wine implement Microsoft.Speech.Recognition (or whatever native DLLs underpin that)?
Are there other blockers … can one Wine process call SendInput() to generate keystrokes for another?
Do the RawInput and HID interfaces to intercept joystick buttons/axes work (thinking of Joy2Key scenarios)?
I’m assuming vJoy (kernel driver) would not work as is … but I feel certain there’s a linux equivalent.
-
I’ve been wondering if tools like this would run ok under WINE, alongside BMS.
Does Mono or Wine implement Microsoft.Speech.Recognition (or whatever native DLLs underpin that)?
Are there other blockers … can one Wine process call SendInput() to generate keystrokes for another?
Do the RawInput and HID interfaces to intercept joystick buttons/axes work (thinking of Joy2Key scenarios)?
I’m assuming vJoy (kernel driver) would not work as is … but I feel certain there’s a linux equivalent.
I had read somewhere that MS didn’t port the namespace over to .net core or 5 due to possible licensing issues…or more likely they want to just push their online azure hosted engine which they charge for. Either way I doubt it’s supported in mono. I also read that Google plans to release an offline engine for mobile devices…could be a possibility depending on how they license it. For now though this was just the quickest path to a functional app.
As for joystick an keyboard inputs/outputs, I’m guessing it should be rather straightforward. Although keyboard support seemed archaic and clunky…like code from the 80s patched over to fit the modern world.
-
Cool! Potential successor to DWVAC :).
-
oh wait … looks like there is a System.Speech.Recognition component to .NET Framework? (I mistakenly thought it was all Microsoft.Speech…)
(The original theory behind “System." vs "Microsoft.” distinction was that the former would comprise the universal/portable runtime and base-class libraries … while the latter would be for Windows/Office/whatever proprietary stuff. But that distinction was drawn in the earliest days, when the only portable runtime envisioned was Silverlight. And even so, I recall it became muddy and inconsistent, pretty quick. One probably shouldn’t assume anything either way, based on the the namespace or assembly names. Pretty sure Mono implements a lot of stuff in Microsoft.Win32.* namespace, for example.)
-
mono does not, but you can use winetricks to install native SAPI5. I’ve been working with that to try get a System.Speech method working (in vatSys, an air traffic control client for Vatsim).
As regards the keypress stuff, I’m not entirely sure sorry.
-
FoxVox pre-release update for those following:
It’s been a busy week since the release to initial beta testers. Here’s what’s happening:
New features:
- Added on-the-fly command alias creation. You can now create a voice command to add aliases that aren’t hard coded into the library. This is useful for changing a command like “AWACS request picture” to “Sentry request picture” for a more realistic feel. It can also make commands faster/easier for mission-specific operations.
- Added a customizeable language dictionary for better recognition support, particularly for listing possible aliases. It works like the assisting phrases on individual commands but global in scope and easier to manage.
Latest developments:
- Thanks to airtex2019 and his recent code contribution, getting joystick/mouse input into the software looks promising for the very near future rather than later. This means having voice and joystick mapping all in one. This also would include a requested Push-to-Talk feature. I’ll know more about this as things develop.
I haven’t received any feedback from beta testers on producing a good quality BMS voice command library yet. Maybe I need some more help. Let me know if you’re interested in assisting the project in creating a good voice command file.
Still looking for the right home to host the released app but I’ve got some things in the works. We’ll see. Current target release date is September 17.
-
Current target release date is September 17.
It is against BMS dev culture and forum etiquette to promise release dates for anything … everything will release “in 3 or 4 weeks”.
-
It is against BMS dev culture and forum etiquette to promise release dates for anything … everything will release “in 3 or 4 weeks”.
:amen:
-
Welcome aboard Foxster … always great to have more hobbyist-developers in the community!
FoxVox looks really nice. What’s it built with?
Pros / Cons vs VoiceAttack, apart from license cost?
GitHub is probably the default medium for releasing software these days. There’s a mini-ecosystem of BMS tools there, probably Alternative Launcher is the most popular.
But for things that can’t / don’t want to be open-source, just throwing a zip file onto Google Drive or Dropbox … or an AWS Cloudfront / S3 bucket, is also somewhat common.
There is another piece of software that works well also. It is free and can be used to set up functions like in VoiceAttack. https://www.voicemacro.net/
-
Great, However there was already a freeware Voice key interaction Program called Voicemacro which is very feature packed (edit failed to see the comment above mine so only just reiterated)
-
That’s fantastic news foxster, also many thanks to airtex for his contribution (and of course all the busy testers here :))
“push to talk” or “listen while pushing” rather is a feature I personally cannot do without (I have it mapped to pinky / comms switch forward at the moment) and it’ll make your tool a serious contender in the voice recognition department in my book. I really like its ease of use and the clean interface design.
Thanks for all your hard work & keep it up, it’s much appreciated!
Uwe
-
I think there’s room for a BMS-specific app … things like PTT functionality, and also builtin list of synonyms (“Chalice”, “Sentry”, “Cyborg” etc) or maybe just prefixes to ignore.
Maybe use BMS callback-names/descriptions for the mappings, and parse the current keyfile to know which key sequences to emit, at run-time.
-
Wait – hoover, are you saying it does run ok on Wine?
-
Well done for your work,
As indicated by Airtex2019 a software which takes into account the names of the BMS commands will be a big plus. -
Wait – hoover, are you saying it does run ok on Wine?
Sorry, I’m still running BMS on win10 for “production”. Migrating my setup over to Linux is a bit of a side project
-
As indicated by Airtex2019 a software which takes into account the names of the BMS commands will be a big plus.
Probably a lot of work for very little gain, now that I think about it. Many of the tower/approach/carrier comms don’t even have callbacks defined. eg. the radio menu for “call the ball” is always going to be some key sequence like [T,T,T,T,T,T,4]
Maybe the “T” can change (probably not common) but the number of reps and the id number of the menu item, won’t.
So, just shipping a good default library config with all of these radio menus prepopulated, with default key bindings, is probably 90% of the battle.
-
↑ Thank being said, it is entirely possible that the number of reps and id number of a given command could change or move around, so best to build in a means to patch/update to reflect new radio command menu changes in future releases. When I started VoiceAttack profile(s) for BMS, several current radio menu commands did not exist, and had to be added in later but luckily easily having planned ahead.
(forgive me if I’m stating the obvious here, just tossing out my thoughts having done this for awhile now)
In my personal experience, folks really appreciate it when they don’t need to go back to your source and download/manually update software, so any time you spend building in a patch updater for minor or not-so-minor changes is well worth it!! In fact, if you want most of your users to be using your latest builds, you should build in some sort of update notification system at the very least - it’s a funny thing, but you have no idea how many users will keep up with an older version for simple reasons such as lack of coming back to the source or simply not knowing there is an update/better version.Also, BMS Updates happen ‘out of the blue’, so be ready to drop what you’re doing and patch up your software, and hopefully using an easy system you designed previously in anticipation (like, make it easy to update without having to visit many different pages of code or edit many functions), maybe use a table in one location, for example. If this can exist outside the compiled program, such as a flat config file and/or as part of a patch update system, you can handle changes in BMS without having to rebuild your software, instead just editing a few items in a config/table and pushing a patch out to users next time they load your software. Saves you a lot of time, especially when life is a bit too busy to drop everything and dive back into code.
Best wishes and good luck with your project!!!
(edit: Windows Speech Recognition pro tip #42 - “homophones”)
-
It is against BMS dev culture and forum etiquette to promise release dates for anything … everything will release “in 3 or 4 weeks”.
I am Sooooo Sorry, not just to BMS but programmers everywhere! please let me rephrase that. Anticipated release is TBD in the near future. Shouldn’t be more than a couple of weeks. No dates…you didn’t see that. (hope I don’t get banned :eek:)