An open API service indexing awesome lists of open source software.

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

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 час).