Что мы на нём делаем

Whisper превращает поле формы в то, что можно заполнить голосом, а не с клавиатуры. Мы подключаем его двумя разными способами — в зависимости от того, где живёт поле ввода.

За веб-фронтендом аудио записывается в браузере, отправляется на эндпоинт транскрипции на существующем бэкенде, и текст возвращается в то же поле, для которого его записали. Внутри Flutter-приложения мы встраиваем Whisper прямо в бинарник — сборку на GGML, работающую через FFI, — так что транскрипция происходит на устройстве: без загрузки на сервер, без похода по сети и обратно, и это продолжает работать вообще без связи.

Где мы его применили

Formtastic — первый проект, где это появилось. Его веб-приложение обращается к новому эндпоинту транскрипции на существующем бэкенде Django, а не к отдельному сервису, — Django и так уже отвечает за аутентификацию и хранение в рамках запроса. Его приложения на Flutter несут модель при себе, так что заполнить форму без сигнала можно ровно так же, как и по Wi-Fi.

Когда мы его рекомендуем

Whisper стоит применять там, где в форме есть длинные поля свободного текста — заметки, отчёты, открытые ответы, — которые долго набирать на телефоне и естественно проговорить вслух.

Какая именно интеграция подходит, зависит от клиента. Веб-приложению, у которого уже есть бэкенд, мало смысла тащить веса модели в браузер, поэтому серверный эндпоинт — меньшее изменение. Мобильному приложению вариант с моделью на устройстве оправдан именно тогда, когда оно должно работать офлайн или когда отправлять аудио с устройства нельзя. Плата за это — больший размер приложения и вычисления на самом устройстве, а взамен — никакой зависимости от сети и ничего, что покидало бы устройство.

Аудио записывается там же, где пользователь печатает, распознаётся через Whisper, и полученный текст подставляется обратно в это поле. Где это происходит — на бэкенд-эндпоинте или на устройстве в приложении — зависит от клиента.
Транскрипция на устройстве продолжает работать без связи и никогда не отправляет аудио с телефона. Мы используем её во Flutter-приложениях через сборку на GGML, работающую через FFI, — ценой большего размера приложения и вычислений на самом устройстве.
Веб-приложение Formtastic транскрибирует через эндпоинт на существующем бэкенде Django; его Flutter-приложения несут Whisper на устройстве, так что формы можно заполнять голосом даже без сигнала.