Whisper: 웹 스케일 약지도 학습 기반 범용 음성 인식

OpenAI · 2022-12-01 · Multimodal · MIT

개요

Whisper는 2022년 OpenAI가 발표한 대규모 범용 음성 인식 모델로, 68만 시간의 웹 스케일 약지도(weakly supervised) 음성-텍스트 데이터로 학습하였다. 기존 음성 인식 연구가 LibriSpeech 등 깨끗하게 레이블링된 소규모 데이터셋(수천~수만 시간)에 집중했던 것과 근본적으로 다른 접근을 취한다.

인터넷에서 자연스럽게 수집된 다양한 환경, 언어, 발화 스타일의 실제 오디오 데이터로 학습하여, 노이즈, 억양, 방언, 전문 용어에 대한 강인성이 탁월하다. 99개 언어의 음성 인식(ASR), 음성 번역(음성→영어 텍스트), 언어 감지를 단일 모델로 수행하며, 별도의 파인튜닝 없이 다양한 도메인과 환경에서 높은 정확도를 보이는 강력한 제로샷 일반화 능력을 갖추었다.

Whisper의 핵심 철학은 “데이터 스케일이 곧 일반화”이다. 소규모 고품질 데이터로 특정 도메인에 특화하는 대신, 대규모 다양한 데이터로 학습하여 어떤 도메인에서도 안정적으로 동작하는 범용 모델을 만드는 것이 목표이다. 이 접근은 GPT-3의 언어 모델링 철학을 음성 인식 분야에 적용한 것으로 볼 수 있다. 기존 음성 인식 시스템이 도메인별 파인튜닝을 필수적으로 요구했던 것과 달리, Whisper는 학습 시 본 적 없는 새로운 도메인에서도 안정적인 성능을 제공한다.

아키텍처 상세

오디오 전처리

Whisper는 원시 오디오를 80채널 로그 멜 스펙트로그램으로 변환하여 입력으로 사용한다. 오디오는 16kHz로 리샘플링되고, 25ms 윈도우와 10ms 스트라이드의 STFT(Short-Time Fourier Transform)를 적용한 후 80개의 멜 필터뱅크로 변환한다. 입력 길이는 30초 단위로 고정되며, 짧은 오디오는 제로 패딩하고 긴 오디오는 30초 세그먼트로 분할하여 순차적으로 처리한다.

스펙트로그램의 수학적 표현:

여기서 번째 멜 필터의 가중치이고, 은 수치 안정성을 위한 작은 상수()이다. 30초 오디오의 경우 3000개의 시간 프레임이 생성되며, 이는 80x3000 크기의 2차원 입력으로 인코더에 전달된다.

인코더

인코더는 2개의 1D 합성곱 층(convolution layer)으로 시작하여 오디오 특징의 시간 해상도를 처리한다. 첫 번째 합성곱은 커널 크기 3, 스트라이드 1로 채널 차원을 확장하고, 두 번째는 커널 크기 3, 스트라이드 2로 시간 차원을 2배 다운샘플링한다. GELU 활성화 함수를 사용하며, 합성곱 출력에 정현파(sinusoidal) 위치 인코딩을 더한다. 이 합성곱 층은 로컬 오디오 패턴(음소, 음절 수준)을 포착하는 역할을 한다.

이후 표준 트랜스포머 인코더 블록이 쌓인다. 각 블록은 Multi-Head Self-Attention과 Feed-Forward Network로 구성되며, LayerNorm과 잔차 연결을 포함한다. Large-v3 모델 기준으로 32개 레이어, 히든 차원 1280, 20개 어텐션 헤드를 사용하여, 30초 오디오의 1500개 시간 프레임(다운샘플링 후)에 대한 풍부한 컨텍스트 표현을 생성한다.

디코더

디코더는 표준 자기회귀 트랜스포머 디코더로, Self-Attention과 Cross-Attention을 포함한다. Self-Attention은 인과 마스크를 사용하여 자기회귀 생성을 지원하고, Cross-Attention은 인코더의 오디오 표현을 참조하여 텍스트 토큰을 생성한다. 디코더의 위치 인코딩은 학습 가능한(learned) 방식을 사용한다. 어휘 크기는 51,865개의 BPE 토큰으로 구성되며, 여기에는 다국어 텍스트 토큰과 특수 태스크 토큰이 포함된다.

디코더의 출력 확률 분포:

여기서 는 오디오 입력의 멜 스펙트로그램, 는 이전까지 생성된 토큰이다.

멀티태스크 토큰 설계

Whisper의 가장 독특한 설계 중 하나는 특수 토큰을 통한 멀티태스크 인코딩이다. 디코더의 입력 시퀀스는 다음과 같은 구조를 갖는다:

<|startoftranscript|> <|language|> <|task|> <|notimestamps|> [텍스트 토큰들] <|endoftext|>

각 특수 토큰의 역할은 다음과 같다:

  • <|language|>: 99개 언어 중 하나를 지정하는 토큰이다. 예를 들어 <|ko|>는 한국어, <|en|>은 영어를 지정한다. 언어 감지 태스크에서는 이 토큰의 예측 확률로 입력 오디오의 언어를 판별한다.
  • <|task|>: <|transcribe|> 또는 <|translate|>로 전사/번역 태스크를 지정한다. 전사 모드에서는 원본 언어 텍스트를 출력하고, 번역 모드에서는 영어 텍스트를 출력한다.
  • 타임스탬프 토큰: <|notimestamps|>로 타임스탬프 예측을 비활성화하거나, <|0.00|>~<|30.00|>으로 각 발화 구간의 시작과 끝 시간을 예측한다.

이 설계를 통해 단일 모델이 언어 감지, 음성 전사, 음성 번역, 타임스탬프 예측을 모두 수행한다. 태스크 전환은 토큰 하나만 바꾸면 되므로 매우 효율적이다.

핵심 혁신

Whisper의 가장 핵심적인 혁신은 웹 스케일 약지도 학습이다. 68만 시간의 데이터는 기존 음성 인식 데이터셋(LibriSpeech 960시간)의 약 700배에 달한다. 이 데이터는 인터넷에서 자연스럽게 생성된 음성-텍스트 쌍(유튜브 자막, 팟캐스트 전사, 강의 자막 등)으로, 완벽하게 정확하지 않은 “약한 지도” 신호를 대규모로 활용한다. 약한 지도 신호의 품질 문제는 데이터의 절대적 규모가 보상하며, 다양한 도메인과 환경의 데이터가 모델의 일반화 능력을 크게 향상시킨다.

멀티태스크 통합 설계도 중요한 혁신이다. 특수 토큰을 통해 하나의 모델이 여러 태스크를 수행하는 방식은, 별도의 태스크별 모델을 학습하는 것보다 효율적이며 태스크 간 지식 전이(knowledge transfer)가 자연스럽게 이루어진다. 음성 번역 학습 데이터가 음성 인식의 정확도를 향상시키고, 다국어 학습이 각 개별 언어의 인식 성능을 개선하는 등의 시너지가 관찰된다.

**도메인 외 일반화(out-of-domain generalization)**에서의 탁월한 성능도 혁신적이다. 기존 음성 인식 시스템은 학습 도메인과 다른 도메인에서 성능이 급격히 하락하는 문제가 있었으나, Whisper는 파인튜닝 없이도 의료, 법률, 기술 등 전문 도메인에서 기존 전문 모델과 경쟁하거나 상회하는 성능을 보인다.

벤치마크/성능

벤치마크Whisper Large-v3wav2vec 2.0HuBERT상용 API
LibriSpeech (clean) WER1.8%1.8%1.4%~2.0%
LibriSpeech (other) WER3.7%3.3%2.6%~4.0%
Common Voice (다국어) WER9.1%18.2%16.5%~12.0%
노이즈 환경 (CHiME-6) WER15.2%25.8%23.1%~18.0%
지원 언어 수991~21~210~30
파인튜닝 필요 여부불필요필요필요N/A

Whisper는 깨끗한 환경(LibriSpeech clean)에서는 전문 모델들과 대등하고(WER 1.8%), 노이즈 환경(CHiME-6)에서는 15.2%로 wav2vec 2.0의 25.8%보다 크게 우수하다. 다국어 시나리오(Common Voice)에서는 9.1%로 wav2vec 2.0의 18.2%를 절반으로 줄였다. 이 모든 성능이 파인튜닝 없이 달성된다는 것이 핵심이다.

모델 크기파라미터인코더 레이어디코더 레이어히든 차원영어 WER
Tiny39M443847.6%
Base74M665125.0%
Small244M12127683.4%
Medium769M242410242.7%
Large-v31.5B323212801.8%

실용적 활용과 생태계

Whisper는 발표 이후 음성 인식 분야의 사실상 표준 모델로 자리잡았다. 오픈소스(MIT 라이선스)로 공개되어 상업적 활용에도 제한이 없으며, HuggingFace Transformers, faster-whisper, whisper.cpp 등 다양한 최적화 구현이 등장하였다. whisper.cpp는 C/C++로 재구현하여 CPU에서도 실시간 전사가 가능하며, faster-whisper는 CTranslate2를 활용하여 GPU 추론 속도를 4배 이상 향상시켰다.

Whisper의 인코더는 Qwen2-Audio, Qwen3-Omni 등 후속 멀티모달 모델의 오디오 인코더로 널리 채택되고 있다. 대규모 약지도 학습으로 획득한 풍부한 음성 표현이 멀티모달 시스템에서 오디오 이해의 기반으로 활용되는 것이다. 또한 의료, 법률, 교육 등 전문 도메인에서는 Whisper를 파인튜닝하여 도메인 특화 성능을 더욱 향상시키는 사례가 증가하고 있다.

학습

인터넷에서 수집한 680,000시간의 음성-텍스트 쌍으로 약지도 학습을 수행한다. 데이터의 약 65%는 영어, 나머지 35%는 98개 비영어 언어로 구성되며, 약 18%는 음성 번역 쌍(비영어 음성→영어 텍스트)이다. 데이터 필터링 파이프라인으로 품질을 관리하며, 기존 ASR 시스템의 출력과 지나치게 유사한 데이터는 제거하여 기계 생성 레이블에 대한 과적합을 방지한다. 이 필터링은 모델이 진정한 일반화를 학습하도록 보장하는 중요한 단계이다. Adam 옵티마이저와 선형 학습률 워밍업을 사용하며, FP16 혼합 정밀도 학습으로 효율을 높인다. Tiny(39M)부터 Large-v3(1.5B)까지 5가지 크기의 모델을 학습하여, 모델 크기에 따른 성능 스케일링을 체계적으로 분석하였다.

관련 모델

  • Transformer: 인코더-디코더 구조의 기반이 되는 원형 아키텍처로, Whisper의 근본적인 설계 기반
  • wav2vec 2.0: 자기지도 학습 기반 음성 표현 모델로, Whisper의 지도 학습 접근과 대비되는 패러다임
  • HuBERT: 마스킹 기반 자기지도 학습 음성 모델
  • Qwen2-Audio / Qwen3-Omni: Whisper 계열 인코더를 채택한 후속 멀티모달 모델

참고 자료

한계

Whisper의 주요 한계는 30초 고정 세그먼트 처리로 인한 경계 문제(boundary artifacts)이다. 30초 경계에서 단어가 잘리거나 중복되는 현상이 발생할 수 있으며, 이를 해결하기 위한 오버랩 세그먼트 전략이 필요하다. 또한 환각(hallucination) 문제가 보고되었는데, 무음 구간에서 존재하지 않는 텍스트를 생성하거나, 반복적인 패턴의 텍스트를 무한히 반복하는 경우가 있다. 저자원 언어(low-resource language)에서는 학습 데이터 부족으로 영어 대비 성능이 크게 떨어지며, 특히 아프리카, 동남아시아 소수 언어에서 WER이 30% 이상으로 높아진다. 그럼에도 불구하고 Whisper의 접근법은 음성 인식 분야의 패러다임을 근본적으로 전환시켰으며, 이후 등장하는 거의 모든 음성 모델이 Whisper의 웹 스케일 약지도 학습 접근법에서 영향을 받고 있다.

관련 문서