RU /EN
Обсудить проект
← Избранные проекты
Разбор проекта

gigaam-v3-mlx

Native GigaAM v3 inference для Swift и MLX на Apple Silicon — распознавание русской речи целиком на устройстве

Что это

Реализация inference модели распознавания русской речи GigaAM v3 на Swift и MLX. Модель работает на Apple Silicon средствами системы — без Python, без PyTorch и без обращения к серверу.

Открытый код на GitHub, сконвертированные веса на Hugging Face.

Почему появился

Русскоязычное распознавание речи хорошего качества обычно означает одно из двух: облачный сервис или локальный запуск через Python-окружение с PyTorch.

Для приложения оба варианта плохи. Облако отправляет содержимое разговора наружу и требует сети. Python-окружение нельзя положить в приложение так, чтобы пользователь просто скачал его и запустил: нужен интерпретатор, зависимости, установка модели, и всё это ломается при обновлении системы.

Оставался третий путь — перенести модель в нативный runtime, где она становится частью приложения.

Что сделал

Полный inference на Swift и MLX: препроцессинг звука, энкодер, декодирование, постобработка. Конвертация весов в формат MLX. Проверка соответствия оригинальной реализации.

Что технически интересно

Порт модели — это не перевод кода с языка на язык. Совпадать должны численные результаты на каждом шаге, а расхождения возникают в неочевидных местах: другой порядок операций в свёртках, другая реализация нормализации, другое поведение при паддинге, другая точность промежуточных тензоров.

На распознавании речи ошибка проявляется коварно: модель продолжает выдавать похожий на правильный текст, и по одному примеру подмену не заметить. Поэтому проверять нужно промежуточные тензоры, а не только итоговую расшифровку.

Что получилось

Модель, которую можно встроить в приложение для macOS или iOS и раздавать пользователям без окружения и без сервера.

Практическое подтверждение — Dictum: распознавание там работает на этом же порте.