This commit is contained in:
2026-02-25 23:48:01 +03:00
commit 6c4cf7ba2f
9 changed files with 894 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
# Whisper Speed Transcribe
Полнофункциональный Web UI для транскрибации аудио/видео с использованием Whisper.
## Возможности
- 📁 Загрузка видео (MP4, MKV, AVI, MOV, WebM) и аудио (MP3, WAV, M4A, FLAC, OGG)
- ⚡ Изменение скорости аудио (0.5x - 2.0x) без изменения высоты тона
- 🎙️ Транскрибация или перевод на английский язык
- 🔊 Прослушивание обработанного аудио после конвертации
- 📋 История задач с автоудалением через 6 часов
- 🐳 Полная поддержка Docker и Docker Compose
## Быстрый старт
### Требования
- Docker
- Docker Compose
### Запуск
1. Клонируйте репозиторий и перейдите в директорию проекта:
```bash
cd whisper-webui
```
2. Создайте файл `.env` на основе `.env.example`:
```bash
cp .env.example .env
```
3. Запустите все сервисы:
```bash
docker-compose up -d
```
4. Откройте в браузере:
- **Gradio UI**: http://localhost:7860
- **API**: http://localhost:8080
## Использование
### Через Web UI
1. Загрузите видео или аудио файл
2. Настройте скорость воспроизведения (по умолчанию 1.25x)
3. Выберите задачу: транскрибация или перевод
4. При необходимости укажите язык
5. Нажмите "Обработать файл"
6. Прослушайте обработанное аудио и скопируйте текст
### Через curl (прямой вызов API)
```bash
# Транскрибация
curl -X POST -F "file=@test.m4a" http://localhost:8080/transcribe
# Транскрибация с указанием языка
curl -X POST -F "file=@test.m4a" -F "language=ru" http://localhost:8080/transcribe
# Перевод на английский
curl -X POST -F "file=@test.m4a" -F "task=translate" http://localhost:8080/transcribe
```
## Настройки
### Переменные окружения
| Переменная | По умолчанию | Описание |
|------------|--------------|----------|
| `MODEL_SIZE` | `base` | Размер модели Whisper (tiny, base, small, medium, large) |
| `DEVICE` | `cpu` | Устройство для инференса (cpu, cuda) |
| `WHISPER_API_URL` | `http://whisper-api:8080/transcribe` | URL API транскрибации |
| `DB_RETENTION_HOURS` | `6` | Время хранения задач в часах |
### Доступные модели Whisper
| Модель | Размер | Скорость | Качество |
|--------|--------|----------|----------|
| tiny | ~39 MB | Очень быстро | Низкое |
| base | ~74 MB | Быстро | Среднее |
| small | ~244 MB | Средне | Хорошее |
| medium | ~769 MB | Медленно | Очень хорошее |
| large | ~1550 MB | Медленно | Лучшее |
## Структура проекта
```
whisper-webui/
├── docker-compose.yml # Конфигурация Docker Compose
├── .env.example # Пример переменных окружения
├── README.md # Документация
├── api/ # API сервис (Whisper)
│ ├── Dockerfile
│ ├── main.py
│ └── requirements.txt
└── ui/ # Gradio интерфейс
├── Dockerfile
├── app.py
└── requirements.txt
```
## Остановка
```bash
docker-compose down
```
## Примечание
- Аудио файлы не сохраняются - только метаданные и результаты транскрибации
- База данных SQLite автоматически очищает записи старше 6 часов
- Для GPU ускорения установите `DEVICE=cuda` и используйте соответствующий образ
## Лицензия
MIT