Kbd-Audio – Tools For Capturing And Analysing Keyboard Input Paired With Microphone Capture

This is a collection of command-line and GUI tools for capturing and analyzing audio data. The most interesting tool is called keytap – it can guess pressed keyboard keys only by analyzing the audio captured from the computer’s microphone.

capture audio and to open GUI windows libsdl

  • FFTW3 – some of the helper tools perform Fourier transformations fftw
  • Linux and Mac OS

    git clone https://github.com/ggerganov/kbd-audio
    cd kbd-audio
    git submodule update --init
    mkdir build && cd build
    cmake ..


    (todo, PRs welcome)


    Record audio to a raw binary file on disk
    Usage: ./record-full output.kbd

    Playback a recording captured via the record-full tool
    Usage: ./play-full input.kbd

    Record audio only while typing. Useful for collecting training data for keytap
    Usage: ./record output.kbd

    Playback a recording created via the record tool
    Usage: ./play input.kbd

    Detect pressed keys via microphone audio capture in real-time. Uses training data captured via the record tool.
    Usage: ./keytap-gui input0.kbd [input1.kbd] [input2.kbd] …
    Live demo (WebAssembly threads required)

    keytap2 (work in progress)
    Detect pressed keys via microphone audio capture. Uses statistical information (n-gram frequencies) about the language. No training data is required. The ‘recording.kbd’ input file has to be generated via the record-full tool and contains the audio data that will be analyzed. The ‘n-gram.txt’ file has to contain n-gram probabilities for the corresponding language.
    Usage: ./keytap2-gui recording.kbd n-gram.txt

    Any feedback about the performance of the tools is highly appreciated. Please drop a comment here.

    Download Kbd-Audio

    Published by Marshmallow

    Marshmallow Android is BT Ireland’s Head of Sales for Republic of Ireland domestic multi-site companies, indigenous MNCs and public sector accounts. He is responsible for the direction and control of all sales activity in the region. He has over 10 years management experience from high growth start-ups to more established businesses. He’s led teams in Ireland, India and China across various industries (ICT, On-Line Recruitment, Corporate Training and International Education).