Диктовка без паразитов: Whisper на компьютере и Claude для чистки

Живая речь никогда не звучит чисто: полно паразитных слов, оборванных фраз, самоисправлений. Разработчик из Высшей школы бизнеса НИУ ВШЭ создал систему, превращающую беспорядочную диктовку в чистый текст за 2–3,5 секунды. Система двухслойная: Whisper Large v3 Turbo распознаёт речь локально на компьютере, Claude Sonnet 5.5 удаляет паразиты и правит ошибки. Посредник Чистовик между Handy и API держит одно соединение и перечитывает правила на каждую диктовку. • Whisper Large v3 Turbo на RTX 4080 Super: 8 с речи за 0,17 с, 42 с за 0,45 с • Claude Sonnet 5.5 на чистке: 1,7–3 секунды в зависимости от длины текста • Handy (Tauri, MIT), klava-nevinovata (русская сборка), OpenAI/OpenRouter/Ollama/LM Studio (любой совместимый API)

AI-обработка оригинала Habr AI; редакция Hamidun News
Диктовка без паразитов: Whisper на компьютере и Claude для чистки
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Whisper Large v3 Turbo на RTX 4080 Super8 с речи за 0,17 с, 42 с за 0,45 с
Claude Sonnet 5.5 на чистке1,7–3 секунды в зависимости от длины текста
Ключевой факт #3Handy (Tauri, MIT), klava-nevinovata (русская сборка), OpenAI/OpenRouter/Ollama/LM Studio (любой совместимый API)

Живая речь никогда не звучит чисто: в ней полно слов-паразитов, оборванных фраз, самоисправлений. Разработчик из Высшей школы бизнеса НИУ ВШЭ, который пишет книги и много диктует, создал систему, превращающую «Ну вот, короче, я, это самое, хотел сказать, что, ну, завтра созвон переносится, ну, на три часа, не, на четыре» в чистое «Я хотел сказать, что завтра созвон переносится на четыре» за 2–3,5 секунды.

Локальное распознавание и облачная чистка

Диктовка работает на Handy — открытой программе на Tauri (лицензия MIT). Речь распознаёт Whisper Large v3 Turbo прямо на компьютере, звук не уходит никуда. На видеокарте RTX 4080 Super 8 секунд речи распознаются за 0,17 секунды, 42 секунды — за 0,45 секунды. Для русского используется сборка klava-nevinovata с готовыми подсказками Whisper и защитой от зацикливания на тишине.

Одного Whisper недостаточно: простая замена по списку не срабатывает, требуется понимание смысла. Распознанный текст отправляется в Claude Sonnet 5.5, который удаляет паразитные слова, правит самоисправления и сохраняет разговорный стиль. Чистка занимает 1,7–3 секунды в зависимости от длины текста.

Прослойка и контекстный словарь

Посредник Чистовик — один файл на Python со стандартной библиотекой — сидит между Handy и API. Преимущества этого слоя: промпт и словарь в текстовых файлах, которые перечитываются на каждую диктовку (правишь правило, продиктовал снова, без перезапуска); одно тёплое соединение вместо нового HTTP-клиента на каждый запрос; API-ключ в переменной окружения, не в настройках программы; таймаут 10 секунд против зависания.

Словарь понимает контекст. Whisper путает редкие слова: «ИИшный» слышит как «яичный». Простая замена вредна — слово может быть настоящим. Модели объясняется условие: «ИИшный, ИИшные, ИИшно ← иишный, яичный (replace «яичный» only when the text is not about eggs or food)». Claude одинаково понимает пояснения по-русски и английски. Проверка: в «рецепт яичного салата» слово остаётся (текст про еду), в «текст какой-то яичный получился» меняется на «ИИшный» (текст про ИИ).

Ошибки интеграции и их решения

За время разработки выявились три класса проблем. Модель отвечала на диктовку как на просьбу — помогло размещение текста в теге <dictation> и чёткое правило в промпте, что просьбы не выполняются. Модель заменяла разговорные слова на формальные — помогли примеры в самом промпте: «прикольно» остаётся «прикольно», «пофигу» остаётся «пофигу». Ошибки постобработки были невидны (Handy молча вставлял сырой текст) — посредник теперь логирует каждую диктовку. На Windows localhost может уйти на IPv6, поэтому посредник слушает 127.0.0.1 и ::1.

Производительность и выводы

Полная цепочка от нажатия клавиши до вставки текста:

  • 8 секунд речи: 0,17 с на распознавание, 1,7 с на чистку, всего ~2 секунды
  • 42 секунды речи: 0,45 с на распознавание, 3 с на чистку, всего ~3,5 секунды

Запрос к API — около 1100 токенов, почти всё это правила и словарь. Код открытый (MIT) на github.com/Tataut/chistovik, ставится одним скриптом PowerShell на Windows. Посредник кроссплатформенный, Handy есть для macOS и Linux. Подойдёт любой API, совместимый с OpenAI: OpenAI, OpenRouter, локальные модели через Ollama или LM Studio (с локальными моделями ничего не уходит с компьютера). Протестировано с Claude Sonnet 5.5. Больше всего помогает в мессенджерах и телеграме.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: локальное распознавание и облачная чистка?

Диктовка работает на Handy — открытой программе на Tauri (лицензия MIT). Речь распознаёт Whisper Large v3 Turbo прямо на компьютере, звук не уходит никуда. На видеокарте RTX 4080 Super 8 секунд речи распознаются за 0,17 секунды, 42 секунды — за 0,45 секунды. Для русского используется сборка klava-nevinovata с готовыми подсказками Whisper и защитой от зацикливания на тишине. Одного Whisper недостаточно: простая замена по списку не срабатывает, требуется понимание смысла. Распознанный текст отправляется в Claude Sonnet 5.5, который удаляет паразитные слова, правит самоисправл

Что известно по теме: прослойка и контекстный словарь?

Посредник Чистовик — один файл на Python со стандартной библиотекой — сидит между Handy и API. Преимущества этого слоя: промпт и словарь в текстовых файлах, которые перечитываются на каждую диктовку (правишь правило, продиктовал снова, без перезапуска); одно тёплое соединение вместо нового HTTP-клиента на каждый запрос; API-ключ в переменной окружения, не в настройках программы; таймаут 10 секунд против зависания. Словарь понимает контекст. Whisper путает редкие слова: «ИИшный» слышит как «яичный». Простая замена вредна — слово может быть настоящим. Модели объясняется услов

Что известно по теме: ошибки интеграции и их решения?

За время разработки выявились три класса проблем. Модель отвечала на диктовку как на просьбу — помогло размещение текста в теге <dictation> и чёткое правило в промпте, что просьбы не выполняются. Модель заменяла разговорные слова на формальные — помогли примеры в самом промпте: «прикольно» остаётся «прикольно», «пофигу» остаётся «пофигу». Ошибки постобработки были невидны (Handy молча вставлял сырой текст) — посредник теперь логирует каждую диктовку. На Windows localhost может уйти на IPv6, поэтому посредник слушает 127.0.0.1 и ::1.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…