Ми часто стикаємося з ситуацією: клієнту потрібно транскрибувати сотні годин аудіо щомісяця. Хмарні API або дорогі, або небезпечні — дані йдуть на сторону, а вартість зростає лінійно. Self-hosted Whisper дає повний контроль над даними, передбачувану вартість при великих обсягах та можливість тонкого налаштування під конкретний акцент або домен. Наприклад, на одному з проєктів ми розгорнули Whisper large-v3 на двох A10G, обробляючи до 8 годин аудіо на годину з точністю, порівнянною з хмарним рішенням, але з економією більш ніж у 4 рази. При цьому ми використовували VAD-фільтр та word_timestamps для синхронізації субтитрів. Така конфігурація дозволяє обробляти до 2000 годин аудіо на місяць на одному GPU-сервері. Для оцінки вашого навантаження зв'яжіться з нашим інженером — ми підберемо оптимальну конфігурацію.
Які проблеми вирішуємо?
- Низька точність на шумних аудіо: VAD-фільтр та налаштування beam_size покращують розпізнавання. Ми налаштовуємо параметри під ваш тип аудіо.
- Висока затримка при потоковому записі: використовуємо чанкування та WebSocket.
- Відсутність моніторингу: Prometheus + Grafana відстежують GPU utilization та глибину черги.
Як розгорнути Whisper на виділеному сервері?
Архітектура production-розгортання включає кілька ключових компонентів:
Audio Input → Nginx → FastAPI Workers → Whisper Workers (GPU) → PostgreSQL ↓ ↓ Redis Queue S3 Storage Основні компоненти:
- FastAPI — REST API для прийому завдань
- Celery — черга асинхронної обробки
- Redis — брокер завдань та кеш
- faster-whisper — inference engine (CTranslate2)
- PostgreSQL — зберігання транскрипцій та метаданих
Покрокова інструкція налаштування:
- Встановіть Docker та NVIDIA Container Toolkit.
- Зберіть образ воркера з faster-whisper та залежностями.
- Запустіть Redis та PostgreSQL.
- Розгорніть FastAPI-застосунок, що реалізує REST-ендпоїнти.
- Запустіть Celery worker з прив'язкою до GPU через
--gpus all. - Налаштуйте моніторинг через Prometheus та Grafana.
- Протестуйте на тестових аудіофайлах, варіюючи мову та тривалість.
Процес налаштування воркера
Конфігурація Celery worker для faster-whisper з підтримкою retry та моніторингом:
from celery import Celery from faster_whisper import WhisperModel app = Celery('whisper_tasks', broker='redis://localhost:6379/0') model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16") @app.task(bind=True, max_retries=3) def transcribe_audio(self, file_path: str, language: str = None): try: segments, info = model.transcribe( file_path, language=language, vad_filter=True, word_timestamps=True ) return { "language": info.language, "duration": info.duration, "segments": [ {"start": s.start, "end": s.end, "text": s.text} for s in segments ] } except Exception as exc: raise self.retry(exc=exc, countdown=60) Вимоги до заліза
Для запуску Whisper необхідна дискретна відеокарта NVIDIA з підтримкою CUDA. Рекомендовані конфігурації залежно від навантаження:
| Навантаження | GPU | RAM | Диск |
|---|---|---|---|
| до 10 годин/день | RTX 3080 10GB | 16 GB | 100 GB SSD |
| до 100 годин/день | RTX 4090 | 32 GB | 500 GB SSD |
| більше 100 годин/день | 2x A10G | 64 GB | 2 TB NVMe |
Як вибрати правильну модель Whisper?
Вибір моделі впливає на точність та швидкість. У production найчастіше використовують large-v3, але для легких завдань підійде medium. Порівняння на основі даних faster-whisper:
| Модель | VRAM | Швидкість (xRT) | WER (англ.) |
|---|---|---|---|
| tiny | ~1 GB | ~32x | ~7.7% |
| base | ~1 GB | ~16x | ~5.2% |
| small | ~2 GB | ~6x | ~4.0% |
| medium | ~5 GB | ~2x | ~3.0% |
| large-v3 | ~10 GB | ~1x | ~2.2% |
*Швидкість відносно real-time (xRT: чим більше, тим швидше).
Моніторинг та надійність
- Celery Flower для моніторингу черги завдань
- Prometheus + Grafana для метрик GPU utilization та queue depth
- Автоматичний перезапуск воркерів через systemd
- Healthcheck endpoint з перевіркою доступності GPU
Приклад docker-compose.yml для розгортання
version: '3.8' services: redis: image: redis:7 db: image: postgres:15 api: build: ./api depends_on: [redis, db] worker: build: ./worker deploy: resources: reservations: devices: - capabilities: [gpu] Економічні переваги self-hosted Whisper
При транскрибації від 3000 хвилин на місяць власний сервер окупається швидше. Хмарні тарифи лінійні, тоді як self-hosted на A10G при завантаженні 50% дає економію в 3-6 разів. Крім того, ви отримуєте повний контроль над обробкою даних і можете кастомізувати модель під свою предметну область. Зниження витрат на транскрибацію безпосередньо покращує ROI. Замовте консультацію — ми розрахуємо економію для вашого обсягу.
Що входить у роботу
- Аудит аудіо-навантаження та підбір конфігурації GPU.
- Розгортання FastAPI + Celery + Redis + PostgreSQL.
- Налаштування faster-whisper з VAD-фільтром та word_timestamps.
- Інтеграція з S3-сумісним сховищем.
- Моніторинг через Prometheus + Grafana.
- Документація API та інструкція з експлуатації.
- Навчання команди роботі з системою.
Терміни та вартість
- Базове розгортання: 2–3 дні.
- З чергою завдань та API: 5–7 днів.
- Повна production-система з моніторингом: до 2 тижнів.
- Вартість розраховується індивідуально під ваше навантаження та вимоги.
Наш досвід у розгортанні Whisper — понад 30 проєктів. Гарантуємо стабільну роботу та своєчасну підтримку. Якщо вас цікавить впровадження self-hosted Whisper, отримайте консультацію інженера — ми підготуємо пропозицію та оцінимо проєкт протягом дня.







