Задача: получить не только расшифровку
Текст разговора и медицинская запись устроены по-разному. В беседе сведения появляются по ходу разговора: человек описывает жалобы, вспоминает подробности, отвечает на уточняющие вопросы. Для черновика записи эту информацию нужно распределить по содержательным разделам — одного распознавания речи недостаточно.
Задача разработки — связать запись аудио, расшифровку и подготовку структуры с интерфейсом проверки. Важно не только показать результат обработки, но и оставить врачу возможность обратиться к исходному разговору и исправить текст.
Мой вклад
Я создал первоначальный MVP с нуля: связал браузерный интерфейс записи, получение текста, серверное структурирование, хранение данных и работу с аудио. Собрал путь от записи разговора до черновика, который можно показать специалисту для проверки.
Затем проект развивался. Ниже описаны возможности более поздней версии, изученной по коду, в том числе редакторы и административные настройки. Они показывают развитие решения, но я не приписываю каждый поздний модуль своей первоначальной реализации.
Как врач получает черновик
- Включает запись в браузере. Параллельно с записью аудио появляется расшифровка разговора. Пока это обычный текст, ещё не разделённый на части медицинской записи.
- Проверяет материал перед обработкой. Запись можно поставить на паузу и продолжить. После остановки — прослушать, при необходимости перезаписать и поправить распознанный текст.
- Отправляет материал на обработку. Система сохраняет аудио и использует текст для подготовки структуры. Интерфейс показывает ожидание, а затем результат или сообщение о проблеме.
- Сверяет и редактирует результат. Врач может открыть расшифровку, прослушать сохранённое аудио, изменить разделы черновика и сохранить правки. Подготовленный текст можно скопировать целиком или по частям.
Так проверка не отделена от исходных материалов: после обработки доступны и черновик, и разговор, на основании которого он подготовлен.
Из разговора — в редактируемые разделы
Языковая модель получает расшифровку и инструкцию структурирования. Сведения распределяются по заданной схеме: жалобы, анамнез заболевания и жизни, объективные данные, диагноз, назначения и рекомендации. Некоторые поля могут остаться пустыми.
Практический результат — не сплошная расшифровка, а разделы, с которыми врач может работать по отдельности. Их можно редактировать, сохранять и копировать. При необходимости специалист возвращается к тексту разговора или аудио, чтобы уточнить формулировку и проверить содержание.
Названия разделов «диагноз» и «назначения» не означают, что система самостоятельно ставит диагноз или выбирает лечение. Это части черновика; медицинские решения остаются за врачом.
При дальнейшем развитии проекта появился отдельный сценарий для УЗИ. Врач выбирает шаблон исследования — например, органов брюшной полости или почек и мочевыводящей системы — и диктует сведения. Система распределяет их по полям выбранного шаблона, чтобы подготовить черновик протокола нужной структуры. Врач проверяет результат, редактирует и сохраняет его, после чего может отдельно подтвердить протокол.
Настройки и управление доступом
В рассмотренной версии администратор может менять инструкцию, по которой модель структурирует расшифровку, а также управлять пользователями и их доступом. Так настройка обработки и повседневная работа врача разделены.
Результат и границы
Получилось связанное решение: запись разговора в браузере → расшифровка → структурированный черновик → сверка с исходником и правка. Здесь AI встроен в рабочий сценарий: распознавание и подготовка текста связаны с интерфейсом, хранением данных и действиями специалиста.
В прошлом у проекта были платящие клиенты. Этот факт относится к истории проекта в целом, а не подтверждает использование ими каждой функции более поздней версии.
Результат обработки остаётся черновиком для проверки врачом. Подтверждённых замеров экономии времени и клинического эффекта у меня нет; текущую доступность сервиса этот кейс не подтверждает.
Технологии
Браузерный интерфейс, Python, потоковое распознавание речи и Whisper, языковая модель через LangChain, Pydantic, база данных и объектное хранилище.