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

В июне 2025 я собрал билд, который падал каждые 40 минут и распознавал «привет» как «при — э — ы». И всё равно был счастлив: я знал, что собираю на Windows то, чего там не было — полностью оффлайн voice-input с человеческой полировкой. Сегодня апрель 2026, и тот же ноутбук тащит Commander Flow в фоне сутками.
Это не история продукта со стороны. Это рассказ изнутри: как менялся продукт и как параллельно менялись мои собственные привычки работы с текстом.
Лето 2025: пришлось мириться с Whisper-tiny
Первый билд использовал ggml-tiny (75 МБ). Распознавание было сносное на чистом английском, посредственное на русском, и катастрофическое на смешанном. «Деплой на staging» превращался в «деплой на стэйдинг». Полировки ещё не существовало — только сырой ASR.
Я перестроил собственный рабочий процесс под слабости того, что сам же написал. Говорил короткими фразами, избегал сленга. Неудобно — но всё равно быстрее печати. И уже тогда я понял, что назад я не вернусь.
«Когда строишь свой инструмент, ты влюбляешься в идею раньше, чем код начинает её честно отражать.»
Осень 2025: появилась полировка и я перестал стесняться филлеров
Я добавил локальную LLM. Это был перелом. Можно было сказать «ну вот короче я думаю что нам надо эээ переделать вот этот модуль», и в текстовом поле появлялось «Думаю, нам нужно переделать этот модуль».
Именно в этот момент я сам перестал готовить речь. До этого я внутренне форматировал предложение прежде чем нажать хоткей. Теперь — мысль выходит как мысль, инструмент сам отделяет шелуху. И я понял, что эту разницу почувствует каждый, кто будет пользоваться продуктом всерьёз.
Зима 2025/2026: Parakeet и я понял, что такое «быстро»
В январе я сделал дефолтным ASR Parakeet-TDT-0.6B-v3 через sherpa-onnx. На обычном CPU без видеокарты он оказался быстрее Whisper-large в 5–10 раз. Латентность от отпускания хоткея до появления текста упала с ~900 мс до ~140 мс.
140 миллисекунд — это меньше, чем человек успевает осознать паузу. Граница между «жмёшь хоткей» и «текст появляется» в восприятии стирается. С этого момента — и в моём собственном использовании, и у тестеров — диктовка перестала ощущаться как «команда инструменту»; это просто продолжение мысли.
Весна 2026: новейший AI от Google и режимы полировки
Сейчас стандарт — самая свежая модель 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 в любом приложении. Распознавание идёт локально, без облака — бесплатный пробный период.


