| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- LangGraph
- RDBMS
- 소프트웨어 개발
- TTS
- 랭그래프
- 자연어처리
- CLIP
- 딥러닝
- RNN
- 알고리즘
- python기초
- 머신러닝
- dementional reduction
- python 기초
- 힙정렬
- UMAP
- 데이터엔지니어
- Python
- 정보처리기사
- 기초
- 캐글
- Transformer
- 생성형 인공지능
- SQL
- 데이터 시각화
- 에이전트
- CNN
- ASR
- 트랜스포머
- 객체지향
- Today
- Total
수달이네 기술 블로그
1. Whisper Fine-Tuning에 대해 본문
이번에 캡스톤 프로젝트로 음성만을 활용한 AI방송 진행자를 제작하려 한다. 이 과정에서 ASR에 사용하는 중요한 API인 whisper를 어떻게 fine-tuning하고, 어떻게 성능을 향상시킬지에 대한 조사이다.
Whisper Fine-Tuning
Whisper란?
OpenAI에서 지원하는 웹에서 여러 언어, 다중 작업에 거쳐 수집한 68만 시간 분량의 지도 데이터로 훈련된 자동 음성 인식(ASR)시스템
- 이런 방대하고 다양한 데이터셋을 활용해 억양, 배경소음, 기술적 언어에 대한 정확성을 향상시킴.

- 단순한 엔드투엔드 접근방식, 인코더-디코더 트랜스포머 구조
- 입력: 입력 오디오가 30초 길이의 청크로 나누어 지고, 로그-멜 스펙토그램으로 변환된 후 인코더로 넘어감
- 디코더: 일치하는 텍스트 캡션을 예측(NLP)하도록 훈련됨.
- 언어 식별, 구문 수준 타임스탬프, 다중 언어 음성 받아쓰기, 타 언어-영어 음성 번역 등의 작업 수행

기존 방식A: 깨끗한 스튜디오 환경에서 녹음된 음성 + 완벽하게 받아쓴 고품질의 데이터(LibriSpeech등)사용
- 양은 적지만 데이터의 질이 좋음
- 실제 상황처럼 소음이 심하거나 마이크 성능이 안좋으면 인식률 저하
기존 방식 B: 비지도형인 소리데이터를 그냥 많이 보여주는 방식(Wav2Vec등)
- 소리의 특징을 파악하는 능력 탁월
- 소리 자체는 잘 이해하나 실제 문장으로 바꾸려면 추가 학습이 필요함. → 오버피팅 위험
Whisper: 지저분해도 많은 데이터(웹에서 수집)를 선택
- 약 지도 학습: 완벽하지 않은 자막 등의 날것의 데이터를 활용
- 대규모 데이터: 68만 시간의 데이터 활용
- 특정 데이터에 오버피팅 되어있지 않음.
- 파인튜닝을 거치지 않아 LibriSpeech 성능 자체엔 못미달함
- 그러나 제로샷 성능을 측정하면 기존 모델보다 오류발생이 적고, 정확함.
원래 언어를 받아쓰고, 영어로 번역하는 작업으로 음성-텍스트 변환을 학습하는데 효과적이었음


Fine-Tuning을 해야하는 이유
일단 Faster-whisper의 경우엔 Fine-tuning이 불가하므로 Whisper모델을 사용할 것.
- 따라서 메모리를 줄여야하므로 4비트 양자화등의 메모리 감소 기법을 사용
- 또한 whisper모델의 크기를 large이상으로 지정 → large이하는 영어만 지원함.
언어
OpenAI Whisper 모델 파인튜닝 완벽 가이드: 한국어 음성인식 정확도 높이기 – TildAlice
기본적으로 한국어를 지원하지만, 기본 영어이므로 파인튜닝 해주어 문자 오류율을 줄일 수 있다.
- 추가로 방언이나 억양 차이가 있으면 문자 오류율(CER)이 높음
데이터셋 베이스 Whisper CER 파인튜닝 후 CER 개선율 일반 한국어 8.2% 6.1% 25.6% 사투리(경상도) 22.4% 11.8% 47.3%
- 멘토링 프로그램 특성상 표준어가 많겠지만 일부 사용자가 있을 가능성이 존재
도메인 특화
영역별 음성 인식을 위한 Whisper Large-v3 미세 조정 | 수샨트 트와야나 작성 | 매체
일부 전문 지식, 단어의 경우 이해를 못하는 등의 오류가 존재할 수 있다.
- 예를 들어 위 링크의 예시에선 핀테크에 관련된 도메인별 용어 오류를 해결시켰다.
소음
기본적으로 소음에 강건한 모델이지만, fine-tuning을 통해 더욱 강건하게 만들 수 있다.
데이터셋(자동차 내 멘토링 관련)
위에서 찾은 데이터셋등을 참고하여 모델 Fine-tuning을 진행
한국어 + 억양 Fine-tuning
- KsponSpeech: AI Hub 한국어 대화 음성 (969시간)
- Zeroth-Korean: 51.6시간 읽기 음성
- AIHub 방송 콘텐츠: 뉴스, 드라마 (1000시간+)
- 자체 수집 데이터: 최소 5~10시간 권장
도메인 특화 지식 + 자동차 소음
- 멘토링 관련 지식의 경우 다양하고, 도메인을 특정 짓기 힘들다는 단점이 존재.
- 관련 서비스 운영하며 데이터셋 수집 + 증강 + Fine-tuning이 중요해보임.
- 혹은 전문용어 리스트를 확보한 후, TTS를 이용하여 파인튜닝하는 방식인 Synthetic Data활용도 고려해보기
모델 최적화
위와 같이 Fine-tuning로 학습된 가중치를 CTranslate2포멧으로 변환하는 방식도 고려 가능
Large모델을 파인튜닝하므로 LoRA활용 고려
8-bit/4-bit 양자화 학습 방식 고려(QLoRA)
평가 지표
CER(Character Error Rate, 음절 오류율)을 지표로 활용
- WER은 단어단위이지만, 한국어에 어울리지 않는 평가지표
RTF(Real Time Factor)
- 파인튜닝 이후 인식 속도를 확인(너무 무거우면 처리 시간이 길어질 가능성 존재)
구조
- Feature Extractor(오디오 분할): 엽력 오디오를 30초 단위 or 더 짧게 잘라준 후 학습 가능한 로그 멜 스펙토그램으로 변환한다
- Encoder층(LoRA) + Frozen(메인 가중치 고정)
- Decoder층(LoRA) + Frozen
- Language Token: 학습 시 토큰을 한국어, Transcription모드로 고정
'프로젝트' 카테고리의 다른 글
| 3. ASR 모델의 도메인 특화 용어 인식 오류율 감소를 위한 논문 탐구 (0) | 2026.04.04 |
|---|---|
| 2. 인공지능 음성 인터페이스의 지연시간/인지심리학적 분석 (0) | 2026.04.02 |
| 1. 멀티클라우드(도커) (0) | 2025.10.12 |
| 1. 머신러닝의 기초 (1) | 2025.09.30 |
| 0. 캐글 프로젝트 준비 (1) | 2025.09.23 |