Hello, after much frustration from discovering that Apple voice control does not have a default setting to set a keyboard shortcut for starting and stopping listening, I've come up with a solution using the following macro. (Note: there are solutions for turning voice control on and off but these solutions prevent you from using voice commands to resume listening)
In outline the macro holds a variable marking whether or not voice control is listening and then checks whether or not the voice control icon is visible on the screen in the menu bar.
If the variable is on and the icon is visible it turns voice control off via menu bar hotkey and mouse click.
If the variable is on in the icon is not visible, it turns the variable off.
And vice versa if the variable is off.
I'm using bartender to open the voice control menu bar menu with a hotkey, but this could also be done with a static click at the location where your voice control menu icon is if you don't use bartender. I have included the on voice control icon I use in the find image step.
Hope this helps someone else! I'm very open to better ways to do this.
Lately I've been having Voice Control come on accidentally(?) every few hours. I have no idea why.
I just looked into whether Voice Control has a setting in the "defaults" area of macOS, (using a method of reading that file before and after changing the setting and then checking the difference) but I couldn't find anything. If there was a setting in there, this could be made even easier to fix.
Just for fun, and totally silly to some degree, but I just made a 1step macro in Keyboard Maestro with the "Speak Text" action, to say the words "stop listening". I have speakers and a camera mic tied to a Mac Studio, and it works as if I'd said it out loud myself.
Clearly a workable option for turning on and off Voice Control, as long as having the computer speak out loud isn't a problem in the given location.
That's literally "thinking outside the box". The box being the Mac, and the "outside" being the sound waves that travel from the Mac's speaker to the Mac's microphone. In a sense, you have built "self modifying code" and you're the kind of person who might someday built SkyNet.
Now, if somebody's got Sound Source or similar -- could you script things to route output directly to input for just this one action so the computer doesn't speak out loud?
I have SoundSource, but I don't think it can route output to input. Loopback by RogueAmoeba might, and I have it, but haven't tried. That said, I did create two other macros...one to start & one to stop listening using the menubar items for VoiceControl. Somewhat similar to pbhope's, I suppose, but this works for me as needed, for what little that's worth to anyone else.