MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Turn your webcam into a musical instrument with AI-powered hand tracking
MediaPython · TypeScriptGitHub @anastberOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Camera-based gesture instrument — play music with your hands, powered by a self-trained neural net running entirely client-side in the browser
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
AirKeys turns your webcam into a musical instrument. Eight gestures — fist, point, peace, open palm, pinch, OK sign, rock on, call me — each always play the same fixed note, laid out as a one-octave diatonic scale (do through do), so cycling through them plays an actual, reproducible melody instead of an approximate one (see the in-app Songs tab for ready-made tunes). Everything — hand tracking, gesture recognition, and audio — runs client-side, in your browser, with no account and no setup.Read the full README ↗A camera-based gesture instrument that runs entirely in the browser — live demo.
Eight hand gestures each play a fixed note of a one-octave scale, so you can play real melodies (the in-app Songs tab has a few). You can also teach it gestures of your own. Hand tracking, gesture recognition and audio all run client-side: no account, no setup, nothing sent to a server.
The project is also a testbed for applied ML done properly — evaluating a gesture classifier on people it has never seen, then fixing what that reveals. It is a work in progress: see ROADMAP.md.
Webcam --> MediaPipe (21 landmarks + pretrained gesture) ---\
--> pinch (pure geometry) |
--> self-trained MLP (offline-trained, 3 poses) >--> Rule Engine --> Tone.js audio
--> your taught gestures (client-side kNN) -/
[all in the browser] [gesture -> musical action]
Built with Next.js, TypeScript, MediaPipe, Tone.js and scikit-learn. Design choices — why everything runs client-side, how the models ship without an inference runtime: docs/architecture.md.
The shipped MLP was trained on my hand only. Re-evaluated on other people's hands (HaGRID, 9k subjects) and on live webcam recordings:
| Evaluation | Accuracy |
|---|---|
| Shipped MLP — my hand (original test) | 99.8 % |
| Shipped MLP — 1,309 people it never saw | 71.9 % [70.2, 73.6] |
| Logistic regression trained on 6,753 HaGRID people, 9 gestures — people it never saw | 98.0 % [97.4, 98.5] |
| Same model — my live webcam (2 sessions), the 8 gestures | 98.0 % |
| Same model — my live webcam (2 sessions), recognizing "no gesture" | 6 % |
Brackets are bootstrap 95 % confidence intervals over subjects. Webcam results hold across artificial light and daylight. Generalizing to new hands is solved by training on many people. The open problem is rejection: resting or half-formed hands are taken for gestures, which would play wrong notes. That is the next phase of the roadmap; the app keeps the original MLP until then.
More detail:
Requires Python 3.11+, Node.js 18+, uv and a webcam.
git clone https://github.com/anastber/air-keys.git && cd air-keys
make install # Python + Node dependencies; downloads the MediaPipe model into frontend/public/
make dev # http://localhost:3000
make help lists the other commands: tests, lint, dataset validation, model evaluation.
The 8 gestures form one octave: fist = do, point = re, peace = mi, open palm = fa, pinch = sol, OK sign = la, rock on = ti, call me = do (an octave up). Raising or lowering your hand shifts the octave. The Songs tab has ready-made melodies, and the Rules tab remaps any gesture.
To add a gesture of your own, name it in the "Teach a Gesture" panel and hit Record: it captures ~20 samples and is recognized right away. Taught gestures stay in your browser's localStorage.
MIT — see LICENSE. The HaGRID dataset used for training and evaluation (Kapitanov et al.) is distributed under its own license, a variant of CC BY-SA 4.0, and is not redistributed here.