GeekNews에 공유된 Apple SpeechAnalyzer API 벤치마크 글은 macOS/iOS 26에 도입된 새로운 온디바이스 음성 인식 엔진을 Whisper·SFSpeechRecognizer와 직접 비교한 흥미로운 결과입니다. 단순히 "Apple이 Whisper를 이겼다"는 표면적 결론보다, 실제 프로덕션 코드로 어떤 언어를 어떤 환경에서 쓰느냐가 핵심이라는 점이 시사적입니다.

M2 Pro 32GB에서 5,559개 LibriSpeech 음성을 돌렸을 때 SpeechAnalyzer가 깨끗한 음성에서 2.12%, 잡음 많은 음성에서 4.56%의 단어 오류율(WER)로 1위를 차지했고, 같은 입력에 SFSpeechRecognizer는 각각 9.02%와 16.25%로 3.5~4배 더 많은 오류를 냈다고 합니다. Whisper Small과 비교해도 정확도는 더 좋으면서 속도는 약 3배 빠르다는 결과 — 즉 모델 크기 대비 정확도·속도 두 축 모두에서 우위입니다.
- Apple M2 Pro에서 5,559개 LibriSpeech 음성을 동일한 프로덕션 코드로 처리한 결과, SpeechAnalyzer가 깨끗한 음성 2.12%, 잡음이 많은 음성 4.56%의 단어 오류율(WER)로 테스트한 모든 엔진보다 정확했음
- 기존 SFSpeechRecognizer의 WER는 각각 9.02%와 16.25%였으며, 새 API는 같은 음성에서 오류를 3.5~4배 줄이면서 구두점과 대소문자까지 적용함
- SpeechAnalyzer는 Whisper Small보다 정확하면서 약 3배 빨랐지만, 약 30개 로케일과 OS 26 이상 Apple 플랫폼으로 지원 범위가 제한됨
- 모든 엔진이 M2 Pro에서 실시간보다 약 12~40배 빠르게 작동해 1시간 분량을 1.5~5분에 처리했으나, 개발 작업이 병행된 환경이라 엔진별 정밀 속도는 공개되지 않았음
- 현재 iPhone이나 Mac에서 영어를 온디바이스로 전사한다면 SpeechAnalyzer가 우선 선택지가 될 수 있으며, Inscribe도 지원 언어에는 SpeechAnalyzer를, 나머지에는 Whisper를 쓰도록 기본 설정을 변경함
정확도 벤치마크 결과
- 단어 오류율(WER) 은 엔진이 단어를 잘못 대체하거나 누락하거나 새로 만들어 낸 비율로, 낮을수록 정확함
- 모든 엔진은 Apple M2 Pro 32GB와 macOS 26.5.1에서 완전히 온디바이스로 실행됨
- LibriSpeech의 두 평가 데이터셋을 사용함
test-clean: 깨끗하게 낭독된 음성 2,620개test-other: 더 어렵고 잡음이 많은 음성 2,939개- 엔진별 WER와 모델 크기는 다음과 같음
- Apple SpeechAnalyzer:
test-clean2.12%,test-other4.56%, 시스템 모델 - Whisper Small: 3.74%, 7.95%, 약 460MB
- Whisper Base: 5.42%, 12.51%, 약 140MB
- Whisper Tiny: 7.88%, 17.04%, 약 40MB
- Apple SFSpeechRecognizer: 9.02%, 16.25%, 시스템 모델
- Apple은 iOS 26과 macOS 26에서 SFSpeechRecognizer를 SpeechAnalyzer·SpeechTranscriber로 교체했지만 정확도 수치는 공개하지 않았음
- Inscribe는 두 Apple 엔진과 세 Whisper 모델을 함께 제공하므로, 같은 컴퓨터·음성·프로덕션 코드 경로에서 다섯 엔진을 비교할 수 있었음
SFSpeechRecognizer에서 이전해야 하는 이유
- SpeechAnalyzer는 같은 음성에서 기존 API보다 WER를 3.5~4배 낮춤
- 깨끗한 음성: 9.02%에서 2.12%로 감소
- 잡음이 많은 음성: 16.25%에서 4.56%로 감소
- 정확도뿐 아니라 구두점과 대소문자가 적용된 텍스트를 생성해 기존 엔진보다 결과가 잘 정돈됨
- 동일한 1시간 분량을 전사하면 기존 API에서 잘못 인식되는 단어가 SpeechAnalyzer보다 대략 4배 많아짐
- 음성 명령보다 긴 오디오를 처리하는 앱이라면 정확도 차이만으로도 마이그레이션할 근거가 충분함
SpeechAnalyzer와 Whisper의 선택 기준
- SpeechAnalyzer는 두 데이터셋 모두에서 테스트 대상 중 가장 큰 Whisper 모델인 Whisper Small보다 낮은 WER를 기록함
- 오디오 1초당 연산 시간도 Whisper Small의 약 3분의 1이어서 정확도와 속도 모두 앞섰음
- 영어를 Apple 하드웨어에서 처리할 때는 테스트 가능한 온디바이스 엔진 가운데 SpeechAnalyzer가 가장 강한 결과를 보임
- Whisper에는 두 가지 이점이 남아 있음
- SpeechTranscriber가 약 30개 로케일을 지원하는 데 비해 훨씬 많은 언어를 지원함
- OS 26 이상 Apple 플랫폼에 제한되지 않고 여러 환경에서 실행 가능함
- Inscribe의
Auto엔진은 측정 결과에 따라 지원 언어에는 SpeechAnalyzer, 그 밖의 언어에는 Whisper를 우선 사용하도록 변경됨
처리 속도와 측정 제약
- 다섯 엔진 모두 M2 Pro에서 실시간보다 약 12~40배 빠르게 작동함
- 1시간 분량의 오디오를 온디바이스에서 약 1.5~5분에 전사할 수 있었음
- SpeechAnalyzer는 Whisper Small보다 약 3배 빠르면서 더 낮은 WER를 기록함
- 정확도 측정 중 같은 컴퓨터에서 개발 작업도 실행돼 엔진별 처리 시간에 잡음이 섞였음
- 이 작업 부하는 WER에는 영향을 주지 않음
- 정밀한 엔진별 속도 표는 전용 유휴 환경에서 다시 측정한 뒤 추가할 예정임

재현성과 공개 데이터
- Whisper 측정값은 OpenAI가 공개한 LibriSpeech 결과와 가까워 벤치마크 하네스의 일관성을 확인할 수 있었음
- Whisper Tiny
test-clean: 측정 7.88%, OpenAI 7.6%, 차이 +0.28%p - Whisper Base
test-clean: 5.42%, 5.0%, +0.42%p - Whisper Small
test-clean: 3.74%, 3.4%, +0.34%p - Whisper Tiny
test-other: 17.04%, 16.9%, +0.14%p - Whisper Base
test-other: 12.51%, 12.4%, +0.11%p - Whisper Small
test-other: 7.95%, 7.6%, +0.35%p - 모든 측정값이 소폭 높게 나온 이유는 더 엄격한 텍스트 정규화기와 CoreML 양자화임
- 같은 코퍼스·정규화기·채점기를 Apple 엔진에도 적용했기 때문에, Whisper 결과와의 일치가 Apple 측정값을 검증하는 기반이 됨
- 문장별 인식 결과와 기준 텍스트, 문장별 WER를 공개해 다른 정규화 방식으로 다시 채점할 수 있음
- summary.json: 10개 측정값을 담은 3KB 기계 판독용 요약
- raw-transcripts-apple.json.gz: SpeechAnalyzer의 5,559개 결과, 620KB
- raw-transcripts-legacy.json.gz: SFSpeechRecognizer의 5,559개 결과, 620KB
WER 측정 방식과 온디바이스 검증
- 각 엔진은 실험용 설정이 아니라 Inscribe 사용자가 실제로 이용하는 프로덕션 코드 경로와 버퍼링 설정으로 실행됨
- LibriSpeech 기준 텍스트는 대문자이고 구두점이 없으며 숫자가 단어로 적혀 있지만, 최신 엔진은 구두점과 숫자를 포함해 출력함
- 양쪽 텍스트에 대소문자, 구두점, 숫자의 단어 변환, 축약형을 처리하는 동일한 정규화기를 적용함
- 보기 좋은 형식을 생성한 엔진이 불이익을 받지 않도록 원문을 그대로 채점하지 않고 OpenAI의 영어 정규화 방식을 따름
- 짧은 문장이 과도하게 반영되지 않도록 문장별 WER 평균 대신 전체 오류 수를 전체 기준 단어 수로 나눈 코퍼스 WER를 사용함
- SFSpeechRecognizer는 기본적으로 Apple 서버로 음성을 전송할 수 있어 온디바이스 인식을 강제함
- 클라우드로 자동 전환되면 비교가 무효가 되므로 하네스가 실행을 거부하도록 구성함
- 개인정보 보호 제품에서 5,559개 음성을 서버로 업로드하지 않기 위한 조치이기도 함
- 결과를 반환하지 않은 경우도 숨기지 않고 해당 문장의 WER를 100%로 계산함
- 총 27,795회 전사 중 한 번 발생했으며, SFSpeechRecognizer의
test-other사례였음
벤치마크에서 발견한 제품 버그
- Inscribe의 Apple 엔진 파일 가져오기 기능은 오디오를 SpeechAnalyzer에 전달하고 입력 스트림을 닫았지만
finalizeAndFinishThroughEndOfInput()을 호출하지 않았음 - 이 호출이 없으면 분석기가 최종 결과를 전달하지 않아 파일 가져오기가 무기한 멈춤
Auto설정이 이전까지 Whisper를 우선 사용해 해당 버그가 발견되지 않은 상태였음- 벤치마크 과정에서 문제를 확인했으며 수정 사항은 같은 날 배포됨
한계와 실제 적용 범위
- 영어 낭독 음성만 평가했으므로, Whisper가 지원하지만 SpeechTranscriber가 지원하지 않는 100개 이상의 언어에는 결과를 적용할 수 없음
- LibriSpeech는 비교 가능한 표준 코퍼스지만 회의 음성은 아님
- 억양이 있는 음성, 멀리서 녹음한 음성, 여러 화자가 참여한 회의는 후속 평가 대상임
- M2 Pro와 macOS 26.5.1 한 대에서만 측정함
- 정확도는 다른 Apple Silicon에서도 유지될 것으로 예상되지만 속도는 칩에 따라 달라짐
- Whisper는 Inscribe가 실제 제공하는 WhisperKit CoreML 양자화 모델로 실행함
- 기준 GPU 구현은 결과가 소폭 다를 수 있으며, OpenAI 공개값과의 차이는 재현성 표에 반영돼 있음
- 현재 iPhone이나 Mac에서 영어를 전사한다면 운영체제 내장 SpeechAnalyzer가 측정상 가장 정확한 온디바이스 선택지였음
- Inscribe는 지원 언어에서 SpeechAnalyzer를, 나머지에서 Whisper를 사용하며 모든 처리를 기기 안에서 수행하고 음성을 업로드하지 않음
한국 iOS·macOS 개발자에게 주는 시사점
한국은 모바일 음성 입력 사용자 규모가 큰 시장 중 하나입니다. iOS 26·macOS 26 이상을 타깃하는 앱이라면 영어·한국어 모두에서 SpeechAnalyzer를 우선 시도하고, 영어 한정이거나 OS 버전이 낮은 사용자를 지원해야 할 때만 Whisper로 폴백하는 전략이 효율적입니다. 한국어 모델은 시스템 모델로 제공되지만 Apple이 WER 수치를 공개하지 않았으므로, 직접 회사 도메인 음성(콜센터 통화, 의료 기록, 회의 등)으로 소규모 비교 테스트를 거치는 것이 안전합니다.
특히 1시간 분량을 1.5~5분에 처리하는 속도는 실시간 자막이나 회의록 자동화에 큰 강점입니다. Inscribe가 이미 두 Apple 엔진 + 세 Whisper 모델을 같은 인터페이스로 노출하고 있다는 점은, 멀티 엔진 서비스의 표준 아키텍처가 "플러그형 엔진 레이어 + 로케일별 라우팅"으로 수렴하고 있음을 보여줍니다 — 자체 음성 파이프라인을 만들 때도 이 패턴을 차용하면 모델 교체 비용이 크게 줄어듭니다.
원문: GeekNews #31408 · 출처: Inscribe blog
📰 원본 출처 · https://news.hada.io/topic?id=31408 (#N=31408)
이 글은 GeekNews(긱뉴스)에 게제된 글을 기반으로 작성되었습니다. 원본의 라이선스와 저작권은 원작자에게 있습니다.
'개발 팁' 카테고리의 다른 글
| Grok Build가 오픈 소스로 공개됨 — Rust로 만든 xAI 터미널 코딩 에이전트, TUI·에이전트 런타임·도구를 크레이트 단위로 풀었다 (0) | 2026.07.17 |
|---|---|
| GeekNews로 어쩌다가 취업하기 — 투자 AI 프로덕트 Cresco가 첫 커리어로 이어지기까지 (0) | 2026.07.15 |
| Repo-rter — 깃허브 레포 통계를 14일 블랙아웃 없이 영구 저장하는 15MB 로컬 데스크탑 앱 (0) | 2026.07.13 |
| Ant, 경량 JavaScript 런타임과 생태계 — 8.6MB 단일 바이너리로 V8/JSC 우회하는 새로운 접근 (0) | 2026.07.13 |
| Bun을 Rust로 다시 쓰기 — Zig 53만 줄을 Claude Code가 며칠 만에 옮긴 비결 (0) | 2026.07.10 |