Research · гайд

Как построить своего real-time-ассистента для важных бесед

Artorix это ассистент, который слушает встречу вместе со мной. Перед разговором я загружаю план, а во время разговора Artorix показывает, идём ли мы по плану, что ещё не спросили и что спросить дальше. Управляю им с внешнего MIDI-контроллера: пэдами тихо размечаю разговор, а ручками и фейдерами меняю параметры обработки прямо во время встречи.

Статус
Исследование, мой рабочий инструмент
Доступ
Исходники по запросу, пилот по заявке. Когда Artorix выйдет в работу для других, здесь появится ссылка
Гайд
23 сентября 2026
Стек
Python, FastAPI, Soniox, Claude
Чтение
15 минут
Мой пульт Avatar EMP16 в руке. На пэдах наклейки: «Интерес / драйв», «Скучно / вяло», «Тревога», «Раздражение», «Закрылся», «Ушёл от ответа», «Давит / перебивает», «Энтузиазм», «Скепсис», «Тревога», «Безразличие», «Важное / вернуться», «Перескок темы», «Я говорю много», «Анализ сейчас». Слева четыре ручки и четыре фейдера.
Мой настоящий пульт. Наклейки на пэдах это слои разметки из схемы ниже, ручки и фейдеры меняют параметры анализа прямо во время встречи.

Что это за гайд

Здесь я рассказываю, как устроен Artorix, что показали замеры на реальных встречах и как собрать такой ассистент самому. Гайд описывает подход и выводы, а не исходный код; исходниками поделюсь лично, если вам это правда интересно.

Для меня Artorix не продукт, а рабочий инструмент: я веду с ним интервью и переговоры. Он помнит разговор, а людей помнит CoFlow, моя личная система. Artorix и CoFlow это текущие версии инструментов, которые я строил и перестраивал много раз.

Исследование Когда Artorix выйдет в работу для других, здесь появится ссылка.

  • ×17разброс цены часа между крайними положениями фейдера «Темп»
  • $0,71час встречи в обычном режиме
  • 16пэдов: четыре слоя тихой разметки
  • 2дорожки звука: микрофон это я, выход компьютера это собеседник
Где живут людиArtorix помнит разговор, а человека помнит CoFlow: бриф приходит оттуда, итог уходит туда. CoFlow.

Идея

Задач в разговоре больше, чем внимания.

Когда ведёшь интервью или переговоры, приходится одновременно слушать, думать над следующим вопросом, держать в голове план и читать состояние собеседника, а потом ещё всё это разбирать. Люди справляются с этим плохо не от недостатка умения: задач больше, чем внимания.

Ставка Artorix: разговор это данные, и часть работы с ними можно снять с человека в тот момент, когда это ещё может что-то изменить. Не «расшифровка потом», а подсказка внутри встречи. Отсюда три правила, которые определили всё устройство:

  • реальное время важнее точности;
  • тихая разметка важнее удобной: во время разговора печатать нельзя, собеседник это видит, поэтому кнопки вместо клавиатуры;
  • любая функция, которая отвлекает внимание от собеседника, вредна, даже если она полезна.

Где применяю: переговоры, custdev-интервью, запись подкастов. План вставляется свободным текстом, модель сама делит его на разделы и вопросы. Требовать заполнить форму перед встречей значит наверняка добиться того, что системой никто не будет пользоваться.

Экран «Новая встреча» в Artorix: название, план свободным текстом, плановая встреча из CoFlow, готовые планы, выбор микрофона и выхода компьютера, тест на записи, калибровка пэдов и список прошлых встреч с оценкой и ценой. Имена и названия закрашены.
Так начинается встреча: название, план свободным текстом, готовые планы, два источника звука и тест на записи. Справа у прошлых встреч оценка и цена разбора. Имена и названия закрашены.

Как это устроено

Две дорожки звука, расшифровка в реальном времени, анализ тиками.

Звук приходит двумя дорожками и расшифровывается в облаке в реальном времени. Модель анализирует разговор «тиками»: каждые N секунд или когда я нажимаю пэд.

Схема Artorix: звук, расшифровка, анализ и экран встречи MIDI-пэды: метки Микрофонэто я Выход компьютераэто собеседник Звукблоки по 100 мс РасшифровкаSoniox, RU и EN Текст разговораодни часы с начала звука Ручки и фейдерыпараметры обработки Тик анализаClaude, каждые N секунд CoFlowпосле встречи Экран встречиплан, текст, анализ облачный сервис на ноутбуке

Схему можно прокрутить вбок.

Серые блоки это облачные сервисы. Всё остальное работает на моём ноутбуке. В CoFlow Artorix пишет только после встречи.
ЧастьЧто делаетПочему так
Захват звукаМикрофон это ведущий; захват выхода компьютера (WASAPI loopback) это собеседник на звонке. 16 кГц, моно, блоки по 100 мсСобеседник приходит на устройство вывода, а не в микрофон
Кто говоритКарта энергии в кадрах по 20 мс отвечает на вопрос «кто говорил в этом интервале» арифметикой, без моделиФизика точно знает роль: микрофон это я
РасшифровкаSoniox, в реальном времени по WebSocket; записи через отдельный асинхронный проходРусский и английский вперемешку в одном разговоре; потоковый режим падает на длинных файлах
Тик анализаМодель получает план, «нить» разговора и последний кусок диалога. Возвращает: идём по плану или уходим в сторону, закрытые вопросы, от одного до трёх следующих вопросов, ключевые цитаты, баланс говоренияЖивой анализ на дешёвой модели, итоговый разбор на дорогой, один или два раза за встречу
Одни часыКаждый слой (расшифровка, метки, анализы) пишет время от начала звукаИначе метка с пэда не попадёт на нужную строку
ЭкранПлан с чек-листом, потом расшифровка с метками, потом анализ. Всё это функция потока событийПоток сохраняется, поэтому встречу можно пересмотреть как «мини-фильм»
Мост в CoFlowВ начале находит человека и открывает сессию, в конце записывает итог. Ноль обращений во время встречиНедоступная личная база никогда не должна стоить встречи
Экран живой встречи в Artorix. Слева план встречи с чек-листом: пройденные разделы отмечены, заданные вопросы зачёркнуты. В центре расшифровка, на ней метка пэда «Раскрылся». Справа база знаний, открытые вопросы, разметка спикеров, такты анализа и расход по моделям. Слова собеседника размыты.
Так выглядит встреча. Слева план с чек-листом: пройденные разделы отмечены, заданные вопросы зачёркнуты, внизу «Что спросить дальше». В центре расшифровка с меткой пэда «Раскрылся». Справа база знаний, открытые вопросы, разметка спикеров, такты анализа и расход. Слова собеседника я размыл.

Стек: Python и FastAPI, всё локально на ноутбуке с Windows. Внешние сервисы только два: Soniox (расшифровка) и Anthropic (анализ). Есть и офлайн-режим: загружаешь запись и план и получаешь таймлайн, где участки по плану зелёные, а отклонения красные.

Внешний MIDI-контроллер

Кнопки вместо клавиатуры: разметка, которую собеседник не видит.

Управление живёт на обычной музыкальной пэд-консоли HXW / Avatar EMP16: 16 пэдов, чувствительных к силе удара, в сетке 4×4, 4 бесконечные ручки, 4 фейдера, OLED-экран, USB или Bluetooth (характеристики). Можно ударить по пэду или сдвинуть фейдер, не отводя взгляда от собеседника и без шума клавиатуры: ради этого он и нужен.

Раскладка EMP16 в Artorix: экран, четыре ручки, четыре фейдера и шестнадцать пэдов в четыре слояARTORIX · ОбычныйHaiku · 45 с~$0,71 в часМодельHaiku … OpusРежимэконом … суфлёрБюджетлимит, $СвободнаЧто япочувствовалИнтерес /драйвСкучно /вялоТревогаРаздражениеКак вёл себясобеседникОткрылсяЗакрылсяУшёл от ответаДавит /перебиваетЧто, по-моему,почувствовал онЭнтузиазмСкепсисТревогаБезразличиеВстречаВажное /вернутьсяПерескок темыЯ говорю многоАнализ сейчасТемпF1ГлубинаF2ОкноF3ПамятьF4выше: богаче и дороже

Схему можно прокрутить вбок.

Схема того же пульта, что на фото в начале страницы, с подписями текстом. Пэды тихо размечают разговор, ручки и фейдеры меняют параметры обработки прямо во время встречи.

Пэды: четыре слоя разметки, по ряду на слой. Что я почувствовал; как вёл себя собеседник; что, по-моему, почувствовал он; что происходит со встречей. Каждое нажатие ложится меткой на таймлайн ровно в этот момент. Пэд «Анализ сейчас» запускает внеочередной анализ.

Ручки и фейдеры: параметры обработки. Ручками выбираю дискретное: модель, режим пресета, лимит расходов. Фейдеры плавно меняют четыре значения, о них в следующем разделе. Анализатор читает их на каждом тике, поэтому поворот действует со следующего анализа, а не со следующей встречи.

Два практических момента

  • Привязка обучением. Каждый экземпляр присылает свои MIDI-номера, и заранее их не узнать. Выбираешь роль на экране, крутишь нужную ручку, и привязка сохраняется. Пэды калибруются так же, первым нажатием.
  • Контроллер работает в отдельном процессе. Если он отвалится или упадёт, пропадут метки, а не запись встречи (об этом в разделе «На что обратить внимание»). Система работает и без контроллера: те же пэды и ручки есть на экране, но тогда приходится смотреть в монитор.

Параметры обработки и что даёт их изменение

Стоимость встречи задаёт частота анализа, а не размер окна.

Главная находка: стоимость встречи определяет то, как часто модель анализирует, а не размер окна диалога. Это против интуиции: кажется, что дорого «отправлять много текста». Но текст дешёвый, а каждый лишний вызов модели тянет за собой системный промпт, ответ и накладные расходы.

Что я меняю на лету

Порядок влияния подтвердили замеры на реальных встречах. Стоимость часа дана для ориентира: важны не сами числа, а разброс между крайними положениями ручки.

УправлениеЧто задаётЗначенияЦена часа, $Разброс
F1 · Темппауза между анализами10 / 25 / 90 / 180 с3,84 / 1,54 / 0,43 / 0,22×17
Ручка · Моделькакая модель анализируетHaiku / Sonnet / Opus1,54 / 3,09 / 7,71×5
F2 · Глубиналимит ответа модели256 / 1 024 / 2 048 токенов1,08 / 1,54 / 2,17×2
F4 · Памятьсколько «нити» разговора идёт в промпт0 / 8 000 / 16 000 знаков1,06 / 1,54 / 2,03×2
F3 · Окносколько свежего диалога на один анализ800 / 1 500 / 12 000 знаков1,47 / 1,54 / 2,70×1,8

На панели управление стоит в этом порядке, по силе влияния. В разговоре это работает так: начинается важный кусок, поднимаю темп; начинается светская болтовня, опускаю. Текстовое поле для этого бесполезно, а фейдер это тот же жест, что и метка пэдом. Когда двигаешь управление, прогноз на экране обновляется сразу: цену решения видно до того, как его примешь.

Вкладка «Бюджет» в Artorix: потрачено, цена такта, прогноз на час, пресеты «Эконом», «Обычный», «Плотный», «Суфлёр» и регуляторы: модель, темп разбора, глубина ответа, память, окно диалога, потолок расхода. Внизу полоса повтора встречи.
Вкладка «Бюджет»: потрачено, цена такта и прогноз на час. Ниже пресеты и регуляторы, те же, что на пульте. Внизу повтор встречи как «мини-фильм»: 4 068 из 20 976 событий.

Режимы-пресеты

Пресет выставляет всё управление сразу, дальше его можно двигать руками.

РежимМодельПауза, сЧас встречи, $14 часов встреч в месяц, $
ЭкономHaiku900,233
Обычный (по умолчанию)Haiku450,7110
ПлотныйHaiku152,8440
СуфлёрSonnet155,6880
МаксимумSonnet1015,72220

Три неочевидные вещи, которые показали замеры

  1. Лимит ответа это главный кран. Модель пишет «сколько разрешили», а не «сколько нужно»: на длинной встрече большинство анализов упираются в лимит, и ответ становится самой дорогой строкой счёта. Снижайте лимит, пока анализы не станут беднее, и проверяйте это, прогоняя одну и ту же запись на двух настройках.
  2. Память делает каждый следующий анализ дороже. Факты и открытые вопросы накапливаются, и к концу встречи один тик стоит в несколько раз больше, чем в начале. Подрезайте её окном последних фактов, а не выключателем: именно память делает анализ умнее.
  3. Русский текст стоит примерно втрое дороже английского: он хуже делится на токены. Поэтому прикидки на салфетке всегда выходят оптимистичнее счёта.

Аудиобуферы и окна

Числа, которые пришлось подбирать на живых встречах.

Управление здесь не нужно, но эти числа пришлось подбирать на живых встречах.

ПараметрЗначениеПочему
Аудиоблок100 мс при 16 кГцМикрофон задаёт такт. Дорожка собеседника в тишине замолкает, и её паузы заполняются нулями в кольцевом буфере
Кадр энергии20 мсДостаточно, чтобы арифметикой понять, кто говорил
Окно свежести второй дорожки90 сЕсли собеседника не было слышно рядом со строкой, физика не судит о роли
Голосование о ролираз за встречуРоль «я или собеседник» не пересматривается на лету, иначе строки рвутся
Лимит сессии90 минут, потом «продолжить?»Забытая сессия пишет и расшифровывает всё, что говорят вокруг

Правило замеров: не судите о стоимости по прогонам короче 15 минут. На коротком тесте заметная часть счёта уходит на запись кеша промпта, который не успевает окупиться, и стоимость часа выходит вдвое выше.

На что обратить внимание

Отказ одной части не должен стоить встречи.

Главное правило: отказ одной части не должен стоить встречи. Контроллер, вторая дорожка, анализ, связь с базой: отказать может любое из этого, но запись должна дойти до конца.

  • Тихий отказ хуже громкого. Худшие поломки выглядят на экране как нормальная работа. Система должна отличать «подождите» (сервис перегружен) от «идите чините» (кончился баланс, неверный ключ) и говорить об этом громко.
  • Контроллер работает в отдельном процессе, который умирает вместе с сервером. MIDI-драйверы на Windows могут уронить весь процесс так, что это не перехватить. И MIDI-вход может держать только один процесс: забытый старый слушатель заберёт контроллер себе. Если устройство «не видно», сначала проверьте кабель.
  • Собеседник приходит на выход, а не в микрофон. Захватывайте выход любого устройства, включая Bluetooth-гарнитуры, и держите две дорожки раздельно.
  • Дорожка может умереть посреди встречи. Собеседник переходит из звонка в комнату, и вся речь начинает приписываться вам. Нет свежего звука на дорожке, нет и суждения о роли.
  • Не смешивайте две разметки спикеров по словам. Сервис расшифровки режет строки, а физика дорожки один раз решает, какой голос ваш. Подстановка по токенам рвёт монологи в клочья.
  • Ответ модели это данные, а не гарантия. Иногда она возвращает список строкой. Приводите всё внешнее к ожидаемым типам на границе, иначе ассистент замолчит до конца встречи.
  • Давайте модели память, а не хвост расшифровки. Без накопленных фактов и вопросов она переспрашивает то, что уже сказано. Память плюс только новый кусок диалога: и дешевле, и умнее.
  • Ничего периодического рядом с записью. Опрос устройств по таймеру это дорога к падению. Проверяйте только по поводу, с растущей паузой.
  • Стоимость это часть интерфейса. Счётчик трат и прогноз всегда на экране. Если какая-то строка расходов не учтена, «дорого или нет» решается по неверному числу.
  • Показывайте, что уходит в модель. Диагностическая панель («этот тик, на этих словах, дал такой ответ и стоил столько») позволяет заметить поломку во время встречи, а не после.
  • Экран это функция потока событий. Тогда повтор встречи получается даром и никогда не расходится с тем, что вы видели вживую.
  • Не выдумывайте числа и людей. Если база недоступна, встреча пишется под временным именем и связывается потом. Неоднозначного участника выбирает человек, а не система.

Ожидания и реальность

Где ломается качество и откуда берётся стоимость.

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

ЧтоОжидалОказалось
Помощь в моментеСуфлёр, который нужен каждому переговорщикуМне он помогает держаться плана и не терять открытые вопросы. Но некоторым руководителям нужна подготовка до встречи и разбор после, а не подсказки во время. Реальное время подходит не всем
СтоимостьДорого из-за распознавания речиРасшифровка это малая доля счёта, остальное языковая модель. Дешёвая модель для живого анализа снижает счёт в несколько раз, но растущая память потом тянет его обратно вверх. С управлением стоимость стала управляемой величиной
Своё железоЛокальные модели сэкономят деньгиПри личных объёмах это никогда не окупается, и железо не покупает лучшую разметку спикеров
Качество расшифровкиСломается распознаваниеРаспознавание дало правильную разметку, а сломала её наша собственная арифметика поверх
Управление обработкойДорого отправлять большое окно диалогаОкно это самый слабый рычаг и самый вредный для экономии: урежешь его, потеряешь связность. Главное это темп
Метки пэдамиМетка сразу влияет на анализМетки точно ложатся на таймлайн и видны при повторе. Донести метку до модели, и до точной фразы внутри длинной строки, это отдельная задача
Экран во время встречиБыстрый взглядТяжелее, чем хотелось бы: любое окно, которое закрывает расшифровку, мешает ровно тогда, когда нужно посмотреть
Профиль собеседникаСистема помнит человекаArtorix помнит разговор, а не человека. Человек живёт в CoFlow: бриф приходит оттуда, и итог возвращается туда

Как собрать самому

Семь шагов: от разбора записи до связи с памятью о людях.

Минимальный набор: ноутбук с Windows, Python 3.11 или новее, API-ключи сервиса распознавания речи и языковой модели, любой MIDI-контроллер с пэдами и фейдерами (сначала можно без него).

  1. Начните офлайн. Запись звонка и план, потом расшифровка, потом разбор «где мы шли по плану, а где ушли в сторону». Так видно, нужна ли вам помощь вообще, прежде чем связываться с реальным временем.
  2. Захватывайте две дорожки раздельно. Микрофон это вы, выход компьютера это собеседник. Не сводите в моно: иначе заставите модель угадывать то, что физически известно наверняка.
  3. Добавьте живой анализ с памятью. На каждом тике: план, накопленные факты и только новый кусок диалога; ответ строго по схеме. Проверяйте типы ответа на границе: модель иногда возвращает не то.
  4. Держите параметры в состоянии сессии, а не в файле настроек. Темп, глубина, окно, память и модель читаются на каждом тике. Сразу добавьте панель стоимости: сколько потрачено, цена тика, прогноз на час. Без неё ручки крутятся вслепую.
  5. Подключите MIDI-контроллер в отдельном процессе. Пэды это метки, фейдеры это параметры, привязка обучением. Процесс контроллера должен умирать вместе с сервером.
  6. Записывайте поток событий, а не только текст. Тогда любую встречу можно пересмотреть ровно так, как её видел ведущий, и прогнать одну и ту же запись на двух настройках управления.
  7. Свяжите с памятью о людях, но некритично. У меня это CoFlow: обращения только в начале и в конце, и если база недоступна, встреча всё равно идёт и пишется локально.

И главное: записывайте других людей только с их согласия.

Если вам это правда интересно, я могу поделиться исходниками: дам версию, с которой вы начнёте собирать своё. Напишите, для каких встреч хотите такой ассистент.

Попросить исходники

Об авторе и что я делаю с этими инструментами

Artorix для меня рабочий инструмент, а не продукт.

Я Pavel Mihutski, RND.energy, Валенсия. 20 лет строю и перестраиваю бизнесы, а сейчас исследую, как люди принимают решения. Анализирую коммуникацию и строю ERP- и CRM-системы с 2010 года. Artorix и CoFlow это текущие версии инструментов, которые я строил и перестраивал много раз. 9 отраслей, больше 130 проектов.

Для меня Artorix не продукт, а рабочий инструмент. Я использую его на интервью и переговорах внутри Founder Sprint: десять рабочих дней с фаундером вокруг одного главного вопроса. Где теряются деньги, почему всё держится на нём, что сломается, когда компания вырастет. По реальным данным компании, включая разговоры с командой и записи звонков, я собираю честную картину того, что происходит на самом деле, и куда идти дальше. На выходе обоснованный ответ, план действий с ответственными и способ проверить результат.

Если вам нужен такой ассистент, но строить его самому не хочется, настроить его под ваши встречи можно отдельной платной работой.

Как устроен Founder Sprint. Первый разговор на 20 минут: через rnd.energy, LinkedIn или Telegram.

Условия

Гайд описывает подход, а не код.

© Pavel Mihutski · RND.energy. Гайд для личного использования: он описывает подход и выводы, а не исходный код. Перепечатка, передача третьим лицам и коммерческое использование только с письменного согласия автора. Исходники не лежат в открытом доступе: версией я делюсь лично, по запросу.

Хотите исходники или такой ассистент для своих встреч?

Если хотите собрать своё, поделюсь версией исходников. Если хотите, чтобы я настроил ассистент под ваши встречи, это отдельная работа. Напишите, что вам ближе и для каких встреч. Отвечу лично.

4000 знаков осталось

Или напишите напрямую: Telegram · WhatsApp · LinkedIn