Бот для создания голосовых сообщений в Telegram

АвтоматизацияАнтон Лебедев9 мин чтения
Бот для создания голосовых сообщений в Telegram

Клиент интернет-магазина оформляет заказ в полночь и через секунду получает в Telegram голосовое: «Ваш заказ #4521 принят, курьер приедет завтра с 10 до 13». Записал не менеджер и не диктор, а бот для создания голосовых сообщений, который превратил текст в речь через TTS-API. Такую связку собирают за один вечер, если понимать, из каких частей она состоит.

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

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

Из каких частей состоит бот для создания голосовых сообщений

У такого бота три обязательных блока, и от выбора каждого зависит, насколько быстро проект заработает.

  • Интерфейс. Telegram-бот, принимающий сообщения через Bot API, или виджет на сайте с полем для текста и кнопкой «Озвучить».
  • Серверная логика. Код, который получает текст от пользователя, формирует запрос к TTS-API, обрабатывает ответ и возвращает результат. Это может быть простой скрипт на Python или Node.js, развернутый на обычном хостинге или в облачной функции.
  • TTS-API. Внешний сервис синтеза речи, который превращает текст в аудиофайл. Именно он определяет качество голоса, доступные языки и формат на выходе.

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

Серверную логику размещают на обычном VPS, в облачной функции типа serverless или прямо на той же инфраструктуре, где уже работает основной чат-бот компании: выбор зависит от нагрузки и от того, есть ли у бота другие задачи кроме озвучки.

Логика работы у бота в Telegram и бота на сайте совпадает почти целиком. Разница только в том, как текст попадает в систему: через чат с ботом или через форму на странице. Если нужен более широкий разбор, как устроена архитектура разговорного бота до того, как в неё добавляется озвучка, подойдёт отдельный материал про то, как собрать чат-бота на нейросети.

Какой TTS-API выбрать

На рынке десятки сервисов синтеза речи, но для бота под русскоязычную аудиторию обычно сравнивают несколько вариантов.

Для бота под русскоязычную аудиторию важны не только цена за символ и качество голоса, но и то, нужен ли VPN или отдельная регистрация в иностранном сервисе, чтобы серверы бота могли достучаться до API без сбоев.

Сервис Подключение Особенность
Yandex SpeechKit REST (API v1) и REST/gRPC (API v3) Голоса и языки ru-RU, en-US, de-DE, he-IL, kk, uz в базовой версии, поддержка SSML для пауз и интонаций, лимит около 5000 символов на один запрос в API v1
OpenAI TTS REST, один HTTP-запрос Несколько встроенных голосов, аудио на выходе в mp3, wav, opus, aac или flac по выбору разработчика
Google Cloud Text-to-Speech, Microsoft Azure Speech, ElevenLabs REST или gRPC, у каждого свой SDK Шире выбор голосов и языков, часто дороже и требуют отдельной регистрации аккаунта в иностранном облаке

Для бота в Telegram или на русскоязычном сайте Yandex SpeechKit удобен тем, что не требует доступа к зарубежному облаку и сразу поддерживает русский язык без настройки акцента. Если нужен более живой голос или клонирование конкретного спикера, присмотритесь к сервисам, которые разбираются в отдельном материале про нейросети для синтеза и распознавания речи.

На что смотреть при выборе

Для бота важны не столько красота голоса, сколько три технических параметра: формат аудио на выходе, лимит символов на один запрос и наличие SSML-разметки для управления паузами. Если сервис отдаёт только wav или mp3, перед отправкой в Telegram файл придётся конвертировать. У части сервисов помимо выбора голоса можно задать темп речи, что полезно, когда один и тот же бот озвучивает и короткие уведомления, и длинные инструкции.

Как подключить TTS-API к боту в Telegram

Схема одинакова для большинства TTS-сервисов, меняются только параметры запроса.

  1. Создайте бота через @BotFather в Telegram и получите токен доступа.
  2. Выберите библиотеку для работы с Bot API: aiogram или python-telegram-bot для Python, Telegraf для Node.js. Они берут на себя приём сообщений и загрузку файлов.
  3. Напишите обработчик, который при получении текстового сообщения формирует запрос к TTS-API с этим текстом.
  4. Получите аудио от сервиса синтеза речи. Если формат не ogg, сконвертируйте файл через ffmpeg в ogg с кодеком Opus.
  5. Отправьте готовый файл методом sendVoice. Это важный момент: Telegram принимает голосовые сообщения в ogg с кодеком Opus, а также допускает mp3 и m4a, но именно формат ogg/Opus включает нативные функции плеера, например кнопку ускоренного воспроизведения.
  6. Добавьте обработку ошибок на случай, если TTS-сервис вернул ошибку лимита или недоступен.

Конвертация в ogg/Opus, которую легко упустить на старте, часто превращается в единственный шаг, из-за которого бот отправляет голосовое как обычный файл-документ вместо проигрываемого сообщения с волной. Если в проекте уже есть Telegram-бот для других задач, логика синтеза речи добавляется как ещё один обработчик команд, подробнее о таких ботах для бизнеса можно прочитать в материале про чат-боты Telegram для бизнеса.

Ключ доступа к TTS-API и токен бота хранят в переменных окружения сервера, а не прямо в коде: так они не попадут в публичный репозиторий при случайной публикации проекта.

Как добавить озвучку на сайт

Для сайта логика похожа, но интерфейс другой: вместо чата пользователь видит кнопку «Прослушать» рядом с текстом.

  • Фронтенд отправляет текст на серверный эндпоинт по клику на кнопку.
  • Сервер проверяет, не озвучивался ли этот текст раньше, и при совпадении отдаёт готовый файл из кэша, не тратя лимит запросов к TTS-API повторно.
  • Если файла нет, сервер обращается к TTS-API, сохраняет результат и возвращает ссылку на аудио браузеру.
  • Браузер проигрывает файл через обычный HTML-плеер.

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

Озвучка на сайте полезна не только ради удобства. Для посетителей с нарушением зрения или дислексией аудиоверсия текста работает как встроенная функция доступности, которую не нужно подключать отдельным сервисом.

Сценарии использования бота для озвучки текста

Задача одна и та же: превратить текст в аудио без участия человека, но поводов для этого у бизнеса много.

  • Подтверждение заказа и статус доставки голосовым сообщением вместо текстового уведомления.
  • Озвучка уроков и материалов в онлайн-школах, когда преподаватель записал только текстовый конспект.
  • Автоответы продавца на маркетплейсе на типовые вопросы о сроках и характеристиках товара.
  • Голосовые версии статей и постов для подписчиков, которые слушают контент за рулём или в дороге.
  • Озвучка IVR-меню и ответов поддержки, если нужно быстро обновлять текст без перезаписи диктора.
  • Голосовая инструкция в карточке товара на маркетплейсе, когда покупателю проще услышать, как собрать мебель или настроить устройство, чем читать длинный текст.
  • Голосовые напоминания о записи или встрече в сервисах для медицинских клиник и салонов красоты.

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

Где чаще всего ошибаются при сборке

Большинство проблем с ботом для озвучки типовые и повторяются от проекта к проекту.

  • Не проверяют формат файла перед отправкой в Telegram, из-за чего голосовое приходит как обычный документ без плеера.
  • Отправляют в TTS-API текст длиннее лимита одного запроса и получают обрезанное аудио или ошибку.
  • Не кэшируют повторяющиеся фразы и платят за одну и ту же озвучку много раз.
  • Игнорируют SSML-разметку там, где она доступна, из-за чего голос звучит монотонно на длинных текстах с цифрами и аббревиатурами.
  • Не обрабатывают отказ TTS-сервиса: при временной недоступности API бот просто зависает вместо понятного сообщения пользователю.
  • Хранят ключ API открытым текстом в коде бота, из-за чего при утечке репозитория доступ к сервису синтеза получает кто угодно.

Частые вопросы

В каком формате Telegram принимает голосовые сообщения?

Для метода sendVoice Telegram принимает файл в формате ogg с кодеком Opus, а также допускает mp3 и m4a. При этом именно ogg/Opus включает нативные функции плеера, например кнопку ускоренного воспроизведения, которой не будет при отправке mp3 как голосового.

Можно ли тарифицировать озвучку не по минутам, а как-то иначе?

Да, большинство TTS-сервисов берут плату не за длительность готового аудио, а за объём входного текста: по количеству символов или токенов. Это значит, что цена зависит от длины фразы, а не от того, насколько быстро или медленно её произносит синтезированный голос.

Нужен ли программист, чтобы собрать такого бота?

Минимальная версия на готовой библиотеке типа aiogram или Telegraf собирается разработчиком за несколько дней: основная логика сводится к приёму сообщения, запросу к TTS-API и отправке файла обратно. Без навыков программирования собрать именно такую связку с конвертацией формата и обработкой ошибок самостоятельно сложно.

Чем бот для озвучки отличается от обычного TTS-сервиса?

TTS-сервис просто превращает текст в аудио по разовому запросу через консоль или сайт. Бот встраивает этот же вызов в канал, где уже есть пользователь: Telegram, сайт или мессенджер, принимает ввод, сам обращается к API и отдаёт готовый файл без ручных действий на каждом шаге.

С чего начать

Если решили собирать такого бота, порядок действий простой.

  1. Определите канал: Telegram-бот, виджет на сайте или оба сразу.
  2. Выберите TTS-API и получите ключ доступа, сверив лимиты символов и поддерживаемые языки с вашими текстами.
  3. Соберите минимальную версию на одной из готовых библиотек, подключите API и проверьте конвертацию в нужный формат на коротких фразах.
  4. Добавьте кэширование повторяющихся фраз и обработку ошибок API перед запуском на реальных пользователях.

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

Поделиться:

About Author: Антон Лебедев

nu_editor_lebedev@neurounit.ai

Редактор Neurounit. Разбирает рекламные каналы, аналитику и экономику заявок.

Neurounit

Запустить рост с AI

Оставьте заявку или напишите в мессенджер