Dolphin Small
Multilingual speech recognition across 40 languages -- a WeNet/ESPnet E-Branchformer (CTC + attention) covering South/Southeast/Central Asian and Chinese-dialect speech
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 Small is the 372M "small" tier of DataoceanAI's multilingual Dolphin speech-
recognition line, built on the Dolphin / ESPnet recipe as an E-Branchformer encoder +
Transformer decoder trained with a joint CTC + attention objective over a shared
SentencePiece BPE vocabulary. Unlike the dedicated dolphin-cn-dialect-* checkpoints (fixed
<zh> language token, Chinese-only char vocab), this multilingual checkpoint varies both
the language and region prompt slots across the card's advertised 40 languages -- South Asian,
Southeast Asian, Central Asian/Turkic, and Chinese (including Cantonese, listed separately as
yue) -- while collapsing this product's own Chinese-dialect granularity into a single zh
(the dedicated dolphin-cn-dialect-small/-base packs cover per-dialect prompting; this
checkpoint does not). 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), q8_0 (recommended), and q4_k builds.
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: local testing covers Mandarin (zh), sanity-checked against the upstream
architecture and confirmed bit-stable across fp16/q8_0/q4_k quants.
What you can do with it
- 🌏 40 languages, one checkpoint — a WeNet/ESPnet E-Branchformer spanning South Asian (Hindi, Bengali, Urdu...), Southeast Asian (Vietnamese, Thai, Indonesian...), Central Asian/Turkic (Kazakh, Uzbek, Azerbaijani...), and Chinese/Cantonese speech, with per-utterance
<lang><region>prompting - 🧩 Joint CTC + attention — an E-Branchformer encoder with a Transformer decoder and 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), suited to code-mixed and cross-lingual speech
- 🪶 372M parameters, `small` tier — the larger of the two multilingual Dolphin sizes (paired with the more compact
dolphin-base) - 🦀 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-small:q8 ↓ dolphin-small.oasr 392.6 MB ✓ verified sha256 $ openasr transcribe meeting.wav --backend native --model-pack ~/.openasr/models/dolphin-small/q8_0/dolphin-small-q8_0.oasr ✓ local transcript · 0 bytes sent
$ openasr serve --backend native --model-pack ~/.openasr/models/dolphin-small/q8_0/dolphin-small-q8_0.oasr --addr 127.0.0.1:8080 ▶ http://127.0.0.1:8080 · model=dolphin-small · 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-small", file=audio)