File size: 6,617 Bytes
7d78fea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
license: apache-2.0
base_model: DataoceanAI/dolphin-small
pipeline_tag: automatic-speech-recognition
library_name: openasr
tags:
  - automatic-speech-recognition
  - speech-to-text
  - openasr
  - oasr
  - dolphin
---

<div align="center">

# Dolphin Small Β· OpenASR

**Multilingual speech recognition across 40 languages -- a WeNet/ESPnet E-Branchformer (CTC + attention) covering South/Southeast/Central Asian and Chinese-dialect speech**

[![License](https://img.shields.io/badge/license-Apache--2.0-2563eb.svg)](https://huggingface.co/DataoceanAI/dolphin-small/blob/main/README.md)
[![Format](https://img.shields.io/badge/format-.oasr-7c3aed.svg)](https://github.com/QuintinShaw/openasr)
[![Runtime](https://img.shields.io/badge/runtime-OpenASR-111827.svg)](https://openasr.org)
[![Base model](https://img.shields.io/badge/base-dolphin--small-f59e0b.svg)](https://huggingface.co/DataoceanAI/dolphin-small)

Native speech-to-text in the **[OpenASR](https://github.com/QuintinShaw/openasr)** runtime β€”
engineered for peak performance on CPU & GPU, **no Python at inference time**.

</div>

---

## ✨ Highlights

- 🌏 **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** β€” `.oasr` packs run with no Python at inference, engineered for peak performance on CPU & GPU

## πŸš€ Quickstart

```bash
# 1. Install the OpenASR CLI  Β·  https://openasr.org
# 2. Pull a build (pick a quant β€” see the table below)
openasr pull dolphin-small:q8

# 3. Transcribe
openasr transcribe audio.wav --model dolphin-small
```

All builds for this model:

```bash
openasr pull dolphin-small:fp16
openasr pull dolphin-small:q8
openasr pull dolphin-small:q4
```

## πŸ“¦ Available builds

| Quant | File (`.oasr`) | Size | RAM peak | RTF Β· M1 CPU | RTF Β· M1 GPU | Ξ”CER vs fp16 |
|:------|:---------------|-----:|---------:|-------------:|-------------:|-----------------:|
| fp16 | `dolphin-small-fp16.oasr` | 754 MB | 3.86 GB | 0.35Γ— | 0.59Γ— | 0.0% |
| q8_0 | `dolphin-small-q8_0.oasr` | 412 MB | 2.68 GB | 0.37Γ— | 0.80Γ— | 0.0% |
| q4_k | `dolphin-small-q4_k.oasr` | 309 MB | 3.64 GB | n/a | n/a | n/a |

<sub>RTF = real-time factor on the shared 11s JFK clip (out-of-distribution, drift signal only) plus an in-language Mandarin sanity clip (**lower is faster**); RAM peak measured per pack
in an isolated subprocess. Ξ”CER compares each quantized build's JFK + zh sanity clip transcript to this model's
fp16 JFK + zh sanity clip transcript, so it measures quantization drift rather than absolute recognition accuracy.
**q8_0** is the recommended default β€” near-reference quality at a fraction of the
footprint.</sub>

## 🧠 About Dolphin Small

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.

## βš™οΈ How these packs were made

Converted from [DataoceanAI/dolphin-small](https://huggingface.co/DataoceanAI/dolphin-small) with the OpenASR importer:

```bash
openasr model-pack import dolphin <src> <out>.oasr \
  --package-id dolphin-small --quantization {fp16,q8-0,q4-k}
```

The `.oasr` container is GGUF-backed; packs use zero-copy mmap weight binding and graph
buffer reuse to keep peak memory low.

## βš–οΈ License

These packs **inherit the upstream model's license: Apache-2.0**
([source](https://huggingface.co/DataoceanAI/dolphin-small/blob/main/README.md)). OpenASR packaging retains the upstream copyright and
NOTICE; the only modifications are format conversion and quantization.

## πŸ™ Acknowledgements

This pack is a redistribution of **Dolphin Small**, created and open-sourced by **DataoceanAI**
([DataoceanAI/dolphin-small](https://huggingface.co/DataoceanAI/dolphin-small)). All credit for
the original architecture, training, and weights belongs to the authors; the license is inherited
from and identical to the upstream model (Apache-2.0). The model builds on the **Dolphin**
multilingual ASR project and the **ESPnet** E-Branchformer / joint CTC-attention recipe -- thank
you to the Dolphin and ESPnet teams and to DataoceanAI for releasing their work openly. OpenASR
only performs format conversion, quantization, runtime verification, and local-inference
adaptation.

## πŸ”— Links

- πŸ¦€ **OpenASR** β€” <https://github.com/QuintinShaw/openasr>
- 🌐 **Website** β€” <https://openasr.org>
- πŸ€— **Upstream model** β€” [DataoceanAI/dolphin-small](https://huggingface.co/DataoceanAI/dolphin-small)