t2sTelegramBot/README.md

101 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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<br/>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
```