final.innerspeak.si · checked November 6, 2026
Read the muscles of silently mouthed words, and decode the words you train it on.
You buy four $12 open-source amplifiers. Everything else you already own. The firmware and the program are ours, run on your computer, and keep your data in a plain folder. Nothing to log in to, nothing to pay again, no screw to turn.
$48 on Amazon.com, up to $77.42 delivered. Under $100 either way.
What it does, and what nobody can do yet
Measured
Words you mouth silently (lips, jaw and tongue moving, no sound) are read from 4 stickers on the face. After about 25 tries of each word, it picks the word you mouthed. The table below gives the accuracy, measured on real recordings.
Not possible at any price yet
Inner speech with no movement at all has not been decoded from skin electrodes by anyone, on any equipment. That's why every result here is for silent mouthing. innerspeak train tells you your own accuracy against chance, so you can test smaller and smaller movements on yourself without guessing.
Buy: 4 × Muscle BioAmp Candy
One-channel EMG amplifier by Upside Down Labs: fixed gain of 2,420, built-in 72–720 Hz filter, runs on 5 V. Open hardware: KiCad files, OSHWA certified IN000042, MIT-licensed software. Each kit has the board, a 3-lead snap cable (red IN+, black IN−, yellow REF), 3 gel stickers and its jumper wires.
| Store | 4 boards | Stock on Nov 6 | From |
|---|---|---|---|
| Amazon.com | $48.00 | Temporarily out of stock. You can order now; you're charged when it ships, and no date is given. | Ships from Amazon, sold by Upside Down Labs, free returns |
| DigiKey | $53.16 + shipping | 0 in stock, 4-week factory lead time | Thief River Falls, Minnesota |
| Tindie | $77.42 with shipping | In stock, 10–15 days by UPS | Ships from New Delhi. Any import fee is yours. |
Already yours
- ELEGOO Mega 2560 and its USB cable: reads all 4 boards 2,000 times a second each
- 3M Red Dot 2560 stickers (bag of 50): Ag/AgCl gel, snap stud, fits the cables
- EBOOT alligator leads: 3 of them join the black leads
- A breadboard and jumper wires: the 5 V and GND rows
Not used: the AD620 boards, the resistors and the capacitors. An AD620 board has no filter in front of its gain, so the stickers' own steady offset (tens of millivolts) is amplified too and drives the output to its limit. The Candy amplifies only 11× before its 72 Hz filter and has a fixed gain after it, so it can't saturate that way and has no screw to adjust.
Wire it
- Breadboard: Mega 5V to the + row, Mega GND to the − row.
- Each Candy: VCC to +, GND to −, OUT to A0, A1, A2, A3 (one board per pin). Swapping VCC and GND destroys the board.
- Wipe the skin with water or alcohol and let it dry. Then put on 6 stickers, as in the drawing.
- Red lead of each board on its own sticker: A0 right cheek below the mouth corner, A1 left chin corner, A2 left cheek above the mouth corner, A3 under the chin, 3 cm back.
- Black: the A0 board's lead on the sticker below the left ear. Clip the other three black snaps to it, one alligator lead each.
- Yellow: only the A0 board's lead, on the sticker below the right ear. Tape the other three back. Each one carries its own board's 2.5 V, so they must not touch.
- Laptop on battery, charger unplugged, whenever stickers are on.
Run it
From the innerspeak.si folder, in PowerShell:
.\innerspeak flash # once: our firmware onto the Mega
.\innerspeak check # 3 s: each channel ok, or which sticker or wire to fix
.\innerspeak record --words yes,no,water,help --reps 25
.\innerspeak train # your accuracy on tries it never trained on, against chance
.\innerspeak live # Enter, mouth a word at NOW, see the guess
Each try: 1 s "ready", 2 s to mouth the word, in random order. 100 tries take about 7 minutes. Every try is saved as a plain CSV in data\; more sessions on more days make it better.
Proof, before you buy
500 silently mouthed recordings by one person, from the published dataset (Gaddy & Klein 2020, Zenodo 4064409, recorded on a research board costing over $1,000). Each recording went through a model of the Candy (gain 2,420, 72 Hz filter, output 0–3.5 V, plus 2 µV of amplifier noise) and the Mega's 10-bit reader, on the 4 sites above. Each question was scored on recordings held out from training.
| Question, inside a mouthed phrase | Chance | Research board, 8 channels | Candy + Mega, 4 channels | Our program, same files |
|---|---|---|---|---|
| Which kind of phrase (3) | 33.3% | 96.1% | 94.7% | 93.5% |
| AM or PM (2) | 50.0% | 89.0% | 83.1% | 79.3% |
| Which weekday (7) | 14.3% | 39.4% | 41.1% | 39.0% |
| Which month (12) | 8.3% | 24.3% | 22.8% | 22.0% |
- The cheap parts lose almost nothing. Four Candy channels on the Mega score within a few points of the research board's eight.
- Four channels is the right number. Weekday: 1 channel 24.3%, 2 → 32.9%, 3 → 39.2%, 4 → 41.1%, 8 → 40.3%.
- The control fails as it should. With recordings shuffled against their words, every score drops to chance (34.4%, 50.6%, 15.7%, 9.2%).
- The firmware works on the Mega's own chip, emulated (ATmega2560, 16 MHz, the compiled code). 2,000.00 frames a second for 10 s, 0 lost, and all 79,988 readings equal the voltage on the pin. Real Mega: run
check. - The limit is the words, not the parts. Weekdays sound alike in the mouth (Sunday is taken for Saturday). Pick words that look different when mouthed: yes, no, water, help.
Yours, all of it
Board designs: Upside Down Labs, open source (github.com/upsidedownlabs/Muscle-BioAmp-Candy). Firmware, program, tests and this page: innerspeak.si/final on your computer: firmware/final_mega, app (Rust), sim/mega.mjs (the emulated Mega). No account, no cloud, no subscription, no vendor app.