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