FoxVox Free voice control software for BMS
-
-
-
Just released v1.4 of FoxVox. This is a minor update with the biggest change being a new ptt feature allowing ptt isolation (ptt will be prevented if any additional buttons are pressed besides the required ones) and some minor tweaks and improvements to the underlying recognition. Nothing really big though. No update compatibility issues with version 1.3. - just download and install over it is fine.
-
-
Hi folks,
I’ve been having some crashes and exceptions with the latest update… has anyone else seen this?
I haven’t managed to capture a screen shot yet, but will try to remember the next time it happens.
All the best,
Uwe
-
@hoover Keep me posted about what you’re experiencing and I’ll look into it. It’s been running very stable on my system but there were some under-the-hood improvements and prep for the next update. Any unhandled crashes should post an exception log in your user temp directory…unless it’s something outside the app like within the Framework or possibly with the multi-threading.
-
Hello foxster, thanks for the hint, here’s the logfile from the last crash.
All the best,
Uwe
Value cannot be null. Parameter name: source Inner Exception: Empty at System.Globalization.CompareInfo.IndexOf(String source, String value, CompareOptions options) at FoxVox.Models.Voice.VoiceKey.g0TPjP7jWQAfP34dh2w(Object , Object , Object , CompareOptions ) at FoxVox.Models.Voice.VoiceKey.fn2pssxIvj(String ) at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) at FoxVox.Models.Voice.VoiceKey.MatchesInput(IEnumerable`1 input) at FoxVox.Models.Voice.VoiceCommandKey.<>c__DisplayClass44_0.<MatchesInput>b__1(VoiceKey k) at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate) at FoxVox.Models.Voice.VoiceCommandKey.MatchesInput(IEnumerable`1 input) at FoxVox.Models.Voice.VoiceCommand.<>c__DisplayClass42_0.<MatchesInput>b__0(VoiceCommandKey k) at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate) at FoxVox.Models.Voice.VoiceCommand.MatchesInput(IEnumerable`1 input) at FoxVox.Models.Voice.Recognizer.<>c__DisplayClass30_0.<SendVoiceCommandAsync>b__1() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at FoxVox.Models.Voice.Recognizer.<SendVoiceCommandAsync>d__30.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch()
-
@hoover Perfect, this helps - that’s why you build in crash logs :). I’ll get a fix out asap.
-
@foxster Great tool. I’ve produced a basic library but now when I tried to start the voice recognition I get
“Speech Error”
Failed to start voice recognition for:
English (United States)Double-quoted string not valid.
Where can I can find the log to post for you?
-
@william found it. I can’t use quotes in Voice Command descriptions.
-
@william Good to know. I’m almost finished with the next update and I’ll include looking at this. I’ve been buried with work lately so I’m a little behind. Thanks for the info!
-
@foxster my basic library can be obtained from the following link
https://drive.google.com/file/d/1d4Nf_Sfcs6hjhT8lTUQ_gAy0BI8cwX-Z/view?usp=sharing
PTT buttons on my HOTAS Cougar TQS don’t seem to work properly. If I set the buttons to toggle it works. But if I use just them as PTT buttons with no options the software does not recognize the button press (and hold).
-
@william I have the same PTT issue, just i did not have the time yet to look deeper into it. 4 Buttons from the TQS are also set by default which i can‘t remove as PTT-Buttons. Don‘ t remember which ones, will check when i‘m back home.
Is there an option where i can disable or put to inactive some profiles during troubleshooting ?
-
@le_beau I’ve heard of some joysticks with buttons defaulting to the pushed state (or autofire) causing them to always register as pressed in FoxVox making them seem like defaults. There are no defaults however in the app, it’s just registering them. I don’t recall what they did to fix it and stop them from firing but I’ll add a capture on/off button so you can turn off capture and allow you to delete any extra buttons in the upcoming update. That will allow you to remove them.
I can also add an option to disable commands, but you could always just copy the library file to a new one for testing and remove everything except what you want to test…that’s what I do. You can also swap libraries with voice commands.
-
@william Thinking on this, I believe your issue is similarly related to the joystick outupting button presses automatically. One thing is to make sure the Isolate option is Off - this option makes the PTT only work when the defined buttons and ONLY those buttons are pressed. If any additional buttons are pressed and Isolate is on, PTT won’t engage, and if some buttons are always auto-pressed, you’ll never be able to engage it without using Toggle. In addition to the option to toggle joystick button detection, I think I’ll add an Ignore Buttons list to the global PTT setting where you can have any autopressed buttons be blocked from detection and execution of ptt. That way you can effectively remove any buttons causing interference from the detection so they don’t get in the way. I’ll post a notice when the update is released. Hopefully this will give you both the added control necessary to easily adapt to your default joystick operation.
-
Ok, the update to v1.5 with the promised fixes is now released. See the changelog here for more detailed info:
I had to test drive it quickly due to current work overload but I wanted to get it out before the weekend. Many happy sorties everyone!
@Le_Beau @William Here’s where you can block those always pressed buttons:
-
Thanks @foxster I’ll do some testing over the weekend hopefully (enjoy yours, it sounds like you need it )
All the best,
Uwe
-
@william I noticed from your library something you may want to consider changing. In FoxVox when you define multiple keys on a voice command, every key must be satisfied in order for it to execute, but you can allow multiple words to satisfy a single key, giving you more natural options. This is done by putting all the words on a single key that will satisfy it. For example in your Install/Remove Chocks command, you must always say all three words: Install, Remove, and Chocks (any order is OK) to satisfy it. It is strange to say both “Install” and “Remove” in the same sentence. As an alternative you could put “Install” and “Remove” onto the same Key so that either will fulfill that key requirement. Then you can say “Install Chocks” or “Remove Chocks” and both will execute the command. It feels more natural that way and works smoother (in my opinion ). If you prefer to say all three words every time and that’s what you intended, then absolutely keep it that way, but just letting you know there’s an alternative. I’ve included a picture here to help show what I mean. Anyway, glad to see you using it and good luck!
-
Here’s a little tip to share - I recently added the BMS mic click sound to my PTT button up used for comms commands so I get that nice little mic click noise every time I give my wingman a command. Just adds that extra little bit of realism to go along with the natural speech.
-
Can you tell me where this bms click sound file is located? Right now I’m using the one from one of the voice attack profiles I’ve been using, but the “standard” BMS one would be a nice option to have as well.
All the best,
Uwe
-
If you assign the PTT key to your actual in-game UHF or VHF transmit key, you should get it “naturally”.