I want a tool that would perform an action when getting a voice command through a microphone. I am not interested in speech recognition and capabilities such as dictation or speech to text input. What I want is much simpler: I utter a sound, the tool sends a key stroke to the active application, or executes a console command. The sound would probably be a word, or a few words, but the tool doesn't have to recognize the words themselves - rather to compare the entire sound sample with others already in its database, choosing the closest and performing the associated action (or not, if there's nothing close enough). The word I say would likely be an IT jargon, or a game term/item/character, sometimes pronounced not in English-like fashion, so speech recognition wouldn't do any good here. The primary use case I have in mind is something like "I say "build", and it presses that Ctrl-Alt-Shift-Something hotkey in the IDE that I could never remember or press correctly with my fingers". Is there something like that?

Alternatively, is there a software library that allows fast comparison/search of short audio samples? For example, I record several sound samples, use the library to calculate some sort of common hash, then use the same library to check whether another sound sample is "similar" to them or not. Having that, I could hack together the rest myself.

All I've found so far seem to be involving speech recognition, which is not what I need.

2 Answers 2


I wrote Numen which is a ready to go keyboard alternative, mainly for accessibility.

I also know of parrot.py which is a framework/tool made for playing games by making sounds that you've trained it with, but I've not used it.

  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Apr 13, 2023 at 15:17

I think the reason you are only find things with "speech recognition" is because ultimately that is what you are asking for. If you need to compare two utterances each with a a few syllables, then you are going to need to have a mechanism to compare them. Clearly if you compare two identical recordings, then any hash, as you say would also find them identical. But if they are two recordings of a repeated utterance they aren't going to be bit for bit identical. You are going to have to say, separate them into syllables, compare the frequencies or rhythms, are they rising or falling tone, how long is each syllable, etc. But that sounds just like breaking them into phonemes and using some sort of fuzzy comparison that you train for whether they match or not. And guess what - that is speech recognition ;-)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.