50

GitHub - ggerganov/kbd-audio: Tools for capturing and analysing keyboard input p...

 5 years ago
source link: https://github.com/ggerganov/kbd-audio
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

kbd-audio

Description

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.

(Algorithm description coming soon)

Build instructions

Dependencies:

  • SDL2 - used to 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 ..
make

Windows

(todo, PRs welcome)

Tools

record-full

Record audio to a raw binary file on disk

Usage: ./record-full output.kbd

play-full

Playback a recording captured via the record-full tool

Usage: ./play-full input.kbd

record

Record audio only while typing. Useful for collecting training data for keytap

Usage: ./record output.kbd

play

Playback a recording created via the record tool

Usage: ./play input.kbd

keytap

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)

Keytap

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

Keytap

Feedback

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK