Comments (8)
k im officially never getting on public discord servers again
from kbd-audio.
Hey man love the work you done with this. I was wondering can it be used with a microphone plugged into the laptop as opposed to the built in microphone in the laptop?
Cheers
from kbd-audio.
In addition what setup did you use and how much machine learning did you do to get your results?
from kbd-audio.
The capturing tools do support an option to select the microphone to use (i.e. the capture device).
You simply need to provide the command line argument -cN
where you replace N
with the capture device ID.
For example, on my machine, when I run the record
tool I get this info printed:
$ ./record test.kbd
Usage: ./record output.kbd [-cN]
-cN - select capture device N
Recording 5 frames per key press
Found 3 capture devices:
- Capture device #0: 'Built-in Microphone'
- Capture device #1: 'Soundflower (2ch)'
- Capture device #2: 'Soundflower (64ch)'
Attempt to open capture device 0 : 'Built-in Microphone' ...
Opened capture device succesfully!
Frequency: 24000
Format: 33056 (4 bytes)
Channels: 1
Samples: 512
You can see the 3 available capture devices listed in the standard output. By default, the tools select the capture device with ID = 0. For example, if I wanted to use capture device 1 instead, then I would do:
$ ./record test.kbd -c1
Usage: ./record output.kbd [-cN]
-cN - select capture device N
Recording 5 frames per key press
Found 3 capture devices:
- Capture device #0: 'Built-in Microphone'
- Capture device #1: 'Soundflower (2ch)'
- Capture device #2: 'Soundflower (64ch)'
Attempt to open capture device 1 : 'Soundflower (2ch)' ...
Opened capture device succesfully!
Frequency: 24000
Format: 33056 (4 bytes)
Channels: 1
Samples: 512
Regarding the machine learning question:
On my iMac, using the build-in mic, I can record just 2-3 keytaps of each key and be able to recognise the key audio with very high accuracy (as demonstrated in the video). The result really depends on the setup you have - mic, keyboard, surroundings, etc. More details about the approach are in the blog post.
from kbd-audio.
from kbd-audio.
from kbd-audio.
Laptop keyboards usually have very bad recall rate - the main reason is that the sound of the keys is very low. I myself have had a nice recall rate only when plugging a mechanical keyboard to my iMac - the clicks are much louder and distinguishable.
The web-version of the tool is at the following link:
https://ggerganov.github.io/jekyll/update/2018/11/24/keytap.html
from kbd-audio.
Not relevant to the software itself: but on ideas of how to circumvent this - go somewhere where there is no microphone and load your passwords onto a HID (like a Teensy 3.0), then have it type the passwords; but for every day typing it wouldn't help as the approximate keystrokes could be reconstructed - this project highlights the importance of securing every device in proximity (a secure PC with a compromised phone microphone nearby, for instance). I'd known this was possible for a number of years, but the accuracy with such a small training dataset is totally unnerving - thanks!
from kbd-audio.
Related Issues (20)
- Add the ability to import WAV files to RAW recording
- Failed to initialize OpenGL loader! HOT 2
- How to use it??? i'm a student ,can anybody teach me ? HOT 1
- Error 'Buffer size in file (…..) does not match the expected one (5)' HOT 2
- I have question HOT 1
- make HOT 9
- Yes you can, in theory, solve without training data it can be solved as a graph problem also. HOT 1
- Not building on ArchLinux HOT 1
- cmake .. HOT 1
- error al compilar HOT 3
- system_error: thread constructor failed HOT 2
- CMake .. HOT 2
- [Idea] Compute key similarity over the log-scale Mel spectrogram
- Project doesn't install anything HOT 3
- keytap doesn't collect training data HOT 1
- Can't kill record-full process
- Suggestion: keyboard audio spoofer/cloak?
- Evassdropp
- Useful new model architecture: Bayesian Flow Networks
- Select audio input HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kbd-audio.