телеграм бот, который принимает текст или новости даже с картинками и видео и озвучивает текст, отправляя пользователю в ответ голосовое сообщение с озвучкой
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| app | ||
| .env.example | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| README.md | ||
T2S Telegram Bot — Text-to-Speech
Сервис озвучивания текста через Telegram. Пользователь отправляет текст — получает голосовое сообщение голосом Дмитрия (Microsoft edge-tts). Администратор получает копию каждой озвучки с информацией об отправителе.
Быстрый старт
# Запустить сервис
docker compose up -d
# Посмотреть логи
docker compose logs -f
# Остановить
docker compose down
Первичная настройка
- Напиши
/startадмин-боту (токенADMIN_BOT_TOKEN) — он запомнит твойchat_id - После этого все сообщения пользователей будут дублироваться тебе с аудио + информацией
- Любой пользователь может писать текст пользовательскому боту (токен
USER_BOT_TOKEN) и получать озвучку
Архитектура
graph LR
User[Пользователь Telegram] -->|текст| UBot[Пользовательский бот]
UBot -->|TTS запрос| edge[edge-tts<br/>Microsoft TTS]
edge -->|audio.ogg| UBot
UBot -->|голосовое сообщение| User
UBot -->|копия + информация| ABot[Админ-бот]
ABot -->|голосовое + информация| Admin[Администратор]
- Один процесс запускает два экземпляра
python-telegram-botApplication - Озвучка — Microsoft edge-tts, голос
ru-RU-DmitryNeural(бесплатно, без API-ключа) - Аудио — временные
.oggфайлы, удаляются сразу после отправки
Структура проекта
.
├── .env # Токены ботов + настройки
├── .gitignore
├── README.md
├── docker-compose.yml # Оркестрация
└── app/
├── Dockerfile
├── requirements.txt
└── bot.py # Логика ботов
Конфигурация (.env)
| Переменная | Описание | Пример |
|---|---|---|
USER_BOT_TOKEN |
Токен пользовательского бота | 856708... |
ADMIN_BOT_TOKEN |
Токен админского бота | 880853... |
TTS_VOICE |
Голос edge-tts (опционально) | ru-RU-DmitryNeural |
Доступные русские голоса
| Имя | Пол |
|---|---|
ru-RU-DmitryNeural |
Мужской (по умолчанию) |
ru-RU-SvetlanaNeural |
Женский |
ru-RU-DariyaNeural |
Женский |
Использование
Пользователь пишет любое текстовое сообщение пользовательскому боту:
User: Привет, как дела?
Bot: 🎵 (голосовое сообщение с озвучкой)
Администратору приходит:
👤 Иван Иванов
🆔 123456789
📝 Привет, как дела?
⏰ 2026-06-03 18:09:00
🎵 (то же голосовое сообщение)
Требования
- Docker + Docker Compose
- Доступ к api.telegram.org (боты)
- Доступ к Microsoft edge-tts CDN (первый запрос кеширует голос)
Особенности сети
При использовании с роутером GLiNet (DPI, блокировка Docker Hub) используйте для сборки:
DOCKER_BUILDKIT=0 docker build --network=host -t t2s-telegram-bot ./app