Noise input for playing games handsfree

New mailing list added

10 months ago

951dfaf readme: add microphone note

~geb pushed to ~geb/hiccup git

1 year, 4 months ago


Notice: I took what I learnt from Hiccup to bring noise control to Numen. I don't plan to work on Hiccup further.

Hiccup is noise-based voice control for realtime computer interaction, such as playing games. It's focused on Linux.

There are videos here.

As it is, your mileage may vary greatly depending on your setup. I use a Blue Yeti with the gain dial at the minimum.

#Install From Source

The aubio library is used for the audio analysis, and the dotool command is used to simulate input.


sudo ./install.sh


dotool requires permission to /dev/uinput to create the virtual input devices, and a udev rule grants this to users in group input.

You could try:

echo type hello | dotool

and if need be, you can run:

sudo groupadd -f input
sudo usermod -a -G input $USER

and re-login and trigger the udev rule or just reboot.


The thresholds need to be about right for your setup, so first check:

arecord -q -D sysdefault:CARD=Microphone -f S16_LE -c 1 -r 16000 | hiccup --calibrate

The hiccup program simply takes in audio and prints the names of a few sounds while they're made. You could try running this, and going "ssshhhh oooo aaaah" into your microphone:

arecord -q -D sysdefault:CARD=Microphone -f S16_LE -c 1 -r 16000 | hiccup

Hiccup then comes with a set of shell functions for scripting the sounds to actions, or you can roll your own thing. There are scripts for a couple games in the examples/ directory.

#Numen, Contact and Matrix Chat

Hiccup is developed alongside Numen and you're welcome to join our Matrix chat at #numen:matrix.org.

You can also send questions, thoughts or patches by composing an email to ~geb/public-inbox@lists.sr.ht.

#Support Me

Thank you!


AGPLv3 only, see LICENSE.

Copyright (c) 2023 John Gebbie