Dolphin Base
Multilingual speech recognition across 40 languages, base tier -- a compact 140M WeNet/ESPnet E-Branchformer (CTC + attention)
Opens the desktop app and downloads this model for you.
Don't have the app yet? Download OpenASR Desktop
let's line up this week's release plan,
the beta build can ship on Friday,
then loop in design and QA,
Why it fits
Dolphin Base is the 140M "base" tier of DataoceanAI's multilingual Dolphin speech-
recognition line, built on the same Dolphin / ESPnet recipe as the larger Dolphin Small:
an E-Branchformer encoder + Transformer decoder trained with a joint CTC + attention
objective over a shared SentencePiece BPE vocabulary spanning the card's advertised 40 languages
(South Asian, Southeast Asian, Central Asian/Turkic, and Chinese including Cantonese as yue),
at roughly a third of the small tier's encoder/decoder width -- a smaller RAM/CPU footprint for
deployments where the small tier's accuracy headroom is not needed. Like dolphin-small, this
checkpoint collapses this product's own Chinese-dialect granularity into a single zh (the
dedicated dolphin-cn-dialect-small/-base packs cover per-dialect prompting). This OpenASR
repo repackages the weights as .oasr packs that run natively in the OpenASR runtime -- no
Python at inference, all decoding local. It ships in fp16 (maximum fidelity) and q8_0
(recommended) builds. q4_k is not offered for this pack (see verification notes below).
Note: this model does not emit punctuation. Its upstream training corpus is transcribed
without punctuation marks, so the decoder never predicts a punctuation token -- there is no
setting to enable it. Transcripts are plain, unpunctuated text by design.
Verification notes: local verification so far covers Mandarin (zh), sanity-checked against
the upstream architecture and bit-stable at fp16/q8_0. q4_k showed ~8.8% CER drift versus fp16
on the sanity clip and is therefore dropped from this pack's quants. dolphin-small's q4_k is
clean at 0.0 drift and is unaffected.
What you can do with it
- 🌏 40 languages, base tier — the same multilingual E-Branchformer coverage as Dolphin Small (South Asian, Southeast Asian, Central Asian/Turkic, Chinese/Cantonese), at a fraction of the size
- 🪶 140M parameters — roughly a third the width of the
smallcheckpoint (512 vs 768 d_model, fewer layers), for tighter RAM and faster CPU decode when the small tier is overkill - 🧩 Joint CTC + attention — the same E-Branchformer encoder + Transformer decoder recipe with CTC/attention rescoring, verified against a shape-derived runtime contract shared with the rest of the Dolphin family
- 🐬 SentencePiece BPE vocab — a shared subword vocabulary across all 40 languages (distinct from the cn-dialect family's fixed character vocab)
- 🦀 Native in OpenASR —
.oasrpacks run with no Python at inference, engineered for peak performance on CPU & GPU
Other models
Developer details CLI commands, file hashes, and per-quant downloads — for scripting and verification.
Model facts
Usage
These are CLI / local-server examples. The desktop app runs this model without typing a command — use Install above.
$ openasr pull dolphin-base:q8 ↓ dolphin-base.oasr 150.8 MB ✓ verified sha256 $ openasr transcribe meeting.wav --backend native --model-pack ~/.openasr/models/dolphin-base/q8_0/dolphin-base-q8_0.oasr ✓ local transcript · 0 bytes sent
$ openasr serve --backend native --model-pack ~/.openasr/models/dolphin-base/q8_0/dolphin-base-q8_0.oasr --addr 127.0.0.1:8080 ▶ http://127.0.0.1:8080 · model=dolphin-base · 0 bytes will leave this host
from openai import OpenAI client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="local") audio = open("meeting.wav", "rb") text = client.audio.transcriptions.create(model="dolphin-base", file=audio)