Hacker News Digest

08 октября 2026 г. в 16:59 • cactuscompute.com • ⭐ 863 • 💬 171

Original • HN

#audio#beam-search#c++#github#huggingface#machine-learning#python#speech-recognition#wasm#whistle

Whistle: Speech to Text in 16.9 MB

Whistle — это открытая модель распознавания речи размером 16,9 МБ, которая работает на CPU без зависимостей и использует тот же C++ движок, что и модель Needle. Она транскрибирует аудио до 30 секунд на семи языках: английском, немецком, французском, испанском, итальянском, нидерландском и польском, определяя язык автоматически, если он не задан явно. Первый токен появляется за 11 мс, а вся обработка происходит локально на устройстве — аудио никогда не покидает его. Помимо транскрипции, Whistle выдаёт временные метки для каждого слова с вероятностью и генерирует речевые эмбеддинги — по одному вектору на каждые 80 мс аудио, полученные из выхода энкодера.

Архитектура Whistle делит обработку на энкодер и декодер. Аудио преобразуется в 80-полосные лог-мел спектрограммы с окном 25 мс и шагом 10 мс, затем проходит через свёрточный стебель, уменьшающий длину с 3000 до 375 кадров (по одному на 80 мс). Энкодер состоит из восьми блоков Simple Attention, общих с Needle, использующих mHC residual lanes и Monarch Hadamard MLP вместо стандартного FFN. Декодер содержит восемь Laddered Simple Attention блоков с гейтированным кросс-вниманием к энкодеру, где ключи и значения проецируются один раз при загрузке аудио и переиспользуются для всех лучей. Декодирование выполняется beam search с шириной 5, длинормализованным лог-вероятностным скором и смещением по ключевым словам через Aho-Corasick автомат. Модель поддерживает вывод текста, языка, латентности первого токена и скорости декодирования, а также расширенные опции вроде принудительного указания языка или подсказки ключевых слов. Установка возможна через pip, а готовые бинарники доступны для 17 платформ, включая мобильные устройства, микроконтроллеры и браузер через WASI. Вес модели и исходный код размещены на Hugging Face и GitHub.