whisper-small-dialect-ko
openai/whisper-small을 한국어 4개 지역 방언(강원도, 경상도, 전라도, 충청도) 음성 → 표준어 텍스트 변환 태스크로 파인튜닝한 모델입니다.
온디바이스 IoT 기기(타겟: 오렌지파이 5, RK3588)에서 "사투리 음성 명령 → 표준어 변환" 기능을 위해 학습되었습니다.
학습 데이터
AIHub 한국어 방언 발화 데이터셋(강원도/경상도/전라도/충청도)에서 지역별로 아래와 같이 수집한 발화를 사용했습니다 (전라도는 라벨 데이터가 구조적으로 적어 상한선에 도달함).
| 지역 | 학습 발화 수 |
|---|---|
| 경상도 | 8,542 |
| 충청도 | 6,310 |
| 강원도 | 4,290 |
| 전라도 | 1,169 |
| 합계 | 20,151 |
성능 (CER, base whisper-small 대비)
| 지역 | base | 파인튜닝 |
|---|---|---|
| 강원도 | 0.140 | 0.058 |
| 경상도 | 0.183 | 0.070 |
| 전라도 | 0.233 | 0.136 |
| 충청도 | 0.331 | 0.121 |
| 전체 평균 | 0.222 | 0.096 |
알려진 한계
- CER 개선은 주로 음소 인식 정확도 향상에서 온 것으로 보이며, "단디→단단히", "언능", "그런다냐" 같은 방언 특유 어휘·어미의 표준어 의미 치환은 별도의 약점으로 남아 있습니다.
- 제주도 방언은 base CER이 0.8 수준으로 다른 지역과 이질적이어서 이 모델의 학습 범위에서 제외되었습니다.
사용 예시
from transformers import WhisperForConditionalGeneration, WhisperProcessor
model = WhisperForConditionalGeneration.from_pretrained("kimyh716/whisper-small-dialect-ko")
processor = WhisperProcessor.from_pretrained("kimyh716/whisper-small-dialect-ko")
input_features = processor(audio, sampling_rate=16000, return_tensors="pt").input_features
generated_ids = model.generate(input_features, language="korean", task="transcribe")
text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]