init: TTS Telegram Bot (edge-tts, Dmitry voice, admin panel)
This commit is contained in:
commit
ed3c1cf0ce
9 changed files with 498 additions and 0 deletions
101
README.md
Normal file
101
README.md
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
# 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
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue