Korean ASR with inline disfluency detection, fine-tuned from
openai/whisper-large-v3-turbo.
Transcribes Korean speech while emitting 10 special tokens for fillers, repetitions, and laughter directly inside the transcript.
1import torch, torchaudio
2from transformers import WhisperProcessor, WhisperForConditionalGeneration
3
4MODEL_ID = "rearleg/SeloWhisper-ko-disfluency"
5
6processor = WhisperProcessor.from_pretrained(MODEL_ID)
7model = WhisperForConditionalGeneration.from_pretrained(MODEL_ID).eval()
8
9device = "cuda" if torch.cuda.is_available() else "cpu"
10model.to(device)
11
12waveform, sr = torchaudio.load("sample.wav")
13if sr != 16000:
14 waveform = torchaudio.functional.resample(waveform, sr, 16000)
15 sr = 16000
16if waveform.shape[0] > 1:
17 waveform = waveform.mean(dim=0, keepdim=True)
18
19inputs = processor(
20 waveform.squeeze().numpy(),
21 sampling_rate=sr,
22 return_tensors="pt",
23).to(device)
24
25with torch.no_grad():
26 generated = model.generate(
27 inputs["input_features"],
28 max_length=448,
29 num_beams=1,
30 do_sample=False,
31 )
32
33# Keep special tokens so disfluencies remain visible
34transcription = processor.batch_decode(generated, skip_special_tokens=False)[0]
35print(transcription)
Evaluated on held-out Korean conversational speech.
1@misc{cheon2025selowhisper,
2 title = {SeloWhisper-ko-disfluency: Korean ASR with Inline Disfluency Detection},
3 author = {Cheon, Changhyun},
4 year = {2025},
5 howpublished = {\url{https://huggingface.co/rearleg/SeloWhisper-ko-disfluency}}
6}
1@article{radford2022whisper,
2 title = {Robust Speech Recognition via Large-Scale Weak Supervision},
3 author = {Radford, Alec and Kim, Jong Wook and Xu, Tao and Brockman, Greg
4 and McLeavey, Christine and Sutskever, Ilya},
5 journal = {arXiv preprint arXiv:2212.04356},
6 year = {2022}
7}