Aha, that explains the somewhat spotty accuracy in the "knock knock" command; I figured it was just because the phrases were so short.
That does make it difficult to test, as recognition accuracy is subjective.
As I have no insight in the inner workings, this may be a ridiculous question, but would it be possible to replace the dictionary without reloading the entire profile, if only the phrases for this action can change?
Simplistically, if the phrase list for the profile's commands is retained after sending it to the speech engine, would it be possible to add the action's phrases to the end of it?
Hopefully would mean commands, even ones with tokens in the name(as they aren't reprocessed either), would still be addressable by their command phrase, so they are unaffected even while running, instead only the speech engine goes offline momentarily.
As multiple "Wait For Spoken Phrase" actions can run simultaneously, I can see that bringing additional difficulty.
I'm just thinking out loud, really.
My "objection" to reloading the profile is that it necessitates killing the calling command and wiping local variables, making it difficult to use in a stateful system, and without a handler in the profile's startup command to resume the process, nothing would happen afterwards without user intervention either.
Obviously I'm not demanding anything here, even though saying "To my surprise I found out" gives the wrong impression(I genuinely had a "huh, I thought it'd do that" moment, which is why I phrased it that way, forgetting the technical restrictions of the speech recognition engine, which is a compliment, really, as VoiceAttack manages to obfuscate that quite well
).