Author Topic: Recording unrecognized commands. Diagnosing random recognition by MS Speech  (Read 881 times)

Olias

  • Newbie
  • *
  • Posts: 8
I recently ran into an odd artifact with VA. I start VA with windows and typically only use it for Elite Dangerous. In the past few days I've suddenly started to see some odd things popping up as unrecognized commands.

Disclaimer
Quote
I already understand that the MS Speech recognition engine has it's limits. The speech engine will often mistake clearing of my throat or other random noises as words. Adding a better microphone combined with increasing the confidence level in VA settings all but eliminated the worst of these. For some unrecognized words I simply add that word (or what MS thought it heard) to the MS Speech recognition dictionary's add/change dictionary words. Then I simply add these words and record these mistaken words using my own voice. Most of the time Windows will now hear me correctly. If that doesn't work, I then within VA I create a command with that word/phrase which has no function assigned to it essentially forcing VA to ignore it.

The New Problem
Recently I've had not words but the "comma" character, appear in the VA console as an unrecognized command. Well that eliminates my previously reliable remedy to record an unrecognized word/phrase and omit it from the command list. Exactly how does one add a "," character to the list of spoken words?  ???

So my question is this: Is it possible to record "all" unrecognized commands to both a log file and an audio file(Mp3)? The goal is to match up what was in the VA log with what Windows actually heard via an MP3 file. I don't mind manually matching time stamps. My theory is that these new unrecognized words are likely either some new electronic interference or some new ambient noise. My hope is that if I can isolate the sound that Windows thinks it heard, I'll more likely be able to filter in VA for it. I've already tried to use the "Captured Audio" function but there are too many random words for that to be practical. As an example, I left my computer in the room overnight with the door closed. Since I live in a quiet area and the room is sound dampened, ambient noise is usually not an issue. Yet in the morning the log was filled with random word/phrases many of which were the "Comma" character that the Windows Speech recognition engine "thought" it heard.  I'm hoping that either by using a token or perhaps a wildcard, I might be able to just have all unrecognized word/phrases be recorded and logged. Am I reaching for too much?

BTW: I was able to determine that these new random word/phrases and "commas" may somehow be caused by my favorite USB mic dongle. Moving to another USB mic dongle has cleared up many of the errors. However, I see that as a workaround not a solution. What I'm hoping for is a true diagnostic tool. That USB dongle has proven to otherwise be the most noise free input device I have so I'd like to stick with it.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Have you tried adding the "," symbol to the dictionary? That should be possible.


To catalogue unrecognized commands, what you can do is use the "Execute a command each time a phrase is unrecognized" option at the profile level to trigger a command, which could then append a text file using the "Write Text to a File" action (taking the value from the "{CMD}" token), and save the audio using the "Captured Audio" action (use the "Captured audio (Recognized or Unrecognized)" option, as using a catch-all will cause the audio to be marked as recognized).
(The "{TIMESTAMP}" token or a combination of other related tokens can be used to log the time)

Noise without an obvious source may originate from electronic interference (as many devices communicate at 2.4Ghz, anything including WIFI routers, baby monitors, and even microwaves may cause issues).


If you're just looking to get rid of "Unrecognized" entries in the log, you can right-click it and choose "Do not show unrecognized items"

Olias

  • Newbie
  • *
  • Posts: 8
Worked like a charm. As usual, thanks for the speedy reply.

I completely overlooked the profile override since I rarely use it. However, I was able to achieve what I was looking for with just two commands.
  • "{CMD}" Was heard - As a "Write value to the event log" function
  • "Captured VA Audio - {CMD} - {TIMESTAMP}.mp3" - Using the "Captured audio" function

This produced the file name in the format:
"Captured VA Audio - fifth - 20201128160206478.mp3"

This did exactly what you said. It registered a log entry in the VA log window while simultaneously creating a file with the Command it thought it heard embedded into the file name along with the timestamp. In just testing it now, I realize that my gaming keyboard is partly responsible. Now At least I can start filtering out.

One curious thing though. How the hell does Microsoft interpret clicking keys as the word "fifth" which it apparently does 99% of the time.  ;D