119 lines
4.2 KiB
Markdown
119 lines
4.2 KiB
Markdown
# 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
|