Как я разработал Telegram-бота, который клонирует голос

Все великие (и не очень) проекты часто начинаются с одного: банальной лени.

Мне нужно было записать видеоинструкцию для своего сервиса. Функционала много, текста — еще больше, а перспектива запоминать все это и записывать с десятого дубля вызывала тоску. И тут появилась мысля: «А что, если я просто скормлю готовый текст нейросети, а она озвучит его *моим* голосом?»

В этой статье я расскажу, как прошел путь от этой идеи до готового бота с перспективой монетизации.

Этап 1: Поиск TTS модели

Я начал ресерч TTS-моделей (Text-to-Speech), способных качественно работать с русской речью и, главное, клонировать голос (voice cloning).

  • F5-TTS_RUSSIAN (от Misha24-10): Наткнулся на эту модель на Hugging Face. Качество приятно удивило. Она действительно хорошо копирует тембр и интонации. Проблемы были, но мелкие — модель может не до конца озвучить короткий текст.
  • OpenAudio S1: У нее два варианта: mini (в открытом доступе) и полная (через API или сайтI). Русская речь на выходе имеет китайский акцент. Тестил S1 по API, проблема сохраняется. Решил добавить для генерации речи на иностранном языке.

Определившись с «движками», я набросал простенького Telegram-бота. Логика элементарная: загружаешь референс голоса (аудиофайл), кидаешь текст — получаешь на выходе MP3. Для полного счастья добавил контроль пауз через кастомный тег [пауза n], где n — секунды. Паузы сильно помогли мне при записи видеоряда для действий, которые требуют много времени.

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

Можно ли заработать на этом боте? (Расчеты на салфетке)

Бот лежал без дела, но мысль «а что, если...» не давала покоя. Я пошел на разведку: изучать конкурентов в этой нише. Нашел не сильно много сервисов, которые дают эту услугу. В топе поиска в гугле и яндексе по запросу "клонирование голоса на русском" выдавались иностранные сервисы, где нельзя было провести оплату русской картой. Нашел несколько тг ботов, но опять же в одном нет возможности оплатить через российскую карту, а второго бота я не стал тестировать т.к пожалел 300 руб за подписку.

По итогам ресерча, я решил поставить цену в 13 рублей за минуту генерации.

По-хорошему, тут надо бы провести глубокий юнит-анализ: посчитать на сколько хватит моей RTX3090, учесть счета за электричество при гипотетических нагрузках и уже от этого формировать цену. Но я решил не тратить лишних когнитивных усилий. Хочу сначала проверить спрос, потом считать экономику. Если бот никому не нужен, все эти расчеты — пустая трата времени.

Немного помечтал: если бот будет генерировать хотя бы 2 часа речи в день, за месяц это принесет ~43 000 рублей. А это, на минуточку, вторая RTX3090 за два месяца.

Этап 2: Превращаем «игрушку» в сервис

Чтобы брать с людей деньги, «скрипт на коленке» пришлось превращать в полноценный проект.

База данных: Взял PostgreSQL.

Админка: Чтобы не писать ее самому, развернул Directus. Отличное и быстрое решение.

Структура БД: Максимально простая, всего 3 таблицы:

1. users (храним баланс, user_id, путь к референсу голоса, id выбранной модели и др. параметры). 2. transactions (user_id, сумма, статус). 3. models (просто справочник моделей: F5 или S1).

Демо-режим: Через Directus быстро настроил «аттракцион щедрости» — 1 бесплатная минута генерации каждому пользователю раз в месяц.

Платежки: Подключил Telegram Stars и Robokassa. (Пытался прикрутить YouKassa, но самозанятым там, как я понял, свой магазин создать нельзя).

Интерфейс набросал на reply-markup кнопках. Выглядит, честно говоря, не очень. Особенно «костыль» с символами / и _, чтобы бот отличал команду от текста для озвучки. Возможно, позже переделаю формат команд на @какая-то команда.

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

Этап 3: Попытка продвижения

Собрать бота, по моему мнению, это маленькая часть работы. Самое сложное — рассказать о нем миру.

Кейс с ТикТоком:

Сделал видео — озвучка голосом бота одной страницы комикса про Человека-паука. В конце — ссылка на бота. Купил продвижение у TikTok за 800 рублей. TikTok решил, что мое видео на русском языке, с русскими хештегами и описанием, *жизненно необходимо* иностранцам. Итог — 2800 просмотров и 5 переходов в бота. Сомневаюсь, что иностраноязычные пользователи оценили бота, заточенного под русскую речь.

Работа над ошибками: Вывод очевиден. Сначала нужно «прогреть» аккаунт русскоязычным контентом, чтобы алгоритм наконец понял, кто моя ЦА. И только потом делать рекламные видео.

Кейс с ТикТоком 2:

Опубликовал несколько видео на русском языке, и TikTok наконец-то начал показывать видео русскоязычным пользователям.
Сделал 2 видео, рекламное, где уже непосредственно рассказал про бота. Купил продвижение и тик ток опять показывал мое видео только иностранцам. Просто в пустую потратил деньги. Видимо их алгоритмы работают по разному для стандартного продвижения и платного.

Кейс с VC.ru:

Написал и опубликовал статью, где рассказал про бота. По итогу 222 просмотров, в бота перешло 42 человека, 1 из которых купил минуту. По грубым подсчетам, для того, чтобы бот принес 10 000 руб, статьи суммарно должны просмотреть 185 000 людей.

Что дальше?

Попробывать опубликовать статьи на других площадках. Сделать видео для YouTube shorts, TikTok. Постараться над качеством, подумать над форматом.

Идеи:

  • «Топ-5 нейросетей для озвучки» (где мой бот, *конечно же*, случайно окажется на первых местах)
  • «История: как я потерял голос перед важным выступлением и клонировал его в Telegram»

P.S. Новости по проекту, исходный код будут доступны в моем телеграм канале:

1 комментарий