Wav2Vec2 실전 사용 — 파이프라인과 파인튜닝

Wav2Vec2 실전 사용

Wav2Vec2를 바로 써보려면 Hugging Face Transformers의 모델을 from_pretrained로 불러오면 돼요. facebook/wav2vec2-base16kHz로 샘플링된 음성으로 사전학습된 기본 모델이에요. 입력 음성도 반드시 16kHz로 맞춰야 해요.

출처: https://huggingface.co/facebook/wav2vec2-base

모델 바로 로드

facebook/wav2vec2-base는 오디오만으로 사전학습됐기 때문에 토크나이저가 없어요. 음성 인식에 쓰려면 토크나이저를 만들고 라벨 텍스트로 파인튜닝해야 해요.

from transformers import AutoProcessor, AutoModelForPreTraining

processor = AutoProcessor.from_pretrained("facebook/wav2vec2-base")
model = AutoModelForPreTraining.from_pretrained("facebook/wav2vec2-base", device_map="auto")

Flash Attention 2로 로드

반정밀(torch.float16)과 함께 사용하면 메모리를 줄이고 추론을 빠르게 해요.

from transformers import Wav2Vec2Model

model = Wav2Vec2Model.from_pretrained(
    "facebook/wav2vec2-large-960h-lv60-self",
    attn_implementation="flash_attention_2",
    device_map="auto",
)

파인튜닝 방향

파인튜닝은 Hugging Face 블로그에 잘 정리돼 있어요. 전사된 라벨 데이터를 준비하고 Wav2Vec2ForCTC에 CTC 손실로 학습하는 방식이에요. 다중 언어 파인튜닝을 원하면 XLS-R 계열을 쓰는 것도 방법이에요.

평가 지표

Librispeech clean/other 테스트 기준으로, 오디오만 사전학습한 facebook/wav2vec2-large-960h-lv60-self 계열은 파인튜닝으로 1.8/3.3 WER을 달성해요.

더 알아보기