Whisper на VPS: распознавание речи в текст
Whisper от OpenAI превращает аудио в текст на десятках языков, включая русский. На своем VPS ты транскрибируешь подкасты, звонки и голосовые без загрузки чужих сервисов и без лимитов на минуты.
Содержание
Зачем свой Whisper
['Облачные API распознавания берут деньги за минуту и отправляют твое аудио на чужие серверы. Локальный Whisper решает и то, и другое: транскрибируешь сколько угодно, данные не покидают твою машину — это критично для звонков, медицины, юридических записей.', 'Whisper бывает разных размеров: от tiny (быстро, грубо) до large-v3 (точно, тяжело). Разница в качестве заметна на шумных записях и редких словах: чем крупнее модель, тем меньше ошибок в терминах и именах. Но крупная модель требует больше RAM и времени, поэтому размер подбирают под задачу и железо.', 'Для CPU-сервера оптимальны small и medium через оптимизированную реализацию faster-whisper. Они дают хороший баланс: разборчивый русский текст с тайм-кодами при разумной скорости, пригодной для потоковой обработки архива записей.']Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для WhisperУстановка faster-whisper
['Обычный whisper на CPU медленный. Бери faster-whisper на движке CTranslate2 — он в разы быстрее при той же точности. Ставим зависимости:', 'apt update && apt install -y python3 python3-venv python3-pip ffmpeg\npython3 -m venv ~/whisper-venv\nsource ~/whisper-venv/bin/activate\npip install faster-whisper', 'ffmpeg обязателен — он декодирует любые форматы аудио (mp3, m4a, ogg, wav) перед подачей в модель.']
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Первая транскрипция
['Скриптtranscribe.py, который распознает файл на русском:', 'from faster_whisper import WhisperModel\n\nmodel = WhisperModel("medium", device="cpu", compute_type="int8")\nsegments, info = model.transcribe("audio.mp3", language="ru")\n\nprint("Язык:", info.language)\nfor seg in segments:\n print(f"[{seg.start:.1f}s -> {seg.end:.1f}s] {seg.text}")', 'Параметр compute_type="int8" включает квантизацию — модель занимает меньше RAM и считается быстрее на CPU почти без потери качества.', 'python transcribe.py']
Обработка длинных файлов
['Модель скачивается один раз при первом запуске и кешируется в~/.cache/huggingface. Для часовых записей увеличивай размер beam-поиска ради точности или уменьшай ради скорости:', 'segments, info = model.transcribe(\n "lecture.mp3", language="ru", beam_size=5, vad_filter=True)', 'Флаг vad_filter=True отсекает тишину — это ускоряет обработку и убирает галлюцинации в паузах. Здесь помогает NVMe у MAATRIX: длинные аудио читаются с диска быстро, а кеш модели грузится мгновенно.']
API-обертка на FastAPI
['Чтобы принимать аудио по сети, оберни модель в HTTP-сервис:', 'pip install fastapi uvicorn python-multipart', 'from fastapi import FastAPI, UploadFile\nfrom faster_whisper import WhisperModel\nimport tempfile\n\napp = FastAPI()\nmodel = WhisperModel("small", device="cpu", compute_type="int8")\n\n@app.post("/transcribe")\nasync def transcribe(file: UploadFile):\n with tempfile.NamedTemporaryFile(suffix=".mp3", delete=False) as f:\n f.write(await file.read())\n path = f.name\n segments, _ = model.transcribe(path, language="ru")\n return {"text": " ".join(s.text for s in segments)}', 'uvicorn app:app --host 127.0.0.1 --port 8001', 'Чтобы сервис пережил перезагрузку, оберни запуск в systemd-юнит с Restart=always — точно так же, как для других AI-сервисов. Тогда транскрипция доступна по сети постоянно, и бот или веб-приложение обращается к ней в любой момент.']
Частые ошибки
['- ffmpeg not found — установи пакет ffmpeg, без него не читается mp3/m4a.
- Медленно на large — на CPU бери small/medium с compute_type=int8.
- Галлюцинации в тишине — включи vad_filter=True.
- Неверный язык — задай language="ru" явно, автоопределение иногда ошибается на коротких фрагментах.
curl -X POST http://127.0.0.1:8001/transcribe -F "file=@audio.mp3"']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для WhisperНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Какой размер модели выбрать для CPU?
Для баланса скорости и точности на русском — medium с compute_type=int8. Если важна скорость и объемы большие, бери small.
Whisper понимает русский?
Да, отлично. Модели multilingual поддерживают русский из коробки, достаточно указать language="ru" для стабильности.
Уходит ли мое аудио на сторонние серверы?
Нет. Модель работает локально на твоем VPS, файлы не покидают сервер — это ключевое отличие от облачных API распознавания.