# T2S Telegram Bot — Text-to-Speech Сервис озвучивания текста через Telegram. Пользователь отправляет текст — получает голосовое сообщение голосом Дмитрия (Microsoft edge-tts). Администратор получает копию каждой озвучки с информацией об отправителе. ## Быстрый старт ```bash # Запустить сервис docker compose up -d # Посмотреть логи docker compose logs -f # Остановить docker compose down ``` ### Первичная настройка 1. Напиши `/start` **админ-боту** (токен `ADMIN_BOT_TOKEN`) — он запомнит твой `chat_id` 2. После этого все сообщения пользователей будут дублироваться тебе с аудио + информацией 3. Любой пользователь может писать текст **пользовательскому боту** (токен `USER_BOT_TOKEN`) и получать озвучку ## Архитектура ```mermaid graph LR User[Пользователь Telegram] -->|текст| UBot[Пользовательский бот] UBot -->|TTS запрос| edge[edge-tts
Microsoft TTS] edge -->|audio.ogg| UBot UBot -->|голосовое сообщение| User UBot -->|копия + информация| ABot[Админ-бот] ABot -->|голосовое + информация| Admin[Администратор] ``` - **Один процесс** запускает два экземпляра `python-telegram-bot` Application - **Озвучка** — 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) используйте для сборки: ```bash DOCKER_BUILDKIT=0 docker build --network=host -t t2s-telegram-bot ./app ```