Tools for capturing and analysing keyboard input paired with microphone capture 🎤⌨️ Thursday, Dec 17, 2020
GitHUB SOURCE : https://github.com/ggerganov/kbd-audio/
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.
Check this blog post for more details:
The keytap2 tool is another interesting tool for recovering text from audio. It does not require training data - instead it uses statistical information about the frequencies of the letters and n-grams in the English language. A more detailed description of the tool is available here: Keytap2 discussion
What people say about Keytap
“This works incredibly well.
I hope you realize what you’ve created (and made available to every person in the world)." – ffpip
“I just tried it and it works incredibly well. It kind of makes me want to stop using a mechanical keyboard." – Karawebnetwork
“This attack and Van Eck phreaking are why Edward Snowden, while typing passwords and other sensitive information, would pull a blanket over himself and his laptop." – aarchi
“This is what mechanical keyboard users deserve” – super guy
“fuck.." – Lluis Franco
SDL2 - used to capture audio and to open GUI windows libsdl
[Ubuntu] $ sudo apt install libsdl2-dev [Mac OS with brew] $ brew install sdl2
FFTW3 (optional) - some of the helper tools perform Fourier transformations fftw
Linux, FreeBSD and Mac OS
git clone https://github.com/ggerganov/kbd-audio cd kbd-audio git submodule update --init mkdir build && cd build cmake .. make
(todo, PRs welcome)
Short summary of the available tools. If the status of the tool is not stable, expect problems and non-optimal results.
Record audio to a raw binary file on disk
./record-full output.kbd [-cN]
Playback a recording captured via the record-full tool
./play-full input.kbd [-pN]
Record audio only while typing. Useful for collecting training data for keytap
./record output.kbd [-cN] [-CN]
Playback a recording created via the record tool
./play input.kbd [-pN]
Detect pressed keys via microphone audio capture in real-time. Uses training data captured via the record tool.
./keytap input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN] [-pF] [-tF]
Detect pressed keys via microphone audio capture in real-time. Uses training data captured via the record tool. GUI version.
./keytap-gui input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN]
keytap2-gui record.kbd n-gram-dir [-pN] [-cN] [-CN]
Detect pressed keys via microphone audio capture. Uses statistical information (n-gram frequencies) about the language. No training data is required. The ‘record.kbd’ input file has to be generated via the record-full tool and contains the audio data that will be analyzed. The ‘n-gram-dir’ folder file has to contain n-gram probability files for the corresponding language.
./keytap2-gui record.kbd ../data
Visualize waveforms recorded with the record-full tool. Can also playback the audio data.
./view-full-gui input.kbd [-pN]
Visualize training data recorded with the record tool. Can also playback the audio data.
./view-gui input.kbd [-pN]
Any feedback about the performance of the tools is highly appreciated. Please drop a comment here.
Article Title: Tools for capturing and analysing keyboard input paired with microphone capture 🎤⌨️
This article URL：Tools for capturing and analysing keyboard input paired with microphone capture 🎤⌨️
- Emacs Lisp
- Jupyter Notebook
- Rich Text Format
- Vim script
- Visual Basic .NET
Github Trending Repositories
Explore Github Trending Repositories. See what the GitHub community is most excited about today.