본문으로 건너뛰기
IFAI

오픈소스

단 16.9MB로 구동되는 음성인식: Cactus, 초경량 온디바이스 모델 Whistle 공개

게시 확산 지수 48

Cactus Compute가 단일 파일 크기 16.9MB의 온디바이스 음성인식 모델 Whistle을 공개했다. 외장 의존성 없이 순수 CPU만으로 구동되며 7개 언어 전사와 단어 단위 타임스탬프를 지원하고, 여러 벤치마크에서 145MB 크기의 Whisper base를 넘어섰다.

이미지: youtube.com

Whistle은 음성 전사, 단어 단위 타임스탬프, 음성 특징 추출을 단 16.9MB 크기의 단일 파일 하나로 끝내는 초경량 온디바이스 음성인식 모델이다.

기존 음성인식 모델은 작아도 수백 MB에서 수 GB에 달하고 복잡한 Python 환경이나 GPU를 요구하기 일쑤였다. Cactus Compute가 내놓은 Whistle은 완전히 다른 길을 택했다. 외장 의존성 없이 순수 CPU만으로 구동되며, 단일 .cact 파일 하나를 경량 C++ 엔진에 올리면 바로 동작한다.

무엇을 할 수 있나

Whistle은 장치 내부에서 오프라인으로 세 가지 핵심 작업을 수행한다.

첫째는 음성 전사다. 영어, 독일어, 프랑스어, 스페인어, 이탈리아어, 네덜란드어, 폴란드어 등 7개 언어를 지원한다. 16kHz 모노 오디오를 한 번에 최대 30초까지 처리하며 30초를 넘어가면 윈도우 분할 방식으로 전사한다. 언어는 자동 감지되지만 수동으로 지정할 수도 있다.

둘째는 단어 단위 타임스탬프다. 디코더 어텐션을 활용해 각 단어의 시작 시점, 종료 시점, 신뢰도 확률을 정밀하게 추출한다.

셋째는 음성 임베딩이다. 텍스트로 디코딩하지 않고도 80ms 프레임당 한 줄씩 인코더 벡터를 즉시 반환받을 수 있다.

여기에 아호-코라식(Aho-Corasick) 오토마톤을 적용한 키워드 바이어싱 기능을 지원해 특정 고유명사의 인식 확률을 높일 수 있다. 음성 볼륨이 기준치에 미치지 못하면 빔 서치를 돌리지 않고 즉시 빈 텍스트를 반환하는 침묵 감지 기능도 탑재됐다.

속도, 규격 및 벤치마크

86,174개 발화 데이터를 통한 벤치마크에서 Whistle은 LibriSpeech, SPGISpeech, Earnings-22, FLEURS 평균 등 다수 테스트에서 145.3MB 크기의 Whisper base보다 낮은 단어 오류율을 기록했다. 실제 테스트 영상에서는 디코딩 속도가 Whisper base보다 약 6배 빠르다고 소개되기도 했다.

첫 토큰 생성 지연 시간도 인상적이다. 모든 오디오를 30초로 패딩하는 Whisper와 달리 Whistle은 실제 오디오 길이에 비례해 동작한다. 첫 토큰 반환까지 5초 음성은 5.9ms, 10초 음성은 11.1ms, 30초 음성은 36.3ms밖에 걸리지 않는다.

이런 성능은 8블록 인코더와 8블록 디코더, 그리고 효율적인 게이트 크로스 어텐션 구조 덕분이다. 오디오 투영 계산을 입력 시점에 한 번만 수행해 캐싱하기 때문에 5개 빔 서치를 돌려도 오디오 인코딩을 중복 수행하지 않는다.

어떻게 실행하나

설치와 배포는 매우 단순하다. C++ 엔진은 macOS, Linux, iOS, Android, watchOS, Windows on ARM, RISC-V, MIPS, WASI 등 17개 타깃 플랫폼용으로 사전 빌드되어 제공된다.

Python 환경에서는 간단한 pip 명령으로 설치할 수 있다. 16kHz WAV 오디오 파일은 추가 라이브러리 없이 기본 상태에서 바로 처리되며, 마이크 녹음이 필요하다면 mic 패키지만 덧붙이면 된다. 터미널에서 needle whistle playground를 실행하면 마이크 테스트를 즉시 해볼 수 있다.

모델 가중치는 Hugging Face에 공개되어 있으며, 엔진과 전체 소스코드는 GitHub(Cactus-Compute/needle3)에서 확인할 수 있다.

왜 중요한가

우리는 Whistle이 파라미터 경쟁에서 벗어나 엣지 환경의 현실적인 한계를 정확히 공략했다는 점에서 매우 영리하다고 본다. 16.9MB의 파일 크기와 무의존성 CPU 추론은 스마트홈 기기, 웨어러블, 차량용 시스템, 마이크로컨트롤러처럼 GPU를 달 수 없는 하드웨어에 완벽하게 부합한다.

현재 지원 언어가 유럽 7개국 언어로 한정되어 있고 단일 출력이 320토큰으로 제한되어 긴 회의록 작성에는 적합하지 않다는 한계는 분명하다. 하지만 클라우드 전송 없이 온디바이스에서 즉각적인 음성 명령 처리가 필요한 개발자라면 지금 당장 검토해볼 가치가 충분하다.

출처 (2)

  1. [1]
    cactuscompute.com(새 탭에서 열림)원문cactuscompute.com
  2. [2]
    youtube.com(새 탭에서 열림)보도youtube.com

매일 AI 콘텐츠 픽