2026-06-29

otoji vs. the rest

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.

At a glance

Capability otoji Cloud (Otter, Deepgram, Google captions, OpenAI API) Local desktop (whisper.cpp, MacWhisper)
Runs in the browser, nothing to installYesWeb UI (work happens on their servers)No — native install
On-device / private (audio never leaves)YesNo — uploadedYes
Works offline after the model is cachedYesNoYes
Speech-to-textSenseVoice + any Whisper/HF modelYesWhisper
Automatic language detectionYes (SenseVoice LID)VariesVaries
On-device translationIn-browser LLM (WebLLM) + MMS / browser APICloudRarely
On-device text-to-speechBrowser voices + neural MMS (routable to a device)CloudNo
Emotion + audio-event tagsYes (SenseVoice SER/AED)RareNo
Word-level timestamps & .srt exportYes (CTC-derived)YesYes
Real-time multi-device pipelineYes — WebRTC graphNoNo
Peer-to-peer model sharing in a roomYesNoNo
Import any model (HF repo id / URL)Yes (transformers.js)NoLimited
Composable node graph (split/route/fan-out)YesNoNo
CostFree / openSubscription / per-minuteFree

vs. cloud transcription (Otter, Deepgram, Google, OpenAI Whisper API)

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.

vs. local desktop tools (whisper.cpp, MacWhisper, etc.)

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.

The two things only otoji does

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.

When not to use otoji

Otherwise: open otoji.org, allow the mic, and start wiring.