16.9MB 음성 인식 모델이 스마트워치에 들어간 이유: 11ms 초저지연 로컬 처리의 시대

16.9MB 음성 인식 모델이 스마트워치에 들어간 이유: 11ms 초저지연 로컬 처리의 시대

음성 인식엣지 컴퓨팅오픈 소스

데이터 소스:Cactus 공식 발표와 HN 커뮤니티

전 세계에는 오랫동안 암묵적으로 통용되던 기술적 전제가 하나 있었다. 기계가 사람의 말을 알아듣게 하려면, 음성 데이터가 반드시 기기 밖으로 빠져나가 거대 기술 기업의 클라우드 서버로 전송되어야 한다는 점이다.

우리는 지난 수년 동안 클라우드 거대 모델의 정확도를 얻는 대가로 개인정보를 넘겨주는 이러한 거래에 익숙해져 있었다. 그러나 2026년 10월 2일, Cactus 팀이 Whistle이라는 음성 모델을 오픈소스로 공개하면서 이러한 전제는 산산조각 났다.

개발자인 Jakub Mroz와 Henry Ndubuaku가 선보인 결과물은 단 16.9MB 크기의 단일 파일이다. 이 경량 모델은 로컬 환경에서 145.3MB에 달하는 업계 표준 Whisper base보다 빠른 속도로 구동된다. 이는 음성 인식 서비스에 상시 네트워크 연결이 필수적이라는 통념이 공학적으로 더 이상 유효하지 않음을 단적으로 선언한 셈이다.

스마트워치에 들어가는 16.9MB: 상시 네트워크 연결이라는 고정관념의 붕괴

오랜 시간 동안 음성 인식은 무거운 클라우드 서비스 형태로 포장되어 왔다. 주류 모델들의 용량은 수백 메가바이트에 달했고, 이를 실행하려면 복잡한 의존성 환경이 요구되었다. Whistle은 이와 정반대의 경로를 택했다.

공식 제품 포지셔닝은 매우 명확하다. 스마트폰, 웨어러블 기기, 로봇 공학, 스마트 홈, 차량용 시스템, 그리고 마이크로컨트롤러다. 16.9MB라는 파일 크기는 스마트워치의 내장 칩이나 무선 이어폰의 플래시 메모리 안에도 손쉽게 들어갈 수 있음을 의미한다. 이 모델은 16kHz 모노 오디오를 지원하며 한 번에 최대 30초 분량을 처리한다.

영어와 독일어를 포함한 7개 언어를 기본 지원하며 자동 언어 감지 기능도 내장하고 있다. 모든 핵심 파이프라인은 로컬 기기 내에서 3단계로 완결된다. 첫 번째 단계는 음성 텍스트 변환(전사)이다.

두 번째 단계는 단어 단위의 타임스탬프와 확률값 출력이다. 세 번째 단계는 80밀리초(ms) 단위 프레임마다 음성 특징 임베딩을 추출하여 인코딩하는 과정이다. 모든 음성 데이터가 로컬 기기 내부에서 완전히 소화되므로, 네트워크 전송 과정에서 발생할 수 있는 유출 위험이 물리적으로 차단된다.

그림: Whistle과 Whisper base, Moonshine tiny v2의 단어 오류율(WER), 모델 크기, 첫 토큰 지연 시간, 디코딩 처리량 비교. 출처: Cactus 공식 저장소

11ms의 첫 토큰 지연 시간: 클라우드 왕복 통신을 압도하는 반응 속도

모델 크기에서 현격한 차이가 나는 상황에서, 속도는 소형 모델이 클라우드 공룡에 맞서는 가장 강력한 무기가 된다. 개발팀이 Apple M4 Pro 프로세서 환경에서 10초 분량의 오디오로 테스트한 결과, 가속기 없는 순수 CPU 구동 환경에서 Whistle의 첫 토큰 지연 시간은 단 11.1ms에 불과했다.

이에 비해 동일한 조건에서 비교된 Whisper base의 첫 토큰 지연 시간은 73.2ms에 달했다. 또 다른 경량 모델인 Moonshine tiny v2 역시 22.8ms가 소요되었다. 인간의 감각에서 11.1ms는 실질적으로 찰나에 가까운 시간이다.

말하는 사람이 문장의 전반부를 미처 끝내기도 전에 화면에는 이미 첫 단어가 출력된다. 전체 디코딩 속도에서도 Whistle은 초당 1,319토큰이라는 경이로운 처리량을 기록했다. 크기가 8.6배나 큰 Whisper base의 초당 266토큰을 압도하는 수치다.

네트워크 왕복 지연과 패킷 전송 손실을 전혀 신경 쓸 필요가 없는 순수 로컬 환경에서, 소형 모델은 가장 직접적인 연산 속도를 앞세워 인터랙션 반응성의 주도권을 완벽히 되찾아왔다.

벤치마크 만능주의의 탈피: 필요한 특정 영역에서만 이기면 된다

모델 크기가 16.9MB에 불과한 만큼, 모든 공개 벤치마크 데이터셋에서 전승을 거두는 것은 애초에 불가능하다. 정확도의 핵심 척도인 단어 오류율(WER)에서 두 모델은 엎치락뒤치락하는 양상을 보였다. Whistle은 일상적이고 실용적인 시나리오에서 탁월한 성능을 발휘한다.

LibriSpeech 데이터셋의 깨끗한 오디오 환경에서 4.31, 노이즈가 섞인 환경에서 10.49를 기록했다. 또한 금융 분야의 SPGISpeech(7.65)및 다국어 벤치마크 FLEURS(21.4)에서도 우위를 점했다. 반면 Whisper base는 회의 녹음 데이터셋인 AMI(26.07), 강연 오디오 TED-LIUM(7.61), 다국어 데이터셋 MLS(24.9)에서 점수를 만회했다.

전 세계 온갖 억양을 포괄하는 일반화 성능이 필수적이지 않은 단일 작업 환경이라면, 소형 모델은 이미 실용성의 최전선에 도달해 있다. 벤치마크 순위표에서 압도적인 올라운더로 군림하려 하기보다, 특정 영역에서 확실하게 작동하는 도구가 되는 길을 택한 것이다. 모든 사람을 위한 만병통치약 대신, 특정 하드웨어 기기 위에서 가장 날카롭게 베어내는 단일 목적의 메스가 되었다.

마지막 한 방울까지 쥐어짜낸 최적화: 엔지니어링 차원의 철저한 군더더기 제거

극도로 제한된 크기 안에서 성능을 끌어내기 위해 엔지니어링 단계의 집요한 다이어트가 이루어졌다. Cactus 팀은 바퀴를 재발명하는 대신 자사의 텍스트 모델인 Needle의 기저 엔진 코드를 직접 재사용했다. 음성 작업을 위해 디코더 각 레이어마다 게이트 크로스 어텐션(gated cross-attention) 메커니즘을 단 하나씩 추가했을 뿐이다.

오디오 데이터가 들어오면 모델은 필요한 프로젝션 행렬을 단 한 번만 계산한 뒤 전체 디코딩 과정에 걸쳐 재사용한다. 5중 병렬 빔 서치 경로 역시 단 5개의 짧은 텍스트 캐시만을 소모하므로, 무거운 오디오 텐서를 5번 반복해서 연산하는 낭비를 완전히 제거했다.

묵음 구간에 대해서는 음성 활동 감지 모듈이 즉시 빈 결과를 반환하여 해당 데이터가 연산 비용이 큰 디코딩 파이프라인으로 진입하지 못하도록 차단한다. 또한 도메인 특화 고유명사의 인식률을 높이기 위해 전통적인 오토마타 알고리즘 기반 키워드 바이어싱(Keyword Biasing)을 적용했다. 신경망 전체가 희귀한 고유명사를 억지로 암기하도록 훈련할 필요 없이, 시스템 차원에서 특정 명칭의 적중 확률을 인위적으로 보정할 수 있다.

단일 파일로 음성 녹음을 곧바로 도구 호출로 전환하다

배포 측면에서도 Whistle은 무려 17개 타깃 플랫폼을 위해 사전 컴파일되었다. macOS와 Linux 같은 데스크톱 환경부터 Android, iOS 등 모바일 OS, 나아가 브라우저 내부의 WebAssembly(WASI) 환경까지 지원한다.

엔진 코드는 극도로 정제되어 있어 실행 중에 어떠한 시스템 환경 변수도 읽어 들이지 않는다. 모든 동작 규칙은 컴파일 시점에 고정된 기본값이거나 호출자가 명시적으로 입력한 매개변수에 의해서만 결정된다. 더욱이 Needle 엔진과 동일한 저수준 양자화 포맷을 공유하므로 두 모델을 매끄럽게 연결할 수 있다.

동일한 바이너리 파일이라도 텍스트 설정을 로드하면 일반적인 문자 변환 결과를 출력하고, 도구(Tool) 호출 구성이 담긴 파일을 로드하면 중간 텍스트 생성 과정을 건너뛰고 음성 신호를 곧바로 시스템 실행 명령어로 직행 변환한다.

그림: 동일한 바이너리가 로드된 설정 파일에 따라 서로 다른 결과를 도출하는 배포 구조 다이어그램. 출처: Cactus 공식 저장소

벤치마크 점수보다 중요한 현실 세계의 구체적 문제 해결

기술 커뮤니티의 시선은 벤치마크 점수의 소수점 차이에 머물지 않았다. Hacker News의 한 댓글에서 어느 사용자는 뇌졸중 후유증으로 발음이 어눌해진 84세 아버지의 가슴 뭉클한 사연을 공유했다.

이 사용자는 아버지를 위해 로컬 음성 입력 시스템을 구축해 드렸다. 아버지는 단 10분 만에 자서전 한 페이지를 구술할 수 있게 되었고, 며칠 동안 고통스럽게 자판을 두드려야 했던 수고를 덜었다. 그러나 범용 음성 모델은 말 중간의 헛기침이나 머뭇거림, 말실수를 바로잡는 단어까지 문자 그대로 받아적는 문제가 있었다.

아버지가 “코끼리 아니 원숭이가 나무에 올라갔다”라고 말했을 때, 범용 모델은 그 정정 과정을 모조리 텍스트로 남겨버린다. 아버지에게 진정으로 필요했던 것은 말실수 교정 단어를 스스로 걸러내고 “원숭이가 나무에 올라갔다”라는 최종 의도만을 깔끔하게 출력해 주는 특화된 구술 엔진이었다.

장문의 구술 작업이 필요한 현장에서 사용자가 진정으로 바라는 것은 모든 환경에서 완벽을 뽐내는 거대 클라우드 서비스가 아니다. 초소형 로컬 도구로 지연 없이 초안을 받아 적고, 가벼운 모델로 논리적 정제를 거치는 방식이다. 이는 사용자에게 같은 말을 몇 번이고 다시 녹음하게 만드는 것보다 훨씬 실용적이다.

이번 Whistle의 출시는 모델 크기가 스마트워치 안에 들어갈 만큼 작아졌을 때 온디바이스 처리가 비로소 경제성을 갖춘다는 점을 분명히 보여주었다. 수천억 개 파라미터를 앞세운 클라우드 군비 경쟁에 뛰어들지 않고도, 네트워크가 닿지 않는 외딴곳에서 특정 작업의 효율을 극한으로 끌어올릴 수 있다.

인터넷이 끊긴 구형 스마트워치조차 11ms 만에 음성 명령을 알아듣는 시대가 열렸다. 음성 처리를 위해 반드시 클라우드로 데이터를 보내야만 했던 시대는 공학적 필연성을 완전히 잃어버렸다.

참고 링크:

  • Cactus 공식 발표 및 벤치마크
  • Hacker News 커뮤니티 토론