Before recording my first full session in Elite Dangerous, I ran the profile's 249 phrases through the recognizer, one by one, with the grammar left open. 185 came back clean. 64 came back as something else.
That is how voice commands get misheard in games: not on exotic words. None of those 64 had an unusual word in it. They are plain English: "heal," "dock," "medkit," "camera suite."
The three ways they got misheard
When I sorted the 64, I didn't get 64 different problems. I got three, over and over:
- Compound words the engine splits in two. "heatsink" came back as heat sink. "hardpoints" as hard points. "supercruise" as super cruise. "medkit" as med kit.
- Words that sound the same. "heal" came back as he'll. "camera suite" as camera sweet. "shield cell" as shield sell. "role panel" as roll panel. "dock" as doc.
- Letters read as a sentence. "srv brake" came back as i saw the break. "fsd off" as fs feisty off. The engine wasn't even trying to hear single letters. It was looking for words, and it found words.
My favourite of the whole run was "abort docking," which came back as a bull docking. A bull parking a spaceship.
A test that only fails where you expected it to fail is not a test. It's a rehearsal.
This matters for a practical reason: 64 wrong phrases are not 64 broken commands. EchoControl doesn't listen with an open grammar while you play. It listens against that profile's closed list, which works in a different way. The open test does the opposite job: it shows me what else the engine hears, so I can add that as a second valid form of the same command before any player runs into it.
The Elite Dangerous session
With the 64 already fixed, I recorded a full session. Not one command in a quiet room, but a normal run, with the ship noise on top of my voice.
Elite Dangerous has 70 commands and the most predictable vocabulary of all our official profiles. It's a space game built on airport words. If any profile was going to work first time, it was this one, and one in four of its phrases came back wrong.
Shadow Tactics breaks for the opposite reason
I recorded the second session in Shadow Tactics, which has 92 commands and five characters with Japanese names.
There I did expect problems, and I got them, but from a different family: short, unusual names clashing with short English commands. Saying "Hayato" fired the crouch command. I wrote that one up in its own post, fix included.
What I didn't expect was the order. Beforehand I would have bet that the game with Japanese names would give me more trouble than the space game. It went the other way.
What I did with the 64
The fix wasn't rewriting the commands. It was writing down, next to each one, the form the engine was already hearing:
- Whatever the recognizer returned becomes one more valid form of the same command. In the Elite Dangerous profile, "heat sink" now sits next to "heatsink," and both do exactly the same thing.
- The silly ones too. he'll fires the medkit. i bought jump cancels the jump. fs feisty off turns off the frame shift drive. If that's what the engine hears, it goes in.
- Nothing was removed. No original phrase stopped working because I added its misheard twin.
The rule I took from both sessions is short: don't argue with the recognizer about how a word is spelled. Give it both spellings and keep playing.
You can check this without taking my word for it. The full Elite Dangerous command guide lists the phrases that made it through.
What I still can't prove
These two sessions are my voice, my microphone and my room. That's one combination out of many, and I know it.
I haven't tested these profiles with accents other than mine, or with a cheap headset mic, or with someone talking in the same room. All three will move the number. I couldn't tell you in which direction, and I'd rather say that than invent a percentage.
What I can stand behind is where the 64 came from: a test I ran before touching the game, saved to a file, that I can run again in full every time the profile changes.
I started out expecting the game with the normal words to be the quick one. It ended up with 64 new lines in its profile, and one of them is "i bought jump."