whisper.cpp는 OpenAI의 Whisper 자동 음성인식(ASR) 모델을 순수 C/C++로 재구현한 라이브러리다. 외부 의존성 없이 단일 헤더+소스 파일로 구성되어 있어, Android에서 라즈베리 파이까지 거의 모든 플랫폼에서 온디바이스로 실행할 수 있다. Apple Silicon에서는 Metal을 통해 GPU 추론이 가능하며, NVIDIA GPU, Vulkan, OpenVINO도 지원한다. ggml-org(llama.cpp 동일 팀)가 관리한다.
주요 특징
| 특징 | 내용 |
|---|---|
| 의존성 없음 | 외부 라이브러리 불필요, 순수 C/C++ |
| Apple Silicon 최우선 | ARM NEON, Accelerate, Metal, Core ML 최적화 |
| x86 최적화 | AVX 인트린식 지원 |
| 양자화 | 정수 양자화로 메모리·속도 최적화 |
| 런타임 메모리 0 | 실행 중 동적 할당 없음 |
| VAD | 음성 활동 감지(Voice Activity Detection) 내장 |
지원 플랫폼
- macOS (Intel + Apple Silicon)
- iOS, Android
- Linux, FreeBSD, Windows (MSVC, MinGW)
- WebAssembly (브라우저 내 실행)
- 라즈베리 파이, Docker
빠른 시작
# 저장소 클론
git clone https://github.com/ggml-org/whisper.cpp.git
cd whisper.cpp
# 빌드
cmake -B build
cmake --build build -j --config Release
# base.en 모델 다운로드 및 테스트
sh ./models/download-ggml-model.sh base.en
./build/bin/whisper-cli -f samples/jfk.wav또는 한 줄로:
make base.en오디오 포맷 변환
whisper-cli는 16비트 WAV만 지원한다:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav모델 크기 선택
| 모델 | 크기 | 속도 | 정확도 |
|---|---|---|---|
tiny.en | 39 MB | 가장 빠름 | 낮음 |
base.en | 74 MB | 빠름 | 보통 |
small.en | 244 MB | 중간 | 좋음 |
medium.en | 769 MB | 느림 | 높음 |
large | 1.5 GB | 가장 느림 | 최고 |
활용 케이스
- 모바일 앱에서 프라이버시 보장 온디바이스 음성인식
- 오프라인 자막 생성 도구
- 음성 명령 인식 (오프라인 보이스 어시스턴트)
- 엣지 디바이스(라즈베리 파이) 음성인식
클라우드 API와 비교
| 기준 | whisper.cpp | OpenAI Whisper API |
|---|---|---|
| 비용 | 무료 | 분당 과금 |
| 프라이버시 | 로컬 처리 | 클라우드 전송 |
| 오프라인 | ✅ | ❌ |
| 속도 | 하드웨어 의존 | 빠름 (서버급) |
| 정확도 | 동일 모델 | 동일 |
라이선스
MIT
관련 문서
- omnivoice — 600개 이상 언어 지원 오픈소스 TTS
- litert-lm — 엣지 디바이스에서 LLM을 실행하는 Google 추론 프레임워크
- gemini-31-flash-tts — 클라우드 기반 감정 제어 TTS