https://github.com/localzet/tts
Веб-сервис для озвучки текстов с использованием Microsoft Edge TTS
https://github.com/localzet/tts
microsoft text-to-speech tts
Last synced: 3 months ago
JSON representation
Веб-сервис для озвучки текстов с использованием Microsoft Edge TTS
- Host: GitHub
- URL: https://github.com/localzet/tts
- Owner: localzet
- License: agpl-3.0
- Created: 2025-12-14T14:29:56.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-02-14T15:50:13.000Z (4 months ago)
- Last Synced: 2026-02-15T00:18:02.195Z (4 months ago)
- Topics: microsoft, text-to-speech, tts
- Language: TypeScript
- Homepage: https://tts.zorin.space
- Size: 68.4 KB
- Stars: 12
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TTS Service
Веб-сервис для озвучки текстов с использованием Microsoft Edge TTS.
## Возможности
- 🎤 Преобразование текста в речь с использованием Edge TTS
- 💾 Хранение аудиофайлов в MinIO
- 🗑️ Автоматическое удаление файлов через 1 час
- 🎨 Современный UI на основе @localzet/ui-kit
- 🐳 Docker контейнеризация
- 🚀 CI/CD для автоматической сборки и публикации в GHCR
## Структура проекта
```
.
├── backend/ # FastAPI backend
├── frontend/ # React frontend
├── docker-compose.yml # Docker Compose конфигурация
└── .github/ # GitHub Actions workflows
```
## Быстрый старт
1. Запустите MinIO и сервисы:
```bash
docker-compose up -d
```
2. Backend будет доступен на `http://localhost:8000`
3. Frontend будет доступен на `http://localhost:3000`
4. MinIO Console будет доступна на `http://localhost:9001` (minioadmin/minioadmin)
## Конфигурация
### Переменные окружения
**Backend:**
- `MINIO_ENDPOINT` - Endpoint MinIO (по умолчанию: `minio:9000`)
- `MINIO_ACCESS_KEY` - Access key для MinIO
- `MINIO_SECRET_KEY` - Secret key для MinIO
- `MINIO_BUCKET` - Имя bucket (по умолчанию: `tts-audio`)
- `MINIO_SECURE` - Использовать HTTPS (по умолчанию: `false`)
**MinIO:**
- `MINIO_ROOT_USER` - Root пользователь (по умолчанию: `minioadmin`)
- `MINIO_ROOT_PASSWORD` - Root пароль (по умолчанию: `minioadmin`)
## API Endpoints
- `GET /` - Информация о сервисе
- `GET /api/voices` - Список доступных голосов
- `POST /api/generate` - Генерация аудио из текста
- `GET /api/download/{file_id}` - Скачать аудиофайл
- `DELETE /api/cleanup` - Ручная очистка старых файлов
- `GET /api/health` - Health check
## Очистка файлов
Файлы автоматически удаляются через 1 час после создания. Очистка выполняется через отдельный контейнер `cleanup`, который запускается каждые 3600 секунд (1 час).
Интервал очистки можно настроить через переменную окружения `CLEANUP_INTERVAL_HOURS` (по умолчанию: 1 час).