Seda exposes exact upstream model IDs. A variant selects a concrete runtime artifact; an immutable revision and runtime complete the resolved identity. Profiles remain optional aliases, not the primary API.
| Runtime | Model ID | Variant | Alias | Download | Language mode | Output |
|---|---|---|---|---|---|---|
| Browser | onnx-community/moonshine-tiny-ONNX |
q4 WebGPU / q8 WASM |
— | ~55 MB | fixed English | buffered revisions, punctuation |
| Native | nvidia/parakeet_realtime_eou_120m-v1 |
q4_k |
compact |
129,133,984 bytes | fixed English | true streaming, EOU, word times |
| Native | nvidia/nemotron-3.5-asr-streaming-0.6b |
q4_k |
balanced |
718,102,624 bytes | prompted, 32 locales, auto | true streaming, punctuation, word times |
| Native | nvidia/nemotron-3.5-asr-streaming-0.6b |
q8_0 |
quality |
983,696,512 bytes | prompted, 32 locales, auto | same model, higher weight precision |
Prepare and start by ID:
seda prepare \
--model-id nvidia/nemotron-3.5-asr-streaming-0.6b \
--variant q4_k
seda serve \
--model-id nvidia/nemotron-3.5-asr-streaming-0.6b \
--variant q4_kThen select de-DE, ja-JP, or auto on each transcription or live session.
Changing the language prompt does not prepare or reload the model.
Seda reports language behavior instead of assuming every multilingual model works the same way:
| Mode | Meaning | When language is chosen |
|---|---|---|
fixed |
One model recognizes one language | Fixed by the model |
prompted |
One resident model accepts a language prompt | Every call or session |
automatic |
The runtime detects language | No caller prompt |
checkpoint |
A separate checkpoint exists per language | When choosing/preparing the model ID |
Applications should build their picker from capabilities().language, not from
hard-coded product tiers.
@bearlyai/seda-browser pins
onnx-community/moonshine-tiny-ONNX at revision
a6da1241cd305dcd64eab1edbd615f2bb9aabb95. The English Moonshine model and
ONNX distribution are MIT licensed. Transformers.js 3.7.6 is Apache-2.0.
The Worker uses the full-precision encoder and Q8 merged decoder on WASM. WebGPU uses a Q4 merged decoder. WebGPU is preferred automatically and WASM is the portable fallback. The model is cached by the browser rather than placed in Seda’s native data directory.
Moonshine Tiny is the browser default because its roughly 55 MB working set is materially more deployable than the native Parakeet catalog and it has a proven Transformers.js browser path. It is not cache-aware streaming: Seda periodically decodes the current utterance, exposes those outputs as replaceable buffered revisions, and performs a final decode on commit. One utterance is limited to the model’s documented 30 seconds.
The compact native model is attractive for push-to-talk because NVIDIA describes it as a 120M-parameter cache-aware streaming recognizer with 80–160 ms latency and explicit end-of-utterance output. It is English-only and intentionally has no punctuation or capitalization: https://huggingface.co/nvidia/parakeet_realtime_eou_120m-v1
Nemotron 3.5 is the multilingual default because it is cache-aware true streaming, supports automatic language detection, and includes punctuation and capitalization. Seda advertises only the 19 transcription-ready and 13 broad-coverage locales, not the eight adaptation-only tokenizer locales: https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b
The GGUF files are community quantizations from: https://huggingface.co/mudler/parakeet-cpp-gguf
The pinned native runtime is parakeet.cpp v0.4.0: https://github.com/mudler/parakeet.cpp/tree/v0.4.0
Parakeet gives Seda a useful launch combination: a small English streaming model, a genuinely streaming multilingual model, word timestamps, a compact C ABI, and prebuilt libraries for the three initial OS targets. More adapters would increase surface area before the protocol and product behavior are proven.
sherpa-onnx has the broadest deployment matrix: desktop, mobile, Node, embedded, and WebAssembly, with both streaming and non-streaming recognizers: https://github.com/k2-fsa/sherpa-onnx
Why not v0.1: it is a toolkit and model ecosystem rather than one curated model experience. It is a good future adapter for WASM, ARM, mobile, and languages not covered by the launch catalog.
whisper.cpp is mature, portable, multilingual, and an excellent batch fallback: https://github.com/ggml-org/whisper.cpp
Why not the default: its common “streaming” integrations repeatedly decode a rolling buffer. That can be useful, but Seda reports it as buffered streaming rather than presenting it as the same behavior as a cache-aware streaming recognizer.
“Runs in a browser” does not mean every device has equal latency or memory:
- Cache API storage is persistent but browser eviction can require a reinstall.
- WebGPU availability and performance vary; WASM is the compatibility tier.
- Low-memory mobile browsers may fail the model allocation.
- The 30-second limit is enforced before memory can grow without bound.
- English is the only advertised browser language in v0.2.
The GitHub model lane downloads the pinned revision and recognizes a checksum-verified real speech fixture through Chromium WASM. The regular browser lane verifies the session contract in Chromium, Firefox, and WebKit.
Seda code and Transformers.js are Apache-2.0. English Moonshine and its ONNX
distribution are MIT. parakeet.cpp is MIT. The GGUF distribution identifies
itself as CC-BY-4.0. The compact base model uses NVIDIA’s Open Model License;
Nemotron 3.5 uses OpenMDW 1.1. Applications distributing or auto-downloading
weights must evaluate and retain the applicable upstream notices. Seda records
native licenses in models/catalog.json and browser pins in
packages/browser/src/models.ts, but does not provide legal advice.