Мы часто сталкиваемся с ситуацией: клиенту нужно транскрибировать сотни часов аудио ежемесячно. Облачные 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, получите консультацию инженера — мы подготовим предложение и оценим проект в течение дня.







