16.9 MB 음성 인식 모델 Whistle 공개, CPU에서 첫 토큰 11.1 ms, Whisper base보다 작음
- Whistle은 16.9 MB 크기의 음성 인식 모델로 GPU나 외부 의존성 없이 CPU에서 돌아가며, 첫 토큰이 나오기까지 11.1 ms가 걸림
- 영어, 독일어, 프랑스어, 스페인어, 이탈리아어, 네덜란드어, 폴란드어 7개 언어를 지원하고 한 번에 최대 30초 분량을 처리함
- LibriSpeech test-clean, test-other, SPGISpeech, Earnings-22에서는 Whisper base보다 낮은 단어 오류율을 보이고, TED-LIUM, AMI, MLS 평균에서는 Whisper base가 앞섬
- Needle과 같은 C++ 엔진과 블록 구조를 공유해서 하나의 바이너리로 음성을 바로 도구 호출(tool call)로 바꿀 수 있음
- 디코더의 gated cross attention은 클립마다 K와 V를 한 번만 계산해 두고 5개 빔 탐색 내내 재사용함
Hacker News opinions
영어는 진짜 잘 알아듣더라. 내 억양 섞어서 말해도 거의 다 받아적음. 맞춤법 검사기도 이만큼만 눈치 있게 나오면 좋겠음.
스페인어는 별로임. 없는 단어 만들어내고 오타도 심함.
스페인어 어느 지역 기준임? 나는 카스티야 스페인어로 해봤는데 괜찮게 나오던데.
아이폰 받아쓰기 맨날 별로인 그 느낌이 이것도 똑같음. 키보드에 붙여서 쓰는 앱들은 대부분 잘 안 돌아가서 아쉬움.
받아쓰기 말하는 거임? 억양 문제일 수도 있으니까 Mozilla Common Voice에 녹음 기여해보는 것도 방법임. 대부분 STT 학습 데이터에 들어감.
문제는 바이너리 크기가 아님. 뇌졸중 뒤에 발음 흐려진 84살 아버지 말 알아듣는 게 어려움. 윈도우 받아쓰기로 한 페이지 10분이면 쓰는데, 입으로 내는 잡소리까지 다 들어감.
그런 경우는 범용 STT 말고 받아쓰기 전용 모델이 필요함. 음 아 같은 거 무시하고 '코끼리, 아니 원숭이' 같은 정정도 알아서 처리해줘야 함. Gemini 3.5 Transcribe가 API로 나왔다던데 한번 봐봐.
CPU 위주 CLI 찾는 거면 yapsnap도 있음. 스트리밍 Zipformer에 화자 분리, 타임스탬프까지 되고 10개 국어 지원함.
Parakeet이 제일 좋긴 한데 앱에 박아넣기가 힘듦. Moonshine이나 이런 작은 모델은 앱에 그냥 임베드하면 되니까 편함. 정확도는 Parakeet의 80% 정도 따라온다고 보면 됨.
일본어 넣어봤는데 스페인어 비슷한 이상한 게 나옴. 지원 목록 보면 당연한 결과임. 노르웨이어가 없어서 영어로 해봤더니 training을 cleaning으로 잘못 들음.
TV 에피소드 돌려봤는데 대사 중간마다 Thank you만 60초씩 뱉더라. 한 번에 여러 번 반복됨.