Голосовой ввод можно настроить так, чтобы после диктовки в документ или сообщение попадала уже отредактированная фраза. Для этого программу Handy со встроенным распознаванием Whisper объединили с языковой моделью и небольшим посредником на Python. Такая схема помогает удалять речевые повторы, исправлять оговорки и сохранять смысл исходного высказывания.
Как устроено распознавание и редактирование
Handy — открытая программа с лицензией MIT. Пользователь удерживает горячую клавишу, произносит текст и отпускает её. Whisper преобразует запись в слова непосредственно на компьютере, после чего результат можно вставить в активное окно. В описанной конфигурации используется Whisper Large v3 Turbo. На видеокарте RTX 4080 Super распознавание восьмисекундной записи занимало 0,17 секунды, а записи продолжительностью 42 секунды — 0,45 секунды. Эти показатели относятся к конкретному оборудованию.
Для последующей редакторской обработки Handy поддерживает подключение API, совместимого с OpenAI. В приведённой реализации используется Claude Sonnet 5.5. Модель получает расшифровку, убирает лишние междометия и повторы, учитывает исправления говорящего. При этом сам звук обрабатывается локально, а текст передаётся внешней модели. Указанное время такой обработки составляло от полутора до трёх секунд.
Что даёт посредник на Python
Дополнительная программа, названная «Чистовик», работает локально на порту 8765 и использует стандартную библиотеку Python. Она принимает запросы от Handy и направляет их языковой модели. Промпт и словарь хранятся в отдельных текстовых файлах, которые перечитываются при каждой диктовке. Это позволяет изменять правила исправлений без перезапуска программы. Посредник также повторно использует HTTP-соединение и хранит API-ключ отдельно от настроек Handy.
Отдельное внимание уделено неоднозначным словам. В словаре можно указать правильное написание, варианты ошибочного распознавания и условия замены. Например, исправление слова «яичный» на «ИИшный» допустимо в техническом контексте, но не в рецепте. Для предотвращения других ошибок исходную диктовку помещают в специальный тег, а модели запрещают выполнять содержащиеся внутри просьбы, менять разговорный стиль и добавлять собственные комментарии.
Если внешний API не отвечает в течение десяти секунд, предусмотрен возврат первоначальной расшифровки. Это сохраняет возможность голосового ввода даже при сбое этапа редактирования. Для русскоязычной диктовки также упомянута сборка klava-nevinovata с подготовленной подсказкой Whisper и защитой от повторения текста на участках тишины.








