Cactus Whistle - модель автоматического распознавания речи (ASR) от Cactus Compute, спроектированная для ультрамалых устройств. В ней 55 млн параметров, из которых 36 млн активных. В квантованном формате CQ2bit файл весит 16,9 МБ, заявлена поддержка семи языков и 17 платформ, веса открыты. Если нужно встроить распознавание речи туда, где нет ни гигабайта свободной памяти, ни стабильного канала до сервера, это ровно тот класс решений.
Cactus Compute формулирует цель без прикрас: не догонять SOTA за счёт масштаба, а сжимать интеллект и переносить его на устройства, которые обычно остаются без внимания. В перечне названы бюджетные телефоны, носимые устройства, умный дом и микроконтроллеры (описание от разработчика).
Whistle закрывает нишу, куда Whisper large или средние ASR-модели физически не помещаются, и не пытается заменить их. Практический интерес здесь у разработчиков встраиваемых систем и мобильных приложений, у команд IoT, у энтузиастов, которые собирают локальные голосовые интерфейсы. Мимо пройдут те, кому нужна максимальная точность на шумных записях или русская речь.
Размер и скорость: 16,9 МБ против 145,3 МБ у Whisper base
Whisper base занимает 145,3 МБ. Whistle в формате CQ2bit - 16,9 МБ, примерно в 9 раз меньше. Разница в размере файла напрямую определяет, влезет ли модель в прошивку и сколько оперативной памяти останется под остальную логику устройства.
CQ2bit - формат квантования, в котором поставляется Whistle. Квантование снижает разрядность весов: файл становится меньше, а при инференсе приходится читать меньше данных на каждом проходе. Побочный эффект у этой техники стандартный, часть точности уходит, поэтому качество стоит оценивать отдельно. Одного размера файла мало.
Заявленное ускорение достигает 6 раз относительно Whisper base. На каком железе и при какой длине аудио получена эта цифра, в описании не сказано, так что разумно воспринимать её как ориентир, а не как гарантию. На микроконтроллере с медленной памятью узким местом может оказаться не арифметика, а пропускная способность шины.
Экономия в 9 раз по размеру открывает сценарии, где раньше ASR всерьёз не рассматривали: прошивка умной колонки, приложение для часов, голосовой ввод на бюджетном Android-устройстве.
Качество распознавания: WER на LibriSpeech, FLEURS, SPGISpeech и Earnings-22
WER (word error rate) считает долю ошибок на уровне слов: замены, пропуски и вставки, поделённые на общее число слов в эталонной расшифровке. Меньше - лучше.
| Бенчмарк | Whistle | Whisper base |
|---|---|---|
| LibriSpeech test-clean | 4,31 | 4,9 |
| LibriSpeech test-other | 10,49 | 11,0 |
| FLEURS (среднее по языкам) | 21,4 | 24,5 |
| SPGISpeech | 7,65 | значение не приводится |
| Earnings-22 | 19,01 | значение не приводится |
По этим числам Whistle немного опережает Whisper base, будучи примерно в 9 раз меньше по размеру файла (метрики из анонса). Отрыв небольшой: 0,59 пункта на LibriSpeech test-clean, 3,1 пункта на среднем FLEURS. Переходить с Whisper base на Whistle ради одной только точности смысла нет. Выигрыш здесь в размере и скорости, а качество держится на уровне базовой модели Whisper.
Чего метрики не показывают. Все результаты получены на конкретных наборах с их составом дикторов и условиями записи. Акценты, фоновый шум, перекрывающаяся речь и дальний микрофон дадут другие цифры. Публичных независимых прогонов в материалах анонса нет, значения идут от разработчика, поэтому сравнение стоит воспринимать как заявленное, а не подтверждённое сторонними тестами.
Языки: семь поддерживаемых, русского среди них нет
Whistle работает с английским, немецким, французским, испанским, итальянским, нидерландским и польским. Русского языка в списке нет.
Для русскоязычных пользователей это ключевое ограничение: без дообучения модель не подойдёт для распознавания русской речи, а значит и для большинства локальных сценариев на русском. Открытые веса теоретически позволяют обучить модель на новом языке, но для этого нужен размеченный датасет с часами аудио, вычислительные ресурсы и время на проверку того, как поведёт себя лёгкая архитектура после квантования. Это отдельный проект, а не правка конфига.
Если русский нужен сейчас, реалистичнее смотреть на Whisper large-v3 или модели, обученные на русской речи, и уже потом сравнивать их с Whistle по требованиям к памяти.
Архитектура: log-mel, свёрточный стем, аудиоэнкодер и лестничный декодер
Сигнал проходит через log-mel фронтенд и свёрточный стем, которые подают его в аудиоэнкодер. Декодер собран на Simple Attention и Hadamard MLP и читает представление из энкодера через gated cross attention на каждом слое.
Главная особенность - лестничный декодер, построенный по тому же принципу, что у Needle. Заявлено, что развёртываемой оказывается любая конфигурация начиная с двух слоёв. Простыми словами: глубину модели можно подбирать под бюджет устройства, а не подстраивать устройство под модель. Для микроконтроллера с парой мегабайт памяти это принципиальная разница.
Замеров задержки и энергопотребления по отдельным блокам в описании нет, поэтому судить о вкладе каждого компонента приходится по итоговым метрикам. Общая логика читается: модель проектировали под узкие места конкретных устройств, а не под лидерборды.
Keyword biasing и word timestamps: что это даёт на практике
Keyword biasing передаёт модели список ваших слов и отдаёт им предпочтение во время beam search. Смысл простой: имена вроде Siobhan или Krzysztof, названия компаний и узкие термины модель без подсказки почти наверняка напишет неправильно, а с подсказкой шанс на корректный вариант заметно выше. Для приложения с каталогом клиентов, справочником сотрудников или словарём предметной области это дешевле, чем править расшифровки вручную.
Word timestamps формируются на основе внимания самого декодера, отдельный алгоритм выравнивания не нужен. Приложение может подсвечивать, искать или вырезать фрагмент по слову: субтитры, навигация по записи лекции, поиск упоминания в архиве звонков. В моделях весом 16 МБ такая функция встречается редко.
Если задача выходит за рамки распознавания речи и хочется искать по содержимому локальных файлов, включая речь в аудиозаписях, посмотрите разбор поиска по содержимому файлов на Windows: там похожий класс задач решается связкой локальных моделей, хотя требования к железу совсем другие.
17 платформ: macOS, Android, RISC-V и микроконтроллеры
Заявленная поддержка охватывает 17 платформ: macOS, Linux на x86-64, ARM64, ARMv7, RISC-V и MIPS32, Windows x64 и ARM, Android, iOS, watchOS, tvOS, браузер через WebAssembly и WASI-компонент (список платформ).
RISC-V, MIPS32 и микроконтроллеры в списке для ASR-моделей редкость. Большая часть открытых решений для распознавания речи ориентируется на x86 CPU и GPU, а встраиваемые архитектуры остаются за бортом.
Сценарии, которые из этого списка вытекают: умная колонка с распознаванием на самом устройстве, носимый диктофон без телефона рядом, голосовой интерфейс на микроконтроллере, браузерное приложение, которое транскрибирует аудио локально, без отправки на сервер.
Оговорка: список приведён без детализации по каждой платформе. Уровень поддержки, наличие готовых сборок и оптимизаций могут различаться, поэтому перед выбором целевого устройства конкретную платформу стоит проверять отдельно.
Ограничения и кому Whistle не подойдёт
Автор материала честно оговаривает, что модель не идеальна. К этому добавляются структурные ограничения:
- Нет русского языка. Для русской речи без отдельного дообучения модель бесполезна.
- Точность на уровне Whisper base, а не выше. Там, где решает каждый процент WER, нужны более крупные модели.
- Выигрыш заметен на слабом железе. На машине с GPU экономия 128 МБ почти не ощущается, а потолок качества остаётся низким.
- Сравнение идёт только с Whisper base и только по заявленным метрикам, независимых тестов нет.
- Автономность и энергопотребление на микроконтроллерах в описании не раскрыты.
- Открытые веса упрощают встраивание, но дообучение требует данных и компетенций.
Кому модель не подойдёт: если нужна максимальная точность на сложных шумных записях или работа с русским языком, смотрите на более крупные решения. Whistle выигрывает в другом измерении - в том, сколько памяти она занимает.
Итог: стоит ли пробовать Cactus Whistle
Whistle - нишевый инструмент. Он полезен там, где нужно встроить распознавание речи в устройство с 16 МБ под модель, с открытыми весами и поддержкой нестандартной платформы: микроконтроллер, носимый гаджет, браузерное приложение, Linux на RISC-V. Альтернатив с сопоставимым размером и качеством на уровне Whisper base для таких задач немного.
Проверить решение стоит, если выполняются три условия: язык входит в поддерживаемую семёрку, целевая платформа есть в списке 17, а требования к точности не выше уровня Whisper base. Если хотя бы одно не выполняется, экономия 128 МБ файла не компенсирует потери.
Разумный порядок действий: изучить исходное описание и метрики, затем собрать минимальный прототип под свою платформу и прогнать его на своих аудиозаписях. Бенчмарки на LibriSpeech и FLEURS не заменят проверку на ваших данных, особенно если записи шумные или с акцентом.