Whisper lokalnie: transkrypcja bez API za 0 PLN, setup w 15 minut
Transkrypcja audio na twoim serwerze zamiast w chmurze OpenAI to już nie eksperyment. Whisper-large-v3 działa na CPU, zajmuje 5 GB RAM, i kosztuje dokładnie …
Transkrypcja audio na twoim serwerze zamiast w chmurze OpenAI to już nie eksperyment. Whisper-large-v3 działa na CPU, zajmuje 5 GB RAM, i kosztuje dokładnie 0 PLN za każdą minutę. Pokażemy, jak to uruchomić w Pythonie bez wysyłania danych do chmury.
Dlaczego lokalnie stało się praktyczne w 2024–2026
Przez lata transkrypcja audio to była domena API — wysyłasz plik, czekasz, płacisz. OpenAI Whisper API kosztuje 0,06 USD za minutę audio [1]. Jeśli transkrybujesz 1000 minut miesięcznie, to 60 USD co miesiąc, czyli 720 PLN rocznie. Lokalnie: zero.
Ale to nie tylko pieniądze. Whisper-large-v3 w float16 transkrybuje 11 sekund audio w około 15 sekund na CPU [1]. Wystarczy 5 GB RAM [1]. Nie potrzebujesz GPU, nie potrzebujesz chmury. Dane nigdy nie opuszczają twojego serwera — ważne dla firm, które mają compliance, lub dla każdego, komu zależy na prywatności.
Ograniczenie: jeśli transkrybujesz ponad 10 000 minut miesięcznie, API może być szybsze. Lokalnie czekasz na CPU, API ma dedykowane serwery. Ale dla większości builderów — <1000 minut/miesiąc — lokalnie wygrywa.
Trzy modele Whisper, które warto znać
Nie ma jednego "Whisper". Są trzy główne ścieżki, każda dla innego scenariusza.
whisper.cpp (ggml-medium): najszybszy na CPU
whisper.cpp to implementacja Whisper w C++, zoptymalizowana dla CPU. Model ggml-medium zajmuje około 150 MB [2]. Transkrybujesz lokalnie, bez Pythona, bez zależności. Idealne, jeśli chcesz minimalistyczne rozwiązanie.
Komenda transkrypcji wygląda tak: konwertujesz audio do WAV 16 kHz mono, potem uruchamiasz main.exe -m models/ggml-medium.bin -f final.wav -otxt [6]. Wynik: plik tekstowy.
Wada: nie ma integracji z Pythonem bez wrappera. Jeśli budujesz aplikację webową, to nie najlepszy wybór.
Faster-Whisper: Python + CUDA, 2–3x szybciej
Faster-Whisper to port Whisper do Pythona z optymalizacją dla CUDA (GPU) i CPU. Instalujesz pip install faster-whisper, pobierasz model, transkrybujesz. Działa 2–3 razy szybciej niż oryginalny Whisper [1].
To nasz rekomendowany punkt wejścia dla builderów. Dlaczego? Bo Python, bo szybko, bo działa offline.
vLLM + whisper-large-v3: serwer HTTP
Red Hat pokazuje, jak uruchomić whisper-large-v3 w float16 przez vLLM jako serwer HTTP [3]. Endpoint /v1/audio/transcriptions jest kompatybilny z OpenAI API [3]. Wysyłasz POST request, dostajesz JSON, tak jak w API — ale wszystko dzieje się lokalnie.
To rozwiązanie dla firm, które chcą drop-in replacement dla OpenAI API bez zmiany kodu aplikacji.
Jak uruchomić Faster-Whisper w Pythonie: 5 kroków
Zaczynamy od zera. Poniżej konkretne komendy, które działają.
Krok 1: Instalacja
pip install faster-whisper
To wszystko. Brak GPU? Nie problem. Faster-Whisper automatycznie używa CPU.
Krok 2: Pobranie modelu
from faster_whisper import WhisperModel
model = WhisperModel("medium", device="cpu", compute_type="int8")
Przy pierwszym uruchomieniu model pobiera się automatycznie (~1.5 GB dla medium). Możesz też wybrać "large-v3" — będzie dokładniejszy, ale wolniejszy.
Krok 3: Konwersja audio do WAV 16 kHz mono
Whisper wymaga WAV 16 kHz mono. Jeśli masz MP3 lub inny format, konwertujesz ffmpegiem:
ffmpeg -i nagranie.mp3 -ar 16000 -ac 1 nagranie.wav
Krok 4: Transkrypcja
segments, info = model.transcribe("nagranie.wav", language="pl", beam_size=5, temperature=0.0)
for segment in segments:
print(f"{segment.start:.2f}s - {segment.end:.2f}s: {segment.text}")
Parametry:
language="pl": jeśli wiesz, że audio jest po polsku, model będzie dokładniejszybeam_size=5: zwiększa dokładność, ale transkrypcja trwa dłużejtemperature=0.0: deterministyczne wyniki
Krok 5: Integracja z aplikacją
Najprostszy wrapper:
from faster_whisper import WhisperModel
class Transcriber:
def __init__(self):
self.model = WhisperModel("medium", device="cpu", compute_type="int8")
def transcribe(self, audio_path):
segments, info = self.model.transcribe(audio_path, language="pl")
return " ".join([segment.text for segment in segments])
transcriber = Transcriber()
result = transcriber.transcribe("meeting.wav")
print(result)
Gotowe. Możesz to teraz zawinąć w Flask, FastAPI, lub użyć jako CLI.
Aplikacje desktopowe: Buzz, WhisperDesk, OpenWhisper
Nie chcesz pisać kodu? Są aplikacje.
Buzz: 100% offline, open-source, zero konfiguracji
Buzz to darmowa, open-source aplikacja do transkrypcji audio [5]. Uruchamiasz, wybierasz plik, czekasz. Wszystko offline, bez API keys, bez internetu [5].
Idealne dla dziennikarzy, badaczy, każdego, kto transkrybuje audio bez chęci programowania.
WhisperDesk: GUI dla Windows/macOS/Linux
WhisperDesk to darmowa aplikacja desktopowa [4]. Pozycjonowana dla confidential meetings — media nigdy nie opuszczają urządzenia [4]. Interfejs graficzny, obsługa video, offline.
Dla kogoś, kto chce "kliknij i transkrybuj", to rozwiązanie.
OpenWhisper: PyQt6, globalne hotkeys, auto-paste
OpenWhisper to aplikacja w PyQt6 z Faster-Whisper [2]. Modele pobierają się przy pierwszym uruchomieniu (~150 MB) [2]. Działa 100% offline [2]. Globalne hotkeys — nagrywasz, puszczasz, wynik trafia do schowka [2].
Dla kogoś, kto chce transkrybować bez otwierania aplikacji, to best-in-class.
Red Hat AI pokazuje, jak skalować
Red Hat opisuje, jak uruchomić whisper-large-v3 w float16 na CPU [3]. Benchmark: 11 sekund audio transkrybuje się w około 15 sekund [3]. Zużycie RAM: 5 GB [3].
Konfiguracja: vLLM + whisper-large-v3, endpoint /v1/audio/transcriptions kompatybilny z OpenAI API [3]. Oznacza to, że możesz zamiast wysyłać do OpenAI, wysyłać do swojego serwera. Kod aplikacji się nie zmienia.
To pokazuje, że lokalnie można skalować. Nie jest to "eksperyment dla hobbyistów" — duże organizacje robią to w produkcji.
Kiedy lokalnie, kiedy API — i jak zacząć dziś
Werdykt zależy od trzech rzeczy: wolumenu, compliance, i latency.
Lokalnie, jeśli:
- Transkrybujesz <1000 minut miesięcznie (oszczędzasz 720 PLN rocznie)
- Masz compliance (RODO, dane wrażliwe)
- Latency <1 sekundy jest ważna
API, jeśli:
- Transkrybujesz >10 000 minut miesięcznie
- Potrzebujesz multi-language real-time streaming
- Nie chcesz zarządzać infrastrukturą
First step: zainstaluj Faster-Whisper, przetestuj na 5 minutach audio
pip install faster-whisper
python -c "
from faster_whisper import WhisperModel
model = WhisperModel('medium', device='cpu', compute_type='int8')
segments, info = model.transcribe('test.wav', language='pl')
for segment in segments:
print(segment.text)
"
Jeśli to działa, masz baseline. Teraz decydujesz: GUI (Buzz), Python API (Faster-Whisper), czy serwer HTTP (vLLM).
Źródła
[1] Self-Hosted Whisper in 2026: Local AI Transcription Guide — https://www.digitalapplied.com/blog/local-speech-to-text-whisper-self-hosted-transcription-2026
[2] OpenWhisper — Desktop App with Faster-Whisper — https://github.com/Knuckles92/OpenWhisper
[3] Private Speech Transcription with Whisper and Red Hat AI — https://developers.redhat.com/articles/2026/03/06/private-transcription-whisper-red-hat-ai
[4] WhisperDesk — Free Local AI Audio & Video Transcription — https://pvas-development.github.io/whisperdesk/
[5] This Free Whisper App Runs Fully Offline (No Cloud, No API) — https://www.youtube.com/watch?v=-Z-Clxo-v-g
[6] Transcribe Audio & Video 100% Locally With AI (Whisper.cpp Setup 2026) — https://www.youtube.com/watch?v=-yBIGVs0DO0
Founder Aion Automation. Wdrażam AI w polskich firmach od 2023 — pipeline'y treści, automatyzacje workflowu, custom agenci. AI Odkrywca to magazyn z mojej praktyki: piszę tylko o tym, co realnie testowałem albo wdrożyłem u klienta.