Commander Flow: год эволюции голосового ввода

Commander Flow — год эволюции голосового ввода: создатель приложения за рабочим столом с ноутбуком и микрофоном

В июне 2025 я собрал билд, который падал каждые 40 минут и распознавал «привет» как «при — э — ы». И всё равно был счастлив: я знал, что собираю на Windows то, чего там не было — полностью оффлайн voice-input с человеческой полировкой. Сегодня апрель 2026, и тот же ноутбук тащит Commander Flow в фоне сутками.

Это не история продукта со стороны. Это рассказ изнутри: как менялся продукт и как параллельно менялись мои собственные привычки работы с текстом.

Лето 2025: пришлось мириться с Whisper-tiny

Первый билд использовал ggml-tiny (75 МБ). Распознавание было сносное на чистом английском, посредственное на русском, и катастрофическое на смешанном. «Деплой на staging» превращался в «деплой на стэйдинг». Полировки ещё не существовало — только сырой ASR.

Я перестроил собственный рабочий процесс под слабости того, что сам же написал. Говорил короткими фразами, избегал сленга. Неудобно — но всё равно быстрее печати. И уже тогда я понял, что назад я не вернусь.

«Когда строишь свой инструмент, ты влюбляешься в идею раньше, чем код начинает её честно отражать.»

Осень 2025: появилась полировка и я перестал стесняться филлеров

Я добавил локальную LLM. Это был перелом. Можно было сказать «ну вот короче я думаю что нам надо эээ переделать вот этот модуль», и в текстовом поле появлялось «Думаю, нам нужно переделать этот модуль».

Именно в этот момент я сам перестал готовить речь. До этого я внутренне форматировал предложение прежде чем нажать хоткей. Теперь — мысль выходит как мысль, инструмент сам отделяет шелуху. И я понял, что эту разницу почувствует каждый, кто будет пользоваться продуктом всерьёз.

Зима 2025/2026: Parakeet и я понял, что такое «быстро»

ЛАТЕНТНОСТЬ ASR · CPU Whisper-large (до) ~900 мс Parakeet TDT v3 (после) ~140 мс в 5–10× быстрее на том же CPU · sherpa-onnx C# bindings «140 мс — это меньше, чем я успеваю осознать паузу»
Январь 2026: переход на Parakeet через sherpa-onnx — самый ощутимый сдвиг за год.

В январе я сделал дефолтным ASR Parakeet-TDT-0.6B-v3 через sherpa-onnx. На обычном CPU без видеокарты он оказался быстрее Whisper-large в 5–10 раз. Латентность от отпускания хоткея до появления текста упала с ~900 мс до ~140 мс.

140 миллисекунд — это меньше, чем человек успевает осознать паузу. Граница между «жмёшь хоткей» и «текст появляется» в восприятии стирается. С этого момента — и в моём собственном использовании, и у тестеров — диктовка перестала ощущаться как «команда инструменту»; это просто продолжение мысли.

Весна 2026: новейший AI от Google и режимы полировки

РЕЖИМ ПОЛИРОВКИ friendly business code-comments prompt-engineering accountant minimal-edit AI от Google · balanced Шесть режимов переключаются хоткеем или из трея УТРО письма клиентам · business ДЕНЬ Slack команде · friendly ВЕЧЕР родительский чат · minimal-edit
Меню трея: режим переключается на лету — но чаще нужный тон я просто проговариваю голосом в момент полировки.

Сейчас стандарт — самая свежая модель AI от Google. И главное, ради чего я всё это и затевал — режимы полировки. Стиль выбирается из трея или хоткеем: business / friendly / minimal-edit / accountant / academic / code-comments.

Мой собственный типичный понедельник, на котором я и проверял эти режимы первым:

  • Утром письма клиентам — business
  • В Slack команде — friendly
  • Комменты в коде — code-comments (сохраняет термины латиницей, не «лезет» в имена переменных)
  • Вечером ответ в семейном чате — minimal-edit (просто чистит филлеры, не «причёсывает» интонацию)

Ретроспектива: что изменилось во мне самом, пока я писал этот продукт

Если перечислить пунктами — получится скучно. Поэтому скажу так. За год работы со своим же инструментом у меня изменилось три вещи в обращении с текстом, и ни одну из них я заранее не закладывал в roadmap.

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

Второе — английские имейлы перестали меня нервировать. Я диктую по-русски, прошу переписать в business English, получаю текст, который не отличить от носителя. Это уже не отдельное напряжение, а просто следующий шаг той же диктовки.

И третье, самое странное: руки к концу дня устают меньше. Я никогда не считал печать физической работой, пока сам же не перестал ей заниматься.

Шероховатости, которые я ловлю — и которые держу в roadmap

Честный список того, что меня самого до сих пор цепляет в собственном продукте:

Полировка иногда «улучшает» термины, которые улучшать не надо. Кто-то говорит «kubectl apply», получает «Kubernetes apply». Я решил это через словарь в настройках (PolishOptions.Dictionary) — добавляешь свои термины и LLM их не трогает. Но я знаю, что первые недели об этом многие не догадываются — и собираю фидбек, чтобы вынести этот хук на видное место.

Прогрев модели при холодном старте. Первая диктовка после загрузки Windows — заметно медленнее последующих. Я добавил AudioDeviceWarmup (экономит 40–80 мс), но KV-cache LLM всё равно нужно прогреть. Пока лечится тем, что произносишь в микрофон любую фразу сразу после старта системы — как разминка. Знаю, что тут ещё есть куда копать.

Иногда хочется hot-swap режимов внутри одной фразы. Например: «деловое начало, потом смешное P.S.». Этого пока нет — но направление мне нравится, и я держу его в виду.

Что я бы сказал самому себе год назад

«Терпи. То, что сейчас выглядит как игрушка, через 10 месяцев станет твоим самым используемым приложением после браузера. Веди дневник. Это будет история о том, как private AI на конкретном устройстве становится новой нормой.»

Альфа закончилась. Бета почти закончилась. Я больше не пишу прототип — я отвечаю за продукт, которым пользуются ежедневно.

И я этим очень горжусь.

Попробуй сам

Скачай Commander Flow и зажми Caps Lock в любом приложении. Распознавание идёт локально, без облака — бесплатный пробный период.

Скачать бесплатно

Похожие истории

Все статьи