Lokalna transkrypcja nagrań po polsku z Whisper pozwala zamieniać rozmowy, wywiady, wykłady, podcasty i materiały wideo na tekst bez wysyłania plików do zewnętrznej usługi. Po zainstalowaniu programu i pobraniu modelu cały proces może odbywać się na komputerze użytkownika.

  • Do transkrypcji języka polskiego należy używać modeli wielojęzycznych, na przykład small, medium, large-v3 lub turbo, a nie wersji zakończonych dopiskiem .en.
  • Najprostsza oficjalna instalacja wykorzystuje pakiet openai-whisper, środowisko Python i program FFmpeg.
  • Model small jest rozsądnym punktem startowym dla większości polskich nagrań. Słabszy komputer może korzystać z base, a mocniejszy z medium, large-v3 lub turbo.
  • Faster-whisper i whisper.cpp mogą działać szybciej lub zużywać mniej pamięci niż referencyjna implementacja OpenAI.
  • Automatyczną transkrypcję trzeba sprawdzić, zwłaszcza pod kątem nazw własnych, liczb, skrótów i fragmentów z kilkoma osobami mówiącymi jednocześnie.

Na czym polega lokalna transkrypcja z Whisper?

Whisper jest rodziną modeli automatycznego rozpoznawania mowy. Potrafi rozpoznawać język nagrania, zamieniać mowę na tekst oraz – w przypadku wybranych modeli – tłumaczyć wypowiedzi na język angielski. Oficjalna implementacja przetwarza nagrania w kolejnych, zachodzących na siebie oknach o długości około 30 sekund.

Określenie „lokalna transkrypcja” oznacza, że plik audio lub wideo jest analizowany na komputerze użytkownika. Pierwsza instalacja oraz pobranie modelu zwykle wymagają połączenia z internetem, ale później nagrania mogą być przetwarzane bez przesyłania ich do zewnętrznego API.

Takie rozwiązanie przydaje się szczególnie przy:

  • wywiadach i materiałach dziennikarskich,
  • notatkach ze spotkań,
  • nagraniach wykładów i szkoleń,
  • podcastach i filmach,
  • tworzeniu napisów SRT lub VTT,
  • nagraniach firmowych, których nie powinno się wysyłać do przypadkowej usługi internetowej.

Lokalne działanie nie gwarantuje jednak pełnego bezpieczeństwa. Pliki nadal trzeba chronić przed dostępem innych użytkowników komputera, wykonywać kopie zapasowe i usuwać materiały, które nie są już potrzebne.

Lokalna transkrypcja nagrań po polsku z Whisper – praktyczny poradnik i rozwiązania
Źródło: Canva Pro

Którą wersję Whisper wybrać?

Nazwa Whisper może odnosić się zarówno do modeli OpenAI, jak i kilku różnych programów służących do ich uruchamiania. W praktyce najczęściej spotyka się trzy rozwiązania.

Oficjalny openai-whisper

To referencyjna implementacja opublikowana przez OpenAI. Działa w Pythonie, korzysta z PyTorch i wymaga zainstalowanego programu FFmpeg. Jest dobrze udokumentowana i stanowi dobry wybór do nauki oraz prostych zastosowań. 

Najważniejsze zalety:

  • prosta obsługa z wiersza poleceń,
  • automatyczne pobieranie modeli,
  • eksport transkrypcji i napisów,
  • możliwość wykorzystania CPU lub zgodnej karty graficznej,
  • łatwa integracja z własnym skryptem w Pythonie.

Minusem może być stosunkowo wysokie zużycie pamięci i wolniejsze działanie na procesorze.

Faster-whisper

Faster-whisper jest implementacją opartą na silniku CTranslate2. Obsługuje między innymi obliczenia INT8, znaczniki czasu dla pojedynczych słów, przetwarzanie wsadowe i filtr VAD, który pomaga pomijać fragmenty bez mowy. Nie wymaga oddzielnej instalacji systemowego FFmpeg, ponieważ wykorzystuje bibliotekę PyAV. 

Według testów opublikowanych przez twórców faster-whisper może działać szybciej i zużywać mniej pamięci niż implementacja OpenAI, jednak rzeczywisty wynik zależy od modelu, procesora, karty graficznej i ustawień transkrypcji. 

To dobry wybór, gdy:

  • regularnie transkrybujesz długie materiały,
  • korzystasz z CPU i chcesz użyć kwantyzacji INT8,
  • masz kartę NVIDIA,
  • budujesz własną aplikację lub automatyczny proces przetwarzania plików.

Whisper.cpp

Whisper.cpp to lekka implementacja w językach C i C++. Może działać bez Pythona, obsługuje kwantyzowane modele i jest dostępna między innymi na Windowsie, macOS, Linuksie, urządzeniach mobilnych oraz Raspberry Pi. Projekt oferuje także obsługę różnych metod przyspieszania, w tym Metal na komputerach Apple, CUDA, Vulkan, OpenVINO i ROCm. 

Whisper.cpp warto rozważyć na:

  • komputerach Mac z Apple Silicon,
  • słabszych komputerach bez wydajnej karty graficznej,
  • urządzeniach mobilnych i miniaturowych komputerach,
  • stanowiskach, na których nie chcesz instalować środowiska Python,
  • komputerach używanych do dyktowania i prostych aplikacji offline.

Dla początkującego użytkownika oficjalny openai-whisper będzie najłatwiejszy do zrozumienia, natomiast faster-whisper zwykle lepiej sprawdza się przy większej liczbie plików.

Jaki model Whisper wybrać do języka polskiego?

Whisper obsługuje język polski jako język oznaczony kodem pl. Do polskich nagrań należy wybierać modele wielojęzyczne. Modele tiny.en, base.en, small.en i medium.en są przeznaczone wyłącznie do języka angielskiego. 

Oficjalne dane OpenAI wskazują następujące przybliżone wymagania dotyczące pamięci VRAM:

  • tiny i base – około 1 GB,
  • small – około 2 GB,
  • medium – około 5 GB,
  • turbo – około 6 GB,
  • large – około 10 GB.

Są to wartości orientacyjne dla oficjalnej implementacji. Faktyczne zużycie pamięci może się różnić zależnie od systemu, wersji bibliotek i sposobu uruchomienia modelu. 

Model base sprawdzi się do szybkich notatek, prostych nagrań i pracy na słabszym CPU. Może jednak częściej mylić końcówki słów, nazwy własne i wypowiedzi nagrane w trudnych warunkach.

Model small jest zwykle najlepszym wyborem na początek. Zapewnia rozsądny kompromis między szybkością, jakością a wymaganiami sprzętowymi.

Model medium warto wypróbować przy wywiadach, nagraniach eksperckich i materiałach zawierających bardziej specjalistyczne słownictwo. Na samym CPU może działać wyraźnie wolniej.

Model large-v3 jest przeznaczony do zadań, w których jakość jest ważniejsza niż czas przetwarzania. Wymaga jednak mocniejszego sprzętu.

Model turbo jest zoptymalizowaną pod kątem szybkości wersją modelu large-v3. OpenAI informuje o znacznym przyspieszeniu przy niewielkim spadku jakości, ale efekty dla konkretnego polskiego nagrania najlepiej ocenić na własnej próbce. Model turbo służy do transkrypcji, lecz nie powinien być wybierany do tłumaczenia nagrań na angielski. 

Jak zainstalować Whisper i wykonać polską transkrypcję?

Poniższa metoda wykorzystuje oficjalny pakiet openai-whisper. Przed rozpoczęciem utwórz kopię nagrania i pracuj na pliku testowym trwającym kilka minut. Pozwoli to ocenić szybkość działania przed przetwarzaniem wielogodzinnego materiału.

Krok 1. Zainstaluj Pythona i utwórz osobne środowisko

Whisper najlepiej instalować w oddzielnym środowisku wirtualnym. Dzięki temu jego biblioteki nie będą kolidowały z innymi programami w Pythonie.

W Windows PowerShell wpisz:

python -m venv whisper-env

.\whisper-env\Scripts\Activate.ps1

python -m pip install –upgrade pip

W systemie macOS lub Linux:

python3 -m venv whisper-env

source whisper-env/bin/activate

python -m pip install –upgrade pip

Jeżeli instalacja bibliotek kończy się błędami, praktycznym rozwiązaniem jest użycie Pythona 3.11. Oficjalne repozytorium wskazuje oczekiwaną zgodność kodu z wersjami Python 3.8–3.11. 

Krok 2. Zainstaluj FFmpeg

Oficjalny openai-whisper używa FFmpeg do odczytywania plików audio i ścieżek dźwiękowych z filmów. FFmpeg obsługuje wiele formatów wejściowych i może konwertować między formatami multimedialnymi. 

Windows z Chocolatey:

choco install ffmpeg

Windows ze Scoop:

scoop install ffmpeg

macOS z Homebrew:

brew install ffmpeg

Ubuntu lub Debian:

sudo apt update

sudo apt install ffmpeg

Po instalacji sprawdź działanie:

ffmpeg -version

Jeżeli system nie rozpoznaje polecenia, trzeba ponownie uruchomić terminal albo dodać katalog FFmpeg do zmiennej PATH.

Krok 3. Zainstaluj openai-whisper

W aktywnym środowisku wpisz:

python -m pip install -U openai-whisper

Jest to podstawowa komenda instalacyjna podawana w oficjalnym repozytorium projektu. 

Sprawdź, czy program działa:

whisper –help

Krok 4. Wykonaj pierwszą transkrypcję po polsku

Umieść plik w łatwo dostępnym katalogu i uruchom:

whisper „nagranie.mp3” –model small –language Polish –task transcribe –output_format txt –output_dir „wyniki”

Parametr –language Polish pomija automatyczne rozpoznawanie języka i od razu informuje model, że nagranie jest po polsku. Przy materiałach zawierających polski i angielski warto sprawdzić również wariant bez tego parametru.

Polecenie utworzy tekst w katalogu wyniki. Whisper może zapisywać rezultaty między innymi jako TXT, SRT, VTT, TSV i JSON. (GitHub)

Krok 5. Wygeneruj napisy do filmu

Do utworzenia napisów w formacie SRT użyj:

whisper „film.mp4” –model small –language Polish –task transcribe –output_format srt –output_dir „napisy”

Plik SRT można później otworzyć w edytorze napisów albo zaimportować do programu do montażu wideo. Whisper potrafi odczytać ścieżkę dźwiękową bezpośrednio z wielu plików filmowych, ponieważ korzysta z FFmpeg.

Jeśli potrzebujesz napisów internetowych, zmień format:

whisper „film.mp4” –model small –language Polish –output_format vtt –output_dir „napisy”

Krok 6. Uruchom model na CPU lub GPU

Na komputerze bez obsługiwanej karty graficznej można jawnie wybrać procesor:

whisper „nagranie.wav” –model small –language Polish –device cpu –fp16 False

Na zgodnej karcie NVIDIA można wskazać urządzenie CUDA:

whisper „nagranie.wav” –model small –language Polish –device cuda

Samo posiadanie układu NPU w nowym laptopie nie oznacza, że oficjalny openai-whisper automatycznie z niego skorzysta. Referencyjna implementacja opiera się przede wszystkim na środowisku PyTorch, CPU i obsługiwanych akceleratorach. Inne zaplecza sprzętowe są częściej dostępne w projektach takich jak whisper.cpp.

Krok 7. Sprawdź i popraw wynik

Po zakończeniu transkrypcji odsłuchaj przynajmniej kilka fragmentów:

  • początek nagrania,
  • miejsca ze zmianą rozmówcy,
  • fragmenty z nazwami własnymi,
  • wypowiedzi zawierające liczby i daty,
  • ciche lub zaszumione części,
  • momenty, w których kilka osób mówi jednocześnie.

Whisper może tworzyć fragmenty tekstu, których nie wypowiedziano, powtarzać zdania lub błędnie odczytywać trudniejsze fragmenty. OpenAI opisuje takie halucynacje i powtórzenia jako znane ograniczenia modeli. 

Jak uruchomić faster-whisper po polsku?

Faster-whisper jest dobrym rozwiązaniem dla użytkowników, którzy chcą przetwarzać pliki automatycznie albo uzyskać lepszą wydajność na CPU.

Instalacja:

python -m pip install faster-whisper

Minimalny skrypt dla procesora:

from pathlib import Path

from faster_whisper import WhisperModel

audio_path = Path(„nagranie.mp3”)

output_path = Path(„transkrypcja.txt”)

model = WhisperModel(

    „small”,

    device=”cpu”,

    compute_type=”int8″,

)

segments, info = model.transcribe(

    str(audio_path),

    language=”pl”,

    beam_size=5,

    vad_filter=True,

)

with output_path.open(„w”, encoding=”utf-8″) as output_file:

    for segment in segments:

        text = segment.text.strip()

        if text:

            output_file.write(text + „\n”)

print(f”Wykryty język: {info.language}”)

print(f”Zapisano wynik w: {output_path}”)

Ustawienie compute_type=”int8″ może zmniejszyć zużycie pamięci podczas pracy na CPU. Parametr vad_filter=True włącza wykrywanie aktywności głosowej, dzięki czemu długie odcinki ciszy mogą zostać pominięte. Faster-whisper obsługuje również znaczniki czasu dla poszczególnych słów. 

Dla karty NVIDIA konfiguracja może wyglądać tak:

model = WhisperModel(

    „small”,

    device=”cuda”,

    compute_type=”float16″,

)

Wymagania dotyczące CUDA, cuDNN i CTranslate2 zmieniają się wraz z wersjami bibliotek, dlatego przed instalacją akceleracji GPU trzeba sprawdzić aktualną sekcję „Requirements” w repozytorium faster-whisper. 

Jak przygotować nagranie, aby Whisper popełniał mniej błędów?

Największy model nie naprawi nagrania, na którym głos jest zagłuszony przez muzykę, echo albo inne osoby. Jakość źródła często ma większe znaczenie niż przejście z modelu small na medium.

Przed transkrypcją warto:

  • usunąć bardzo długą ciszę na początku i końcu,
  • ograniczyć hałas oraz jednostajny szum,
  • wyrównać zbyt cichy poziom głosu,
  • rozdzielić wielogodzinne nagranie na logiczne części,
  • unikać wielokrotnej konwersji między stratnymi formatami,
  • zachować oryginalny plik przed rozpoczęciem obróbki.

Whisper zwykle radzi sobie bez ręcznej konwersji MP3, M4A czy MP4. Gdy jednak plik nie jest prawidłowo odczytywany, można przygotować standardowy plik WAV:

ffmpeg -i „nagranie.m4a” -ar 16000 -ac 1 -c:a pcm_s16le „nagranie-16khz.wav”

Polecenie tworzy jednokanałowy plik WAV 16 kHz z dźwiękiem PCM 16-bit. Taki format jest szczególnie przydatny przy diagnozowaniu problemów oraz korzystaniu z narzędzi wymagających określonego wejścia, na przykład podstawowego programu whisper-cli w whisper.cpp. 

Jak poprawić nazwy własne i specjalistyczne słownictwo?

Nazwiska, nazwy miejscowości, oznaczenia produktów i skróty branżowe należą do najczęstszych źródeł błędów. Oficjalny Whisper obsługuje parametr –initial_prompt, za pomocą którego można przekazać krótki kontekst lub listę spodziewanych nazw. 

Przykład:

whisper „konferencja.mp3” \

  –model medium \

  –language Polish \

  –initial_prompt „Ankree, Ryzen AI, Intel Core Ultra, Copilot+ PC, OpenVINO” \

  –output_format txt

Prompt nie jest słownikiem wymuszającym konkretną pisownię. Może zwiększyć prawdopodobieństwo poprawnego rozpoznania podanych terminów, ale wynik nadal wymaga kontroli.

Przy powtarzalnym procesie dobrze jest prowadzić osobny plik ze słownictwem obejmującym:

  • imiona i nazwiska rozmówców,
  • nazwy firm i produktów,
  • skróty techniczne,
  • miejscowości,
  • charakterystyczne terminy branżowe.

Czy Whisper rozpoznaje rozmówców?

Podstawowy Whisper tworzy transkrypcję i znaczniki czasu, ale nie jest kompletnym systemem diarizacji, czyli automatycznego ustalania, która osoba mówi w danym momencie. OpenAI zaznacza, że funkcje związane z klasyfikacją mówców i diarizacją nie zostały solidnie ocenione jako podstawowe zastosowanie modelu. 

Przy rozmowie dwóch lub większej liczby osób można:

  • nagrywać każdą osobę na osobnej ścieżce,
  • podzielić materiał ręcznie,
  • wykorzystać dodatkowe narzędzie do diarizacji,
  • oznaczyć rozmówców podczas ręcznej korekty.

Najlepszy rezultat daje nagranie wielośladowe. Każdą ścieżkę można wtedy przetworzyć oddzielnie, a później połączyć tekst na podstawie znaczników czasu.

Najczęstsze problemy podczas lokalnej transkrypcji

Podczas lokalnej transkrypcji najczęściej pojawiają się problemy z dokładnością rozpoznawania mowy, jakością nagrania, wydajnością komputera oraz obsługą formatów audio i wideo. Ich źródłem może być zarówno niewłaściwy model językowy, jak i hałas w tle, słaby mikrofon czy zbyt mała ilość pamięci RAM.

Whisper nie rozpoznaje polecenia

Najczęściej środowisko wirtualne nie jest aktywne albo katalog z programami Pythona nie znajduje się w zmiennej PATH.

Spróbuj:

python -m whisper „nagranie.mp3” –model small –language Polish

Można również sprawdzić instalację:

python -m pip show openai-whisper

Pojawia się błąd dotyczący FFmpeg

Sprawdź:

ffmpeg -version

Jeśli polecenie nie działa, zainstaluj FFmpeg ponownie albo dodaj jego katalog do zmiennej PATH.

Transkrypcja na CPU jest bardzo wolna

W takiej sytuacji:

  • zmień model z medium na small lub base,
  • dodaj –fp16 False,
  • zamknij programy mocno obciążające procesor,
  • wypróbuj faster-whisper z compute_type=”int8″,
  • podziel długie nagranie na krótsze części.

Nie należy porównywać czasu działania wyłącznie na podstawie długości pliku. Znaczenie ma również liczba wypowiadanych słów, długość ciszy, ustawienia dekodowania i wybrana implementacja. 

Model powtarza zdania lub dopisuje tekst w ciszy

Usuń długie fragmenty bez mowy albo użyj faster-whisper z filtrem VAD. W oficjalnym Whisper można też przetestować wyłączenie przekazywania poprzedniego tekstu między kolejnymi fragmentami:

whisper „nagranie.mp3” \

  –model small \

  –language Polish \

  –condition_on_previous_text False

Może to ograniczyć zapętlanie, ale czasami zmniejsza spójność między kolejnymi częściami transkrypcji. Problem powtórzeń i halucynacji jest znanym ograniczeniem architektury Whisper. 

W tekście brakuje przecinków lub pojawiają się błędne liczby

Whisper nie zastępuje redakcji językowej. W szczególności trzeba ręcznie kontrolować:

  • numery telefonów,
  • ceny i wartości procentowe,
  • daty,
  • numery modeli,
  • adresy,
  • skróty,
  • interpunkcję w bardzo długich wypowiedziach.

Nie powinno się automatycznie poprawiać takich danych modelem językowym bez porównania z nagraniem. Model może utworzyć zdanie brzmiące naturalnie, ale zmienić sens wypowiedzi.

Prywatność i bezpieczna praca z nagraniami

Lokalna transkrypcja ogranicza konieczność przesyłania nagrań do zewnętrznego dostawcy, lecz bezpieczeństwo zależy również od konfiguracji komputera.

Dobre praktyki obejmują:

  • przechowywanie nagrań na szyfrowanym dysku,
  • zabezpieczenie konta użytkownika silnym hasłem,
  • unikanie katalogów automatycznie synchronizowanych z chmurą,
  • usuwanie plików tymczasowych,
  • ograniczenie dostępu do wyników transkrypcji,
  • ustalenie terminu usunięcia nagrań źródłowych.

Przed nagrywaniem i przetwarzaniem rozmowy należy upewnić się, że ma się do tego odpowiednią zgodę lub inną właściwą podstawę. OpenAI odradza wykorzystywanie Whisper do transkrybowania osób nagranych bez ich zgody oraz do zastosowań wysokiego ryzyka, w których błędny zapis mógłby wpłynąć na ważne decyzje. 

Kiedy lokalna transkrypcja z Whisper jest dobrym wyborem?

Whisper lokalnie sprawdzi się najlepiej, gdy użytkownik:

  • chce zachować kontrolę nad nagraniami,
  • regularnie przetwarza większą liczbę plików,
  • potrzebuje napisów do własnych filmów,
  • akceptuje konieczność instalacji i konfiguracji programu,
  • może przeznaczyć czas na sprawdzenie transkrypcji.

Nie jest natomiast idealnym rozwiązaniem, gdy potrzebna jest gotowa, stuprocentowo poprawna transkrypcja bez korekty, niezawodne rozpoznawanie wielu rozmówców albo natychmiastowe napisy na żywo. Whisper w podstawowej postaci nie jest natywnym systemem strumieniowym, a jego wyniki mogą zawierać błędy i halucynacje. 

Najbardziej uniwersalny zestaw na początek to oficjalny openai-whisper i model small. Przy długich nagraniach lub słabszym CPU warto przetestować faster-whisper z kwantyzacją INT8. Na komputerach Apple i urządzeniach o ograniczonych zasobach dobrym kierunkiem może być whisper.cpp.