Транскрибатор с нуля: как идея на отдыхе превратилась в востребованный продукт!

Предыстория

Меня зовут Егор, я разработчик, работающий удалённо и совмещающий работу, путешествия и серфинг. Недавно мы с женой отправились в Южную Африку — на другой край света, где у нас была возможность увидеть пингвинов в их естественной среде и покорить волны знаменитого спота Джеффрис Бэй. Во время этого путешествия возникла идея, которая быстро переросла в новый проект — продукт, способный решить реальные задачи для бизнеса.

От идеи к реализации

Во время отпуска я изучал Ripley — инструмент на базе нейросети для автоматизации создания приложений. За неделю до этого я уже пытался с ней поработать, но первые результаты были, мягко говоря, далеки от идеала. И вот появилась отличная возможность протестировать Ripley на реальной задаче: ко мне подошла жена с просьбой — её компании требовался сервис для транскрипции аудиозаписей с разделением по ролям, таймкодами и краткими саммари. Спустя несколько часов у меня уже был готовый прототип бэкенда на Python с OpenAI, который показывал достойные результаты.

Технические вызовы

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

Для точной работы продукта было необходимо разделять аудио на части (чанки) и обрабатывать их так, чтобы не терялись слова на стыках, а таймкоды синхронизировались с реальным временем записи. Эти задачи потребовали дополнительных усилий, но в итоге позволили добиться стабильных результатов.

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

Такой результат получился
Такой результат получился

Настройка сервера: проблемы и решения

Для создания надёжного сервиса я настроил сервер с помощью Docker и Nginx. У меня уже был опыт работы с этими инструментами: на предыдущем проекте, также инициированном компанией, где работала моя жена, тогда я впервые столкнулся с проблемой безопасности, когда на сервер стали поступать попытки незаконного подключения к базе данных. Эти атаки привели к перегрузке процессора и довели его загрузку до 99%. Этот опыт стал для меня серьёзным уроком по защите серверов.

В этот раз я подошёл к настройке с усиленным контролем безопасности, настроив меры для предотвращения несанкционированных подключений и оптимизации нагрузки. Однако, несмотря на все предпринятые меры, через неделю тестирования я снова заметил проблемы с производительностью, которые потребовали более тонкой настройки защиты и анализа сетевых запросов.

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

Интеграция платежной системы

Одним из новых вызовов в проекте стала интеграция платёжной системы, в частности, подключение ЮKassa Это был мой первый опыт настройки системы для приёма онлайн-платежей, что добавило проекту новый уровень сложности. В процессе я создал систему управления платными минутами транскрипции, чтобы пользователи могли легко пополнять баланс и использовать сервис по мере необходимости.

Выбор ЮKassa был обусловлен его популярностью и удобством для российских пользователей, что позволило быстро внедрить удобную оплату. Теперь можно быстро пополнять баланс и сразу получать доступ к транскрибатору, что делает процесс максимально простым и понятным.

Итог

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

Заключение

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

Этот проект — полностью моя инициатива, и на данном этапе он создаётся силами одного человека. Хотя за моей спиной — значительный опыт разработки, это мой первый опыт полного цикла создания и развития продукта. Поэтому мне особенно интересно видеть, как инструмент становится полезным и востребованным.

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

55
2 комментария

Крутая история и проект! Ждем следующую статью.

1
Ответить

Хорошая статья, ждем продолжения.
От себя замечу, что такого рода "транскрибаторы" в коммерческих продуктах встречались мне не раз.
Месяцев 5-6 назад стояла такая задача перед HR-отделом, упростить так называемые "минутки" после встречи, чтобы их написание и итоги встречи формировались на основе звуко-/видео-записи в текстовом формате.

1
Ответить