whatisgithub

What is kbd-audio?

ggerganov/kbd-audio — explained in plain English

Analysis updated 2026-06-24

9,001C++Audience · researcherComplexity · 3/5Setup · moderate

In one sentence

A collection of C++ tools that recover what was typed on a keyboard by analyzing the sound of keystrokes through a microphone, demonstrating an acoustic privacy attack with no camera or network required.

Mindmap

mindmap
  root((kbd-audio))
    What it does
      Recover typed text from sound
      Acoustic eavesdropping demo
    Tools
      Keytap1 training-based
      Keytap2 stats-based
      Keytap3 fully automated
    Tech Stack
      C++ source
      SDL2 audio and display
    Use Cases
      Security research
      Privacy awareness
      Audio analysis
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Test whether your own typing can be recovered from a microphone recording using the online demo or local Keytap tools.

USE CASE 2

Build a security research demo showing how acoustic eavesdropping attacks work without any training data.

USE CASE 3

Record, visualize, and analyze keyboard audio waveforms to study the distinct sound profile of individual keys.

What is it built with?

C++SDL2

How does it compare?

ggerganov/kbd-audioprusa3d/prusaslicerolive-editor/olive
Stars9,0019,0109,023
LanguageC++C++C++
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audienceresearchergeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Must compile from source using SDL2, build steps differ across Linux, macOS, and Windows.

No license information is provided in the project description.

So what is it?

kbd-audio is a collection of command-line and graphical tools that demonstrate a privacy attack called acoustic keyboard eavesdropping: figuring out what was typed on a keyboard by listening to the sounds the key presses make through a microphone. The most prominent tool is called Keytap. In its first version, Keytap analyzes live microphone audio and attempts to identify which keys were pressed, based on the distinct sound profile each key makes. It works best with some training data first: recordings of the target keyboard through the same microphone, so the system learns what each key sounds like on that particular setup. A second version, Keytap2, removes the need for training data by combining audio analysis with statistical knowledge about the English language. It looks at how often certain letters appear and how letters tend to follow one another, then uses that structure to narrow down what was likely typed without any prior recording of the keyboard. The third version, Keytap3, builds on that approach with improved algorithms and more complete statistics about letter combinations. It is described as fully automated, meaning no manual adjustment is needed during the text recovery process. Online demos for all three versions are available, including a challenge page where you can test whether a recording of your own typing is recoverable. Beyond the Keytap tools, the repository includes utilities for recording audio during typing sessions, playing back recordings, visualizing audio waveforms, and detecting individual key presses. The tools are written in C++ using SDL2 for audio capture and window rendering. They can be compiled from source on Linux, macOS, and Windows. The project is from Georgi Gerganov, who is also known for other open-source projects in audio and machine learning.

Copy-paste prompts

Prompt 1
Using kbd-audio's Keytap2, write a Python script that reads a WAV file of keyboard audio and prints the statistically recovered text.
Prompt 2
Help me compile kbd-audio on macOS with SDL2 and run Keytap3 on a sample recording to recover typed text.
Prompt 3
Explain how Keytap2 uses English letter frequency and bigram statistics to identify typed keys without any training recordings.
Prompt 4
Write a bash script that captures 30 seconds of microphone audio and pipes it into kbd-audio's keytap tool for live key detection.
Prompt 5
Show me how to use kbd-audio's waveform visualization tool to compare the audio signatures of two different keys.

Frequently asked questions

What is kbd-audio?

A collection of C++ tools that recover what was typed on a keyboard by analyzing the sound of keystrokes through a microphone, demonstrating an acoustic privacy attack with no camera or network required.

What language is kbd-audio written in?

Mainly C++. The stack also includes C++, SDL2.

What license does kbd-audio use?

No license information is provided in the project description.

How hard is kbd-audio to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is kbd-audio for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.