On-device voice — speech-to-text, translation, and speech — that runs entirely in your browser, and chains across your devices as a live graph.
otoji (音字, “sound → text”) is a browser-native voice workbench. Drop in a mic, an audio file, or any model; wire STT → translate → TTS as nodes; and run the whole pipeline on-device. No account, no upload, and — once a model is cached — no network. Devices in the same room form a real-time WebRTC graph and even share model files peer-to-peer, so a node you assign to another machine just works.
Here’s how that stacks up against the usual options.
| Capability | otoji | Cloud (Otter, Deepgram, Google captions, OpenAI API) | Local desktop (whisper.cpp, MacWhisper) |
|---|---|---|---|
| Runs in the browser, nothing to install | Yes | Web UI (work happens on their servers) | No — native install |
| On-device / private (audio never leaves) | Yes | No — uploaded | Yes |
| Works offline after the model is cached | Yes | No | Yes |
| Speech-to-text | SenseVoice + any Whisper/HF model | Yes | Whisper |
| Automatic language detection | Yes (SenseVoice LID) | Varies | Varies |
| On-device translation | In-browser LLM (WebLLM) + MMS / browser API | Cloud | Rarely |
| On-device text-to-speech | Browser voices + neural MMS (routable to a device) | Cloud | No |
| Emotion + audio-event tags | Yes (SenseVoice SER/AED) | Rare | No |
| Word-level timestamps & .srt export | Yes (CTC-derived) | Yes | Yes |
| Real-time multi-device pipeline | Yes — WebRTC graph | No | No |
| Peer-to-peer model sharing in a room | Yes | No | No |
| Import any model (HF repo id / URL) | Yes (transformers.js) | No | Limited |
| Composable node graph (split/route/fan-out) | Yes | No | No |
| Cost | Free / open | Subscription / per-minute | Free |
Cloud services are accurate and zero-setup, but every second of audio is uploaded, billed, and dependent on the network. otoji keeps the audio on your machine, costs nothing, and keeps working on a plane. The trade-off is honest: a first-time model download, and accuracy that depends on the model you pick — but you can pick any compatible model, and even run a bigger one on a beefier device in the room.
Desktop Whisper tools are private and fast, but they’re single-purpose apps you install per machine. otoji needs no install (it’s a URL), and it isn’t just transcription: translate and speak the result, tag emotion/events, export timed subtitles, and — the part desktop tools can’t do — chain it across devices. Capture on your phone, run STT on your laptop’s GPU, speak the translation out a specific speaker, all in one graph.
It’s a graph, across devices. Nodes (mic, STT, translate, TTS, file in/out) are wired into one shared pipeline synced over WebRTC. Assign any node to any device in the room — mic here, model there, speaker somewhere else.
Models travel peer-to-peer. Assign a model node to a device that doesn’t have the weights and otoji streams them from a roommate that does — over the data channel, no re-download, no server. The model follows the work.
Otherwise: open otoji.org, allow the mic, and start wiring.