
Whisper 오디오 요구사항: 지원 형식 및 사양 완전 가이드
Eric King
Author
Whisper의 오디오 요구사항을 이해하는 것은 최상의 전사 정확도를 얻는 데 중요합니다. Whisper는 유연하게 많은 오디오 형식을 처리하지만, 최적 사양을 따르면 성능을 극대화할 수 있습니다.
이 가이드는 Whisper 전사를 위해 오디오 파일을 준비할 때 필요한 모든 오디오 요구사항, 지원 형식, 기술 사양, 모범 사례를 다룹니다.
지원 오디오 형식
Whisper는 FFmpeg를 통해 광범위한 오디오·비디오 형식을 지원합니다. 전체 목록은 다음과 같습니다.
오디오 형식
| 형식 | 확장자 | 참고 |
|---|---|---|
| WAV | .wav | ✅ 권장, 무손실 |
| MP3 | .mp3 | ✅ 가장 일반적 |
| FLAC | .flac | ✅ 무손실, 압축 효율 좋음 |
| M4A | .m4a | ✅ Apple 형식, AAC 코덱 |
| AAC | .aac | ✅ 고품질 압축 |
| OGG | .ogg | ✅ 오픈소스 형식 |
| OPUS | .opus | ✅ 저지연, 웹 친화적 |
| WMA | .wma | ⚠️ 덜 흔함 |
| AMR | .amr | ⚠️ 저품질, 통화 녹음 |
비디오 형식(오디오 추출)
| 형식 | 확장자 | 참고 |
|---|---|---|
| MP4 | .mp4 | ✅ 가장 흔한 비디오 형식 |
| AVI | .avi | ✅ 구형이지만 지원 |
| MKV | .mkv | ✅ 컨테이너 |
| MOV | .mov | ✅ QuickTime |
| WebM | .webm | ✅ 웹 비디오 |
| FLV | .flv | ⚠️ 레거시 Flash |
중요: Whisper는 비디오 파일에서 오디오를 자동으로 추출하므로 비디오를 바로 업로드할 수 있습니다.
샘플 레이트 요구사항
최적 샘플 레이트: 16 kHz
Whisper는 처리 전에 모든 오디오를 내부적으로 16 kHz 모노로 리샘플링합니다. 음성 인식에 최적인 샘플 레이트입니다.
지원 샘플 레이트
Whisper는 모든 샘플 레이트를 받지만 다음을 알아두세요.
| 입력 샘플 레이트 | Whisper 처리 | 권장 |
|---|---|---|
| 8 kHz | 16 kHz로 리샘플 | ✅ 통화, 허용 가능 |
| 16 kHz | 그대로 사용 | ✅ 최적, 리샘플 불필요 |
| 22.05 kHz | 16 kHz로 리샘플 | ✅ 양호한 품질 |
| 44.1 kHz | 16 kHz로 리샘플 | ✅ CD 품질, 문제없음 |
| 48 kHz | 16 kHz로 리샘플 | ✅ 전문 오디오, 문제없음 |
| 96 kHz | 16 kHz로 리샘플 | ⚠️ 불필요, 파일 큼 |
핵심: 더 높은 샘플 레이트가 Whisper 정확도를 높이지는 않습니다. 모델은 16 kHz 오디오로 학습되었으므로 16 kHz 입력은 불필요한 리샘플과 파일 크기를 줄입니다.
모범 사례
# Convert audio to 16 kHz before processing (optional optimization)
import ffmpeg
def convert_to_16khz(input_file, output_file):
stream = ffmpeg.input(input_file)
stream = ffmpeg.output(
stream,
output_file,
acodec='pcm_s16le',
ac=1, # Mono
ar=16000 # 16 kHz
)
ffmpeg.run(stream, overwrite_output=True)
비트 깊이 요구사항
지원 비트 깊이
| 비트 깊이 | 상태 | 참고 |
|---|---|---|
| 8비트 | ✅ 지원 | 저품질, 비권장 |
| 16비트 | ✅ 권장 | 표준으로 충분 |
| 24비트 | ✅ 지원 | 전문용, 파일 큼 |
| 32비트 float | ✅ 지원 | 스튜디오급, 과한 경우 많음 |
권장: 16비트 PCM이 표준이며 음성 인식에 충분한 품질을 제공합니다. 더 깊은 비트는 전사 정확도를 높이지 않습니다.
채널 구성: 모노 vs 스테레오
모노(권장)
Whisper는 내부적으로 모노로 처리하므로 모노 입력이 최적입니다.
장점:
- 파일 크기 작음
- 처리 빠름
- 채널 믹싱 불필요
- 단일 화자에 적합
모노 사용 예:
- 한 명 화자 녹음
- 전화
- 한 명 호스트 팟캐스트
- 대부분의 전사 작업
스테레오(지원)
스테레오 파일은 자동으로 모노로 변환됩니다(평균 또는 한 채널 선택).
스테레오가 유용한 경우:
- 화자가 채널별로 분리(드묾)
- 원본이 스테레오(변환 자동)
모범 사례: 가능하면 처리 전에 스테레오를 모노로 변환:
import ffmpeg
# Convert stereo to mono
stream = ffmpeg.input('stereo_audio.wav')
stream = ffmpeg.output(
stream,
'mono_audio.wav',
ac=1 # Mono channel
)
ffmpeg.run(stream, overwrite_output=True)
파일 크기 제한
실무적 한계
Whisper에는 엄격한 파일 크기 상한이 없지만 실무상 고려가 필요합니다.
| 파일 크기 | 처리 시간 | 권장 |
|---|---|---|
| 10 MB 미만 | 수초 | ✅ 이상적 |
| 10–100 MB | 수분 | ✅ 양호 |
| 100–500 MB | 10–30분 | ⚠️ 청킹 고려 |
| 500 MB 초과 | 30분 이상 | ⚠️ 청킹 필수 |
메모리
큰 파일은 더 많은 RAM/VRAM이 필요합니다.
- base 모델: ~1–2 GB VRAM
- small 모델: ~2–3 GB VRAM
- medium 모델: ~5–6 GB VRAM
- large 모델: ~10–12 GB VRAM
모범 사례: 100 MB를 넘는 파일은 청크로 나눕니다(아래 참고).
길이 제한
권장 길이
| 길이 | 상태 | 참고 |
|---|---|---|
| 30분 미만 | ✅ 최적 | 바로 처리 |
| 30–60분 | ✅ 양호 | 청킹 필요할 수 있음 |
| 1–2시간 | ⚠️ 청킹 권장 | 청크가 더 정확한 경우 많음 |
| 2시간 초과 | ⚠️ 청킹 필수 | 안정성을 위해 필요 |
긴 오디오를 나누는 이유
- 메모리 한계: 메모리 부족 오류 방지
- 더 나은 정확도: 작은 청크가 맥락 유지에 유리
- 빠른 처리: 병렬 처리 가능
- 오류 복구: 한 청크 실패 시 다른 청크는 성공 가능
청킹 전략:
# Split long audio into 30-60 second chunks with 5-10 second overlap
def chunk_audio(audio_path, chunk_length=60, overlap=5):
# Implementation: split audio into segments
# Process each chunk separately
# Merge results with timestamps
pass
오디오 품질 요구사항
최소 기준
허용 가능한 정확도를 위해 오디오는 다음을 만족하는 것이 좋습니다.
| 요소 | 최소 | 최적 |
|---|---|---|
| 신호 대 잡음비 | 10 dB 초과 | 20 dB 초과 |
| 비트레이트(MP3) | ≥ 64 kbps | ≥ 128 kbps |
| 음량 | 들림 | −3 dB로 정규화 |
| 배경 소음 | 최소 | 없음 |
| 에코/잔향 | 최소 | 없음 |
품질 체크리스트
전사 전 확인:
- ✅ 명료한 음성: 화자가 또렷하게 들림
- ✅ 최소 노이즈: 배경이 음성을 압도하지 않음
- ✅ 일정한 볼륨: 급격한 변화 없음
- ✅ 클리핑 없음: 왜곡·포화 없음
- ✅ 좋은 마이크: 적절한 장비
코덱 요구사항
권장 코덱
| 코덱 | 형식 | 품질 | 권장 |
|---|---|---|---|
| PCM | WAV | 무손실 | ✅ 정확도에 최적 |
| FLAC | FLAC | 무손실 | ✅ 우수, 압축 |
| AAC | M4A, MP4 | 고품질 | ✅ 매우 좋음 |
| MP3 | MP3 | 손실 | ✅ ≥128 kbps면 양호 |
| OGG Vorbis | OGG | 손실 | ✅ 양호 |
| OPUS | OPUS | 손실 | ✅ 양호, 저지연 |
코덱 모범 사례
최대 정확도를 위해:
- PCM(WAV) 또는 FLAC(무손실) 사용
실용적 사용:
- AAC 또는 MP3 ≥128 kbps(결과 매우 좋음)
피할 것:
- 매우 낮은 MP3 비트레이트(64 kbps 미만)
- 과도하게 압축된 형식
- 필요 없으면 전화 코덱(AMR, G.711)
전처리 권장사항
전사 전에
Whisper가 많은 문제를 자동으로 처리하지만 전처리로 개선할 수 있습니다.
1. 볼륨 정규화
import numpy as np
from scipy.io import wavfile
def normalize_audio(audio_path, output_path, target_dB=-3.0):
sr, audio = wavfile.read(audio_path)
audio = audio.astype(np.float32)
# Normalize to target dB
max_val = np.max(np.abs(audio))
target_linear = 10 ** (target_dB / 20)
audio = audio * (target_linear / max_val)
# Clip to prevent overflow
audio = np.clip(audio, -1.0, 1.0)
wavfile.write(output_path, sr, (audio * 32767).astype(np.int16))
2. 무음 제거
# Remove leading/trailing silence
# Helps with processing time and accuracy
3. 노이즈 감소(선택)
노이즈가 많은 녹음:
# Use noise reduction libraries
# librosa, noisereduce, or specialized tools
# Only if background noise is significant
4. 16 kHz로 리샘플(선택)
파일 크기 최적화:
import ffmpeg
stream = ffmpeg.input('input.wav')
stream = ffmpeg.output(
stream,
'output_16k.wav',
ar=16000 # Resample to 16 kHz
)
ffmpeg.run(stream, overwrite_output=True)
흔한 오디오 문제와 해결
문제 1: 샘플 레이트가 매우 낮음(8 kHz)
문제: 8 kHz 통화 녹음은 정확도가 떨어질 수 있습니다.
해결:
- medium 또는 large 모델 사용(낮은 샘플 레이트에 유리)
- 16 kHz로 업샘플(품질은 복구되지 않지만 처리에 도움)
문제 2: 화자가 다른 스테레오
문제: 두 화자가 채널이 나뉨.
해결:
# Extract each channel separately
import torchaudio
audio, sr = torchaudio.load('stereo.wav')
speaker1 = audio[0] # Left channel
speaker2 = audio[1] # Right channel
# Transcribe each separately
result1 = model.transcribe(speaker1)
result2 = model.transcribe(speaker2)
문제 3: 가변 비트레이트 MP3
문제: VBR이 일부 도구에서 문제를 일으킬 수 있음.
해결:
- 고정 비트레이트(CBR) 또는 WAV로 변환
- Whisper는 VBR도 처리하지만 CBR이 더 예측 가능
문제 4: 손상된 오디오 파일
문제: 재생은 되지만 Whisper 실패.
해결:
# Re-encode the file
import ffmpeg
stream = ffmpeg.input('corrupted.mp3')
stream = ffmpeg.output(
stream,
'fixed.wav',
acodec='pcm_s16le'
)
ffmpeg.run(stream, overwrite_output=True)
문제 5: 매우 긴 오디오 파일
문제: 메모리 부족 또는 매우 느린 처리.
해결:
- 30–60초 청크로 분할
- 순차 또는 병렬 처리
- 타임스탬프로 결과 병합
형식별 권장
전화 통화
| 매개변수 | 값 | 이유 |
|---|---|---|
| 샘플 레이트 | 8–16 kHz | 통화 품질 |
| 형식 | WAV 또는 MP3 | 표준 |
| 비트레이트 | ≥ 64 kbps | 코덱 품질 |
| 채널 | 모노 | 통화 표준 |
회의(Zoom, Teams)
| 매개변수 | 값 | 이유 |
|---|---|---|
| 샘플 레이트 | 16–48 kHz | 고품질 |
| 형식 | MP4(오디오 추출) | 비디오 형식 |
| 비트레이트 | ≥ 128 kbps | 양호한 품질 |
| 채널 | 모노 또는 스테레오 | 설정에 따름 |
팟캐스트
| 매개변수 | 값 | 이유 |
|---|---|---|
| 샘플 레이트 | 44.1–48 kHz | 전문 품질 |
| 형식 | MP3, WAV, M4A | 일반적 |
| 비트레이트 | ≥ 128 kbps | 양호 |
| 채널 | 모노 | 표준 |
인터뷰
| 매개변수 | 값 | 이유 |
|---|---|---|
| 샘플 레이트 | 16–48 kHz | 고품질 |
| 형식 | WAV 또는 FLAC | 최대 정확도 |
| 비트레이트 | 무손실 또는 ≥ 192 kbps | 전문 |
| 채널 | 모노 | 표준 |
Whisper 오디오 요구사항 요약
최소 요구사항
- ✅ 형식: FFmpeg가 지원하는 모든 형식
- ✅ 샘플 레이트: 임의(최소 8 kHz 권장)
- ✅ 비트 깊이: 8비트 이상
- ✅ 채널: 모노 또는 스테레오(모노 선호)
- ✅ 파일 크기: 엄격한 한계 없음(100 MB 초과 시 청킹)
- ✅ 길이: 엄격한 한계 없음(1시간 초과 시 청킹)
최적 요구사항
- ✅ 형식: WAV, FLAC, MP3(≥128 kbps)
- ✅ 샘플 레이트: 16 kHz(최적, 리샘플 불필요)
- ✅ 비트 깊이: 16비트 PCM
- ✅ 채널: 모노
- ✅ 품질: 명료한 음성, 최소 노이즈
- ✅ 전처리: 정규화된 볼륨, 클리핑 없음
빠른 참조: 오디오 준비 체크리스트
Whisper로 전사하기 전:
- 형식: WAV, MP3, FLAC, M4A 등 지원 형식
- 샘플 레이트: 16 kHz(최적) 또는 기타 지원 레이트
- 비트 깊이: 16비트(권장)
- 채널: 모노(선호) 또는 스테레오
- 파일 크기: 100 MB 미만(또는 청킹 계획)
- 길이: 1시간 미만(또는 청킹 계획)
- 품질: 명료한 음성, 최소 배경 소음
- 볼륨: 정규화, 클리핑 없음
- 코덱: 무손실(WAV/FLAC) 또는 고품질 손실(MP3 ≥128 kbps)
오디오 테스트
빠른 테스트
import whisper
# Load model
model = whisper.load_model("base")
# Test transcription
result = model.transcribe("your_audio.wav")
# Check if successful
if result["text"]:
print("✅ Audio format is compatible")
print(f"Detected language: {result['language']}")
else:
print("⚠️ Transcription failed - check audio format")
흔한 오류 메시지
| 오류 | 원인 | 해결 |
|---|---|---|
| "File not found" | 경로 오류 | 경로 확인 |
| "Unsupported format" | 미지원 형식 | WAV/MP3로 변환 |
| "Out of memory" | 파일 과대 | 오디오 청킹 |
| "Empty audio" | 손상 파일 | 재인코딩 |
모범 사례 요약
- 가능하면 16 kHz 샘플 레이트(Whisper에 최적)
- 스테레오보다 모노 선호(내부는 모노 처리)
- **무손실 형식(WAV/FLAC)**으로 최대 정확도
- 긴 파일(1시간 초과)은 청킹으로 정확도·안정성
- 오디오 정규화로 일관된 레벨
- 배경 소음 최소화
- 적절한 모델 크기(큰 모델이 나쁜 오디오에 유리)
- 큰 모델 전에 base로 먼저 테스트
결론
Whisper는 매우 유연하며 다양한 오디오 형식과 품질을 처리합니다. 최적 사양을 따르면 전사 정확도가 가장 좋습니다.
- 형식: WAV, FLAC, MP3(≥128 kbps)
- 샘플 레이트: 16 kHz(최적)
- 비트 깊이: 16비트 PCM
- 채널: 모노
- 품질: 명료한 음성과 최소 노이즈
기억하세요: 완벽한 형식 사양보다 맑은 오디오가 낫습니다. 기술적으로 이상적인 설정이라도 녹음 품질이 나쁘면 정확도는 떨어집니다. 명료한 음성, 낮은 노이즈, 좋은 마이크 배치에 집중하세요.
프로덕션에서는 SayToWords 같은 플랫폼이 형식 변환, 리샘플링, 최적화를 자동으로 처리하므로 세부 사양보다 맑은 오디오에 집중할 수 있습니다.
Whisper 전사를 위한 오디오 준비가 필요하신가요? 전처리, 청킹 전략, 정확도 최적화에 관한 다른 가이드를 참고하세요.
