정확도 수치는 아직 여기에 공개하지 않았습니다
이 사이트에는 Voice Type의 단어 오류율 실측값이 없으며, 이 페이지는 수치를 지어내지 않습니다. 우리가 공개하는 모든 수치에는 그 수치를 만든 스크립트가 함께 제공됩니다. 단어 오류율 벤치마크는 막혀 있습니다. 앱에 헤드리스 진입점이 없어서, 사람이 키보드 앞에 있지 않으면 코퍼스를 인식기에 통과시킬 수 없기 때문입니다. 그 진입점이 생기기 전까지, 아래의 수치는 어느 것도 정확도 수치가 아닙니다. 전송과 페이로드에 관한 수치이므로, 둘을 혼동하지 않도록 주의해 주세요. 벤더가 내세우는 정확도 퍼센트는 우리 것까지 포함해, 코퍼스 이름과 반복 실행할 수 있는 스크립트가 없다면 의미가 없는 것으로 보셔야 합니다.
클라우드 요청이 오디오를 보내기 전에 치르는 고정 비용
Apple M1 Pro, macOS 26.5.1 빌드 25F80, 가정용 Wi-Fi 환경에서 2026-08-29에 측정했습니다. 엔드포인트마다 12회씩 반복했습니다. API 키도 오디오도 보내지 않았기 때문에, 측정한 응답은 인증 없는 거부 응답입니다. 추론이 전혀 없는, 제공업체 엣지까지의 실제 왕복입니다. 재현 스크립트는 bench/connsetup.py --profile wifi --repeat 12이고, 원시 샘플은 bench/results/03-connection-setup-20260829T065129Z.json에 있습니다.
| 엔드포인트 | 오디오 전송 전 설정 시간(중앙값) | p95 |
|---|---|---|
| api.openai.com | 30.9 ms | 61.0 ms |
| api.deepgram.com | 514.9 ms | 766.2 ms |
| 기기 내 | 전혀 없음 | 전혀 없음 |
같은 기기, 같은 연결, 같은 시각인데도 잘 운영되는 두 제공업체의 고정 비용은 17배 차이가 납니다. Deepgram이 느린 서비스라는 뜻은 아닙니다. TCP 연결 중앙값 252.9 ms는 이 Mac에서 보았을 때 접속 지점이 멀리 있다는 의미입니다. 이 수치에는 단서가 따라붙습니다. macOS의 DNS 캐시는 첫 요청 이후 데워져 있었고, 한 기기에서 한 연결로 한 시점에 잰 결과이며, 실제 요청에서는 이 하한선 위에 오디오 업로드와 모델 대기 시간이 더해집니다.
30분 분량의 음성 입력은 얼마나 무거울까요
실제 오디오를 인코딩해서 바이트를 측정했습니다. 재현 스크립트는 bench/payloadsize.py이고, 원시 샘플은 bench/results/05-payload-size-20260829T070405Z.json에 있습니다. 클라우드 인식기는 처음 세 행 중 하나를 받아야 합니다. 기기 내 인식기는 그중 어느 것도 받지 않습니다.
| 30분 분량의 음성 입력을 | 업로드 크기 |
|---|---|
| 원본 48 kHz WAV | 172.8 MB |
| 16 kHz WAV | 57.6 MB |
| Opus 24k | 5.25 MB |
| 기기 내 | 0바이트 |
손실 압축 행에 영향을 주는 단서가 있습니다. 이번 측정에서는 사람의 음성이 아니라 합성음 say 코퍼스를 인코딩했습니다. Opus와 AAC는 가변 비트레이트라서 크기가 내용에 따라 달라집니다. WAV 행은 영향을 받지 않습니다.
인식기가 실제로 받는 것
Whisper 기반 모델은 비교적 좁은 음량 범위의 16 kHz 모노 음성을 기대합니다. 반면 MacBook 마이크는 방의 환경과 앉은 자세에 따라 정해진 음량의 48 kHz 오디오를 내보내고, 그 밑에는 책상을 두드리는 소리와 건물의 낮은 진동이 깔려 있습니다. 전처리 체인이 이 간극을 메웁니다. 각 단계는 특정한 결함을 하나씩 보정하며, 뒤 단계는 앞 단계가 먼저 실행되었다는 전제에서 동작하므로 순서가 정해져 있습니다.

각 단계와 그 단계가 보정하는 결함
- Silero 음성 활동 감지: 스트리밍 음성 게이트가 말이 있는 구간을 표시합니다. 무음이나 일정한 배경 소음은 디코딩에 도달하지 않으므로, 인식기가 선풍기 소리를 받아 적으려 하지 않습니다.
- 하이패스 필터링: 50 Hz 하이패스로 책상 두드리는 소리, 발소리, 건물의 낮은 진동을 제거합니다. 이런 소리는 음성 대역 아래에 있으면서 헤드룸을 갉아먹습니다.
- 음량 정규화: K 가중 정규화로 마이크와의 거리 차이와, 말하는 도중 몸을 뒤로 젖혔을 때 생기는 음량 변화를 보정합니다. 목표값은 경로에 따라 다릅니다. 파일 받아쓰기는 −14 LUFS, 실시간 음성 입력은 기본 −16 LUFS, 다른 실시간 구성에서는 −18 LUFS입니다.
- 대역 제한 리샘플링: 로우패스를 거쳐 48 kHz를 16 kHz로 변환하므로, 8 kHz 위의 성분이 화자가 내지도 않은 에일리어싱으로 음성 대역에 접혀 들어오지 않습니다.
- 교정용 프롬프트 계층 없음: 받아쓴 결과 위에 과도한 LLM 정리를 돌리지 않습니다. 그렇게 하면 출력은 자신 있게 읽히지만 실제로 한 말에서 멀어집니다. 눈에 보이지 않기 때문에 정확도 실패 중에서도 가장 나쁜 유형입니다.
이 체인의 어떤 단계도 고치지 못하는 것
- 나쁜 마이크: 전처리는 이미 들어온 소리의 크기를 조정하고 필터링할 뿐입니다. 녹음에 담기지 않은 음성의 에너지를 되살릴 수는 없습니다.
- 겹치는 다른 사람의 말소리: 게이트가 감지하는 것은 음성입니다. 다른 사람이 말하는 것도 음성이므로 그대로 통과합니다.
- 모델이 한 번도 본 적 없는 고유명사: 사용자 지정 어휘가 도움이 되지만, 흔치 않은 성이나 사내 코드명은 그래도 가끔 틀리게 나옵니다.
- 범주를 잘못 고른 경우: 정말 필요한 것이 macOS를 손 대지 않고 제어하는 일이라면, 어떤 음성 입력 앱도 음성 제어를 대신할 수 없습니다.
기술 세부 내용은 여기에 있습니다
- 48 kHz에서 16 kHz로의 대역 제한 리샘플링, 필터가 없을 때 에일리어싱이 어떻게 들리는지도 다룹니다.
- 기기 내 파이프라인 단계별 설명, 음성 게이트에서 Metal 기반 추론까지 다룹니다.
