Instructions to use Sky-Kim/crisper-whisper2-base-finetuned-ko with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Sky-Kim/crisper-whisper2-base-finetuned-ko with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="Sky-Kim/crisper-whisper2-base-finetuned-ko")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("Sky-Kim/crisper-whisper2-base-finetuned-ko") model = AutoModelForSpeechSeq2Seq.from_pretrained("Sky-Kim/crisper-whisper2-base-finetuned-ko", device_map="auto") - Notebooks
- Google Colab
- Kaggle
CrisperWhisper2 Korean Verbatim (base, 74M)
Korean verbatim ASR (74M), the base of a three-size family. Transcribes spontaneous Korean as spoken, keeping the fillers and repeats (μ΄, μ, κ·Έ, λ§ ...) that standard ASR drops. Built by transferring CrisperWhisper2.0's verbatim strength (an English-only model) into Korean.
CER 0.167 at 74M, beating whisper-small (244M, 0.171) at one third the size.
Non-commercial / research use only. Derived from a non-commercial teacher (CrisperWhisper2.0) and restricted data (KsponSpeech). See Licensing below.
Model family
Method
This base model is soft-KD distilled from our Korean small model (there is no CrisperWhisper checkpoint at this size to initialize from, so the advantage is transferred by distillation).
Results: vs Whisper and CrisperWhisper
Held-out KsponSpeech valid, 300 spontaneous Korean clips. CER lower is better; disfluency = fillers kept; tag-leak = leaked markup tokens (0 is clean).
| Model | Size | CER | Disfluency | Tag-leak |
|---|---|---|---|---|
| small (CrisperWhisper-init, ours) | 244M | 0.103 | 92% | 0 |
| base (KD from small, ours) | 74M | 0.167 | 92% | 0 |
| tiny (KD from small, ours) | 39M | 0.216 | 86% | 0 |
| small-B (whisper-init, ablation) | 244M | 0.265 | 92% | 0 |
| whisper-small (baseline) | 244M | 0.171 | 60% | 0 |
| CrisperWhisper2.0_small (baseline, markup-suppressed) | 244M | 0.682 | 60% | 0 |
CrisperWhisper2.0_small is run with its 31 markup tokens suppressed, so it emits clean text instead of looping
on [verbatim_N]. This barely changes its CER (0.68 vs 0.71): it is English-centric and does Korean poorly either way.
What it shows:
- Our base (74M) beats whisper-small (244M) on Korean (0.167 vs 0.171) at one third the size.
- CrisperWhisper-init (0.103) vs whisper-init (0.265), same data: the CrisperWhisper prior transfers to Korean and cuts CER 2.6x. Both reached the same training loss, so the gain is generalization.
- base-KD (74M) beats the whisper-init 244M ablation (0.265): the advantage propagates down via distillation.
- Our models keep 86 to 92% of disfluencies. The original CrisperWhisper, even markup-suppressed, sits at CER 0.682 on Korean: it drops clauses, hallucinates English, or repeats characters.
Transcription examples
Complete outputs on held-out clips (nothing trimmed). REF is the human verbatim transcript; CrisperWhisper is the fair markup-suppressed run.
Example 1: a long turn opening with the filler γμγ
REF μ κ·Έλ¦¬κ³ μΈλ κ²μ μλ μΈλ κ²μμ΄λ μΈλ μμ
λ μ’μνλ€κ³ νλλΌκ³ κ·Έλμ λ€μ΄λ΄μΌ λλλ° κ·Έκ±° μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄ μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§. μ.
small (ours) μ κ·Έλ¦¬κ³ μΈλ κ²μ μλ μΈλ κ²μμ΄λ. μΈλ μμ
λ μ’μνλ€κ³ νλλΌκ³ . κ·Έλμ λ€μ΄λ΄μΌ λλλ° κ·Έκ±° μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄. μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§. μ.
base (ours) μ. κ·Έλ¦¬κ³ μΈλ κ²μ μλ μΈλ κ²μμ΄λΌ μΈλ μμ
λ μ’μνλ€κ³ νλλΌκ³ . κ·Έλμ λ€μ΄λ΄μΌ λλλ° κ·Έ μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄. μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§. μ.
tiny (ours) μ κ·Έλ¦¬κ³ μΈλ κ²μ μλ μΈλ κ²μμ΄λΌ μΈλ μμ
λ μ’μνλ€κ³ νλλΌκ³ κ·Έλμ λ€μ΄λ΄μΌ λλλ° κ·Έκ±° μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄. μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§. μ.
whisper-small κ·Έλ¦¬κ³ μΈλκ²μ.. μλ μΈλκ²μμ΄λ μΈλ μμ
λ μ’μνλ€κ³ νλλΌκ³ κ·Έλμ λ€μ΄λ΄μΌ λλλ° μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄ μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§
CrisperWhisper κ·Έλ¦¬κ³ μΈλ μμ
λ μ’μνλ€ νλλΌκ³ ? κ·Έλμ λ€μ΄λ΄μΌ νλλ° μμ§κΉμ§ λͺ» λ€μ΄λ΄€μ΄. μ€λ μ§μ κ°λ©΄μ κΌ λ€μ΄λ΄μΌμ§.
What differs: our models reproduce the full turn, opening filler γμγ and closing γμγ included. whisper-small drops the γμγ, γκ·Έκ±°γ, and the final γμγ. CrisperWhisper drops the whole γμΈλ κ²μ μλ μΈλ κ²μμ΄λγ clause.
Example 2: filler γμ΄γ plus a self-repeat γλ λν λ ... λ λν λγ
REF μ΄ λν
λ 맨 μ²μμ λ λν
λ 맨 μ²μμ λμ¬ λ κ·Έλ° κ±΄λ° μ κ·Όλ° μ§μ§ μ’ μ¬
small (ours) μ΄. λν
λ 맨 μ²μμ λ λν
λ 맨 μ²μμ λμ¬ λ κ·Έλ° κ±΄λ° μ κ·Όλ° μ§μ§ μ’ μ¬
base (ours) μ΄ λν
λ 맨 μ²μμ λ λν
λ 맨 μ²μμ λμ¬ λ κ·Έλ° κ±΄λ° μ κ·Όλ° μ§μ§ μ’ μ¬ν
tiny (ours) μ΄. λν
λ 맨 μ²μμλ λν
λ 맨 μ²μμλ ν λ κ·Έλ¬λλ° μ κ·Όλ° μ§μ§ μ’ μ¬
whisper-small λν
λ 맨 μ²μμ λμ¬ λ κ·Έλ° κ±΄λ° μ κ·Όλ° μ§μ§ μ’ μ¬..
CrisperWhisper 'Nintendo Manchera' 맨λ 'Nintendo Manchera' λμ¬ λ κ·Έλ° κ±΄λ°, μ, κ·Όλ° μ§μ§ μ’,
What differs: our small/base keep the filler γμ΄γ and the self-repeat γλ λν λ ... λ λν λγ. whisper-small drops the γμ΄γ and collapses the repeat. CrisperWhisper hallucinates the Korean word γλν λγ into English "Nintendo Manchera".
Example 3: a short turn that is mostly the filler γμγ
REF μ μ μ ν€μ΄ λμμ? μ
small (ours) μ μ μ ν€μ΄ λμμ? μ
base (ours) μ μ μ ν μ΅ λμμ? μ΄.
tiny (ours) μ μ ν μ΅λ λ²μ΄?
whisper-small μ, μ, μ, μ, ν€μ΄ λμμ?
CrisperWhisper -γ
γ
. -γ
γ
.
What differs: our small reproduces it exactly, all four γμγ and γν€μ΄ λμμγ. whisper-small adds a fourth γμγ and drops the trailing one. CrisperWhisper degenerates into "-γ γ .". (On this very short clip our base and tiny mishear γν€μ΄γ as γν μ΅γ, an honest small-model slip.)
Rare-word slips are real (γν€μ΄γ to γν μ΅γ) and we do not hide them (our CER is 0.10 to 0.22). The point is which model preserves how the sentence was actually spoken, fillers and repeats included.
Usage
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import librosa, torch
repo = "Sky-Kim/crisper-whisper2-base-finetuned-ko"
model = WhisperForConditionalGeneration.from_pretrained(repo).eval()
proc = WhisperProcessor.from_pretrained(repo)
audio, _ = librosa.load("your_korean.wav", sr=16000, mono=True)
feat = proc.feature_extractor(audio, sampling_rate=16000, return_tensors="pt").input_features
ids = model.generate(feat, language="ko", task="transcribe", max_new_tokens=200)
print(proc.tokenizer.decode(ids[0], skip_special_tokens=True))
Architecture: Whisper 512 dim, 6+6 layers with the CrisperWhisper 51,896-token vocabulary. Emits plain verbatim text (no markup tags). On-device target: Unity Sentis 2.6 (ONNX / Float16 export).
Training data
| Dataset | Role | License |
|---|---|---|
| KsponSpeech (AI Hub / NIA) | Korean verbatim ground-truth labels (about 236,600 clips) | AI Hub terms (restricted) |
| Zeroth-Korean | Korean read speech (about 6,000 clips) | CC BY 4.0 |
| CrisperWhisper2.0_small (nyralabs) | small init weights, KD teacher for base/tiny, tokenizer | Non-Commercial Research |
| Whisper (openai) | tiny / base skeletons | MIT |
Labels are KsponSpeech ground truth (markup parsed to verbatim text, fillers kept). Korean only, encoder frozen. small: 15k steps. base and tiny: soft-KD from small, 12k steps. Eval is the held-out KsponSpeech valid split.
Licensing and redistribution
Effective license is the most restrictive of the components, so this is non-commercial / research use only.
- CrisperWhisper2.0 (nyralabs), used as the small init, the KD teacher for base and tiny, and the tokenizer, is under the Nyra Health Non-Commercial Research License (commercial use requires a commercial license). These weights inherit that restriction.
- KsponSpeech (AI Hub / NIA), the Korean training labels, is not an open license. Redistribution and commercial use are restricted by the AI Hub Terms of Use.
- Zeroth-Korean is CC BY 4.0 (attribution). Whisper skeletons are MIT.
Commercial use requires a commercial license from Nyra Labs plus clearing the AI Hub KsponSpeech terms (or retraining with permissive components). License chain recorded to our knowledge (2026-08); not legal advice. Verify current terms before distributing. Full attribution in NOTICE.md.
Limitations
Korean only (no English). Verbatim output keeps disfluencies, which raises CER against cleaned references but is the point for verbatim use (meeting notes, speech analysis, subtitles as said). tiny is less accurate than base and small. Numbers are in-domain (KsponSpeech).
- Downloads last month
- -
Model tree for Sky-Kim/crisper-whisper2-base-finetuned-ko
Base model
nyralabs/CrisperWhisper2.0_small