Why We Rebuilt VocalScroll with Local WebAssembly
Voice dictation tools and virtual assistants lag a little between your speech and the text, and they stop working when your internet connection drops.
We wanted a teleprompter that follows your voice closely, with little lag, no subscription fees, and no uploads of your voice or scripts. So VocalScroll skips cloud speech APIs and runs the speech model inside your browser using WebAssembly (WASM). Here is why, and how it works.
The traditional way: cloud speech APIs
Most speech recognition software uses a client-server model. The app captures your voice, compresses the audio, sends it over the internet to a data center, waits for a cloud model to transcribe it, and gets the text back.
Cloud models are accurate, but they have drawbacks for video presenters:
- Internet dependency: If your Wi-Fi drops, a cloud-based teleprompter can stop scrolling.
- Latency: Sending audio back and forth over the network adds lag, which can throw off your pacing.
- Privacy: Your voice and your scripts are uploaded to someone else's servers, where they can be logged or stored.
- Server costs: Cloud servers cost money to run, which pushes developers toward monthly fees.
The better way: on-device WebAssembly
VocalScroll processes your voice on your own computer or phone using WebAssembly.
WebAssembly lets browsers run compiled code, like our speech recognition engine, at near-native speed. Instead of uploading your voice, your browser downloads a speech model for your language (about 41 MB for English) the first time you use that language, keeps it on your device, and runs it on your device's hardware.
The two approaches compare like this:
| Feature | Cloud-based speech APIs | VocalScroll's on-device WASM |
|---|---|---|
| Data privacy | Voice data and scripts are uploaded to remote servers. | Speech recognition runs on your device. Your voice and scripts stay there. |
| Internet dependency | Needs a connection the whole time. | The model for your language downloads once, then loads from your device. |
| Response latency | Network delays can lag behind your pacing. | Word matching runs on your device, with no network round trip. |
| Subscription cost | Often a recurring monthly fee. | Free. |
How it works under the hood
When you press Start, the speech pipeline runs on your device:
- Microphone capture: The browser captures your voice through standard browser audio nodes.
- Web Worker: Speech analysis runs on a separate background thread in your browser, so it does not block the page or the prompter animation.
- WebAssembly processing: The speech engine runs the incoming audio against the speech model in memory and matches what you say to the words in your script.
- Scroll sync: The matched words move the prompter's scroll position to the spot where you are reading.
No server processes your voice, and your scripts and recordings stay on your device.