Jump to content
Mpstark

Articulate: Squad Voice Command Utility for Arma 3

Recommended Posts

Benjamin

I made some more tests. Setup: A rifle squad under my command and a truck and a hunter in the editor. This time, no addons except Articulate.

Very strange results:

- Several stance-related commands were executed properly.

- Assign team commands were not executed

- scan horizon was executed

- several watch direction commands were not executed

- formations were not executed.

I exited this mission and started it again. The game and Articulate were not restarted. This time most results were the same as before, but formations were carried out properly. The command "all, danger" was executed by the whole squad but when I said "all, relax", the medic, No. 7 remained in the danger state. I had to say "Seven, relax" and he relaxed, too.

The strange thing is that the ingame voice repeats my commands, the icons of the team members flash but the characters just don't move. This seems to show that the game understands the commands but my minions are having a little mutiny. (Could you code something like "Do as you're told, or else..."?)

I am sorry if this comment is not very precise, but I cannot put it any better. If you think it helps, we can meet in TS and go through some test scenarios together.

Another issue which probably is not related to the above: The manual says that invalid voice input is ignored. The user interface asks "what was that?" if Articulate doens't understand the input. So far so good - but in the game sometimes the backspace key is triggered unintentionally and a menu pops up. This seems to happen when the microphone receives either noise or words which aren't valid commands. It doesn't always happen, though. This makes it hard to reproduce and probably hard to resolve. Any ideas?

Share this post


Link to post
Share on other sites

Thanks for that, seems to indicate that (at least in most situations) it is triggered by commands which take more than two key presses to navigate the menu. My working theory is that this has to do with the framerate of the machine on which Articulate is running on so I'm going to add the option to adjust the delay between key-presses which should hopefully help alleviate this issue.

As for the medic ignoring your command, I really have no clue as to what would be causing that - the "all ..." commands use the tilde (~) key to select your squad so I wouldn't expect some units not to receive the order unless you had already selected some of them. I also like your idea of a "Do as you're told, or else..." command but unfortunately I'm simply not experienced enough with writing SQF and FSM scripts to be able to do anything along those lines - I'm currently working on an Addon for ArmA which will allow the execution of scripting commands from Articulate however I haven't yet got it to a stable/testable point.

I think your issue with invalid commands showing the menu could be Articulate recognizing a command as simply a selection of units (i.e. 'three') which is also technically a valid command for Articulate. Selecting a unit will then cause ArmA to show the menu - not sure how we can avoid that issue since I think there are cases where it is useful to say "three, four, five" and then use the mouse to contextually give an order. I guess my best recommendation would be to increase your Confidence Margin option, which should reduce the likelihood of this happening when you haven't actually given a command.

Share this post


Link to post
Share on other sites

Thanks for your comments, Benjamin.

Let's hope your working theory proves right and the delay between key-presses does the trick.

The medic thing is really strange. I am positively sure that I hadn't issued any command specifically to him. I will test it more and see if it happens again.

I verified what you said about the invalid commands by keeping the UI open. Certain sounds are actually read as numbers (even though there is no acoustic resemblence between the sound and the number in question. Funny example, clearing my throat seems to sound like "five".) I am a little reluctant to play with the confidence margin as it picks up my words so well, but I will experiment a little.

Share this post


Link to post
Share on other sites

the insubordinate AI has nothing to do with Articulate, I think. AI in Arma doesn't want to go out of Danger states sometimes, it is a problem in Arma2 as well.

I was playing BeCTI for several hours, Articulate was a bit less reliable after a few hours of gameplay, because my FPS was falling into the 20-s range.

As for the issue with single units not receiving the commands, it seems to be because they were accidentally selected just before issuing the command.

That is an useful feature, sometimes - for example, you want to select 1, 2, 3, 5, 6 and 7 but not 4, then you can just say "all *short pause* four disembark."

What does confidence margin actually do? I couldn't figure that out.

Share this post


Link to post
Share on other sites

Ah, good to know and have confirmation of my suspicions. I think it'll probably be good to allow adjustment of key-press delays in light of this so that people can tune Articulate to work on their machines. Also, out of curiosity, how much of a difference would it make to be able to say "all except 3, 4, 5 advance"? If it's something in demand then I'll open an issue for it and hopefully it will be implemented.

Confidence Margin controls the cutoff level which determines whether a command is "recognized". More specifically, when the Microsoft Speech Recognition API detects speech it reports how confident it is in its recognition (a value from 0% to 100%). By adjusting the confidence margin you are able to set your lower limit for how confident you want the SAPI (Speech API) to be before Articulate executes a command. I have found that values around 70% work well initially, however after training the speech engine I routinely get upwards of 85% accuracy on my commands - so I could feasibly increase the confidence margin to ensure greater accuracy.

Hope that clears some things up for everyone.

Share this post


Link to post
Share on other sites

Benjamin, what you said about numbers and contextual mouse clicks is obviously correct, but maybe a valid command could be: "Five, mouse-click". This would make it harder for Articulate to accept a sound as valid command. Other voice control software (VAC, if I remember corectly) suggest to avoid one-word commands by saying something like "Number" or "Soldier" before the number. You are planning to allow custom commands in the future and this may be a simple way to avoid unwanted input.

I think a specific "except"-command would be a good idea. saying "All except Seven, form line" makes sense if you want to keep the medic safe when preparing an ambush.

Share this post


Link to post
Share on other sites

I'd really like your programm! Unfortunately I have the problem of owning Windows 7 Home Premium with only the German voice recognition 8.0 installed. I can imagine that even though Alpha-Kilo contributed German language support, Articulate still requires the English language package to be installed, as I get the Failed-message stating that the English voice recognition has to be installed, every time I run Articulate (both as administrator and plain).

Am I right with my assumption?

Share this post


Link to post
Share on other sites

Pergor,

you're right. The current build does not support German voice input, yet. German voice input is planned for the future. For the time being you will have to install the free Windows English language pack and then you'll be able to issue English voice commands.

Share this post


Link to post
Share on other sites

you're right. The current build does not support German voice input, yet. German voice input is planned for the future. For the time being you will have to install the free Windows English language pack and then you'll be able to issue English voice commands.

Thanks for your answer! I'd totally be ok with the English commands, I don't even know the German equivalents in Arma. ;) The problem is: I'd have to upgrade to a more expensive version of Windows to get the English language pack for free. So I'm forced to wait for the German voice input support, which I eagerly do! :)

Share this post


Link to post
Share on other sites

Looks very impressive so far. I've never really wanted to command AI units in Arma before because of the time it takes to an issue a command and the -ok- (from what I've seen) voice recognition programs that have been made available so far. This, however, is making me seriously consider commanding AI units with my voice ;)

Share this post


Link to post
Share on other sites

Hello everyone,

Release day again - this time with a bunch of new translations and features coming along for the ride. Hopefully some of these features will help make using Articulate easier, while others are aimed at making it work more reliably on a wider range of systems.

New Features

flyingcroissant has added a sound effect engine which allows sounds to be generated for different events. This should allow you to quickly determine whether or not Articulate has understood your command. This feature can be enabled from the settings menu, and custom sound packs can be used if you wish to customize the behaviour.

I've also added the ability to customize the delay between key-presses that Articulate sends to ArmA. This should have a serious impact on the accuracy of commands on systems with a low frame rate. If you've previously had issues with commands not executing correctly despite them being recognized correctly (you can check this by looking at the UI) then please increase this value until things start functioning correctly.

Changes

- Spanish translation courtesy of Dj Octacon

- French translation courtesy of Wismerheal

- Display translations names in their localized form instead of English

- Added sound effect engine as well as a default sound pack courtesy of flyingcroissant

- Allows key press delays to be adjusted

Thanks to everyone who helped contribute to making this release possible.

Share this post


Link to post
Share on other sites

Thanks for the latest update. Just a few very short remarks about a quick test of the new version:

- When I try to change the language, Articulate just freezes. (Old version was deleted before the new one was installed, restarting the PC didn't help.)

- Flyingcroissant's sound effects are great for testing if everything works. They also help to test whether certain sounds are picked up by Articulate or not.

- I'm sorry I haven't had time to test the new key press delays ingame, yet.

- Have you considered making the translation slt-files accessible on the translation web page? This might help to keep the translations updated with info about any new features. Or would you prefer simple emails with the text?

- I know I shouldn't ask but is there anything you can say about the planned custom command feature? Articulate works so well that I can hardly wait for full voice control over the game. (Take all the time you need, but a confimed ETA before next Sunday would be terrific!)

Share this post


Link to post
Share on other sites

Hi Alpha-Kilo,

Thanks for the remarks - I've made a patch release which addresses the freeze issue when changing languages, it should be available at the usual download location. I've also added links to all existing translation files to the translation wiki page.

As for the custom commands, unfortunately I cannot give an ETA on that functionality as I am not running that aspect of the project. At the moment I'm in the middle of exams followed by a holiday in which I will be away from my computer for a month at least - if the functionality hasn't been added by the end of January then I'll take it upon myself to implement (sorry that it's a long way off, but I simply don't have the time at the moment

Share this post


Link to post
Share on other sites
At the moment I'm in the middle of exams followed by a holiday in which I will be away from my computer for a month at least

Well, then good luck with your exams and have fun!

Share this post


Link to post
Share on other sites

Wow, this is just the best thing since sliced bread!

I`m the kind of casual player that has them following me like lambs to the slaughter because i can't be bothered with all the key commands.

I've looked at voice command progs before but they involved costly 3rd party progs and Arma config files etc, or free software that takes an age to configure. This is just, unzip & fire up ArmA 3.

With your commands being hard coded into the prog itself, is there a list anywhere of the voice commands available?

I was also surprised it managed to understand my northern dialect. I usually struggle with voice programs in this respect.

I do have one suggestion at the minute though. The push to talk button is a great idea, as i`ll probably be playing ArmA with a couple of buddies and some AI team, so i can use it in that respect, but . . . . Trying to assign a button on a USB device doesn`t seem to work, is this something on your radar to implement? If not, could it be please?

Sorry for the long, drawn out post, but i want to finish on thanking you again for a great addition to any ArmA players 'Must Have' progs.

Share this post


Link to post
Share on other sites

Thanks @Pergor :)

@Festa_PWR, you can see a list of the available commands on the wiki page. As for binding to a USB device, I assume you are referring to a gamepad/joystick of some sort? If that is the case, I will look into adding it when I get the chance however the current code doesn't have any easy way of implementing such support.

Share this post


Link to post
Share on other sites

Excellent, thank you. Now i know what to scream at them!

Gamepad or joystick yes, but in my case specifically, an extra button on the mouse (pressed with thumb) or even a button on my steering wheel. Are there even any free keys to use when playing ArmA?? :confused:

Seriously though, if you can do it then fantastic, but the lack of assigning a push to talk button on a USB device is not going to stop me from using Articulate, so don't put yourself out :)

Share this post


Link to post
Share on other sites

Benjamin

Good luck with your exam and enjoy your holidays.

Thanks for the patches!

- Changing languages now works as it should.

- When I download any of the translations and open the slt-file in wordpad, the text appears unformatted. It seems that the slt-file contains much more than just the translation. This makes it hard to edit the file. The previous version worked better.

- Just out of curiosity: The changeable values of the settings are given as numbers. What do these numbers represent? Percent, milliseconds, etc?

- I played around with the confidence margin to get rid of false positives. I raised the confidence margin to the point where my voice input is not recognized properly (93) but I still get many false positives. I'll wait until custom commands are possible and then I'll experiment with longer commands.

Share this post


Link to post
Share on other sites

Well, mouse buttons should be bindable - specifically Left, Right, Middle and Forward/Back buttons. If you've got a mouse with more buttons than that then my suggestion would be to use the configuration software to have those buttons emulate key-presses which Articulate will be able to use.

The biggest issue is one of standardization, while it is indeed possible to write code which can detect the pressing of a button on a USB device - doing so in such a way that it works for everyone and all devices is a vastly more challenging prospect. I've opened up an issue on the project addressing it and I'll see what can be done about it - but it's the kind of feature which will take time to test and implement.

Glad you're enjoying Articulate though :)

Share this post


Link to post
Share on other sites

I never even thought of using configuration software, as i never install it lol.

I think i even have Joy2Key somewhere which should do the same job. I`ll go and play about with it until you know either way if you can implement the suggestion :)

And i`m not just enjoying Articulate, i`m loving it! I`m just glad you were sporting enough to share with the rest of the community :)

Share this post


Link to post
Share on other sites

I downloaded the new version. It improved a bit, the UI has descriptions now, and I was actually able to assign teams - red, blue etc.

But for example when I said "team red flank left," the command does not complete - sometimes it won't select soldiers, sometimes it will select and navigate to correct menu but will not select the correct command - I have to select it manually. The ArticulateUI displays my commands correctly.

I increased "key release delay" to 20 and It works most of the time now. Maybe the default (10) is too low?

Edit:

It stopped working 5 minutes into the mission, same problem - it would not select the correct command in the menu. My FPS was 50, it was just a small test mission with some infantry enemies.

I tried increasing "key release delay" to 50 and it started working again.

I am using Arma3 devBranch.

Edited by DeThiCa

Share this post


Link to post
Share on other sites

Hi DeThiCa,

The default key release delay is actually 75ms, seems even that is a bit short for some people (especially with the team selection and assignment commands, for some reason those appear to present more of an issue than the rest). Generally I'd assume that the ArmA engine needs between 1 and 3 frames to detect the command and render the required menu, so if you are looking for the ideal delay for you then you can use the following equation to work it out.

delay = frames * 1000 / min_fps

As I said, I'd recommend choosing a value for frames of between 1-3 and then plugging in your minimum FPS. A good bet for minimum FPS would be somewhere overlooking a dense urban center like Kavala (they generally represent the greatest framerate hit) and then looking in the Video Configuration Menu to see your current FPS.

Share this post


Link to post
Share on other sites

I didn't know the default delay was 75, it was at 10 when I opened the options dialogue, so I assumed the default is 10. I will keep it near 75 now, thanks for the info. :D

Share this post


Link to post
Share on other sites

Just tried this, and it's really awesome - huge thanks for your work!

It did not catch all my tries at commanding but I'll work it out.

On mine delay was defaulted to 25, I raised it a bit since I don't have the greatest rig...

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×