Coder Social home page Coder Social logo

Feedback about kbd-audio HOT 8 OPEN

ggerganov avatar ggerganov commented on August 15, 2024 6
Feedback

from kbd-audio.

Comments (8)

dhenson02 avatar dhenson02 commented on August 15, 2024 1

k im officially never getting on public discord servers again

from kbd-audio.

weddy2019 avatar weddy2019 commented on August 15, 2024

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.

weddy2019 avatar weddy2019 commented on August 15, 2024

In addition what setup did you use and how much machine learning did you do to get your results?

from kbd-audio.

ggerganov avatar ggerganov commented on August 15, 2024

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.

weddy2019 avatar weddy2019 commented on August 15, 2024

from kbd-audio.

weddy2019 avatar weddy2019 commented on August 15, 2024

from kbd-audio.

ggerganov avatar ggerganov commented on August 15, 2024

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.

Rob-pw avatar Rob-pw commented on August 15, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.