Kokoro wciąż pojawia się wszędzie — było na szczycie Hacker News, prowadzi w otwartych rankingach Tekst na mowę, a twórcy w kółko pytają, czy model o 82 mln parametrów, który działa na zwykłym CPU, naprawdę może zastąpić płatne API głosowe. Zainstalowaliśmy go więc, uruchomiliśmy na laptopie i wygenerowaliśmy próbki, które możesz odtworzyć poniżej. To praktyczny „teardown”: czym jest Kokoro, jak naprawdę brzmi, dwie pułapki konfiguracji, które zabrały nam czas, oraz kiedy lepszym wyborem jest narzędzie hostowane. Źródło: github.com/hexgrad/kokoro (Apache-2.0).
Czym jest Kokoro i kto je stworzył?
Kokoro to model Tekst na mowę o otwartych wagach, opublikowany przez hexgrad jako Kokoro-82M. Nagłówek jest w samej nazwie: 82 miliony parametrów — malutko jak na standardy 2026 roku, na tyle mało, że da się uruchomić nawet na telefonie — a mimo to generuje naturalną, ekspresyjną narrację. Bazuje na linii StyleTTS 2 i jest wydany na liberalnej licencji Apache-2.0, więc naprawdę nadaje się do komercyjnego użycia za darmo.
Na dzień 2026-07-11 główne repo hexgrad/kokoro ma około 7 900 gwiazdek na GitHubie. Uruchomiliśmy je przez społecznościowy runtime ONNX thewh1teagle/kokoro-onnx (około 2 600 gwiazdek, MIT) — to najprostszy sposób, by odpalić je na CPU bez instalowania PyTorch.
Zaglądając do właściwego pliku wag, naliczyliśmy 54 wbudowane głosy w 9 grupach językowych i akcentowych — amerykański i brytyjski angielski, hiszpański, francuski, hindi, włoski, japoński, brazylijski portugalski oraz mandaryński chiński. Głosy w amerykańskim angielskim są wyraźnie najbardziej dopracowane.
Faktycznie to uruchomiliśmy (Apple M3 Pro, tylko CPU)
Bez GPU, bez chmury — po prostu MacBook Pro z M3 Pro i 18 GB RAM. Oto szczery zapis krok po kroku.
Instalacja i wagi
Paczka Pythona instaluje się w kilka sekund: pip install kokoro-onnx soundfile. Ale tu jest pierwsza pułapka — paczka pip zawiera kod, nie model. Musisz ręcznie pobrać dwa pliki ze strony wydań kokoro-onnx na GitHubie: kokoro-v1.0.onnx (310 MB) oraz voices-v1.0.bin (27 MB). Szybki start to pomija, więc pierwsze uruchomienie kończy się błędem braku pliku, dopóki nie pobierzesz wag.
Błąd ścieżki espeak-ng (ten, który naprawdę zabrał nam czas)
Kokoro zamienia tekst na fonemy przez espeak-ng. Przy pierwszej syntezie trafiliśmy na to:
Error processing file '/Users/runner/work/espeakng-loader/.../espeak-ng-data/phontab': No such file or directoryTa ścieżka /Users/runner/work/ to oczywista wskazówka: koło (wheel) pip espeakng-loader pakuje libespeak-ng, który został skompilowany w CI z twardo zakodowaną ścieżką do danych — taką, która nie istnieje na Twojej maszynie. Najbardziej frustrujące: ustawienie zmiennej środowiskowej ESPEAK_DATA_PATH nic nie daje, bo kokoro-onnx jej nie odczytuje — bierze ścieżkę danych wprost z dołączonego loadera.
Naprawa, która zadziałała: zainstaluj systemowy espeak-ng i wskaż go Kokoro wprost przez EspeakConfig:
brew install espeak-ng # macOS; apt install espeak-ng on Linux
from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
lib_path="/opt/homebrew/lib/libespeak-ng.dylib",
data_path="/opt/homebrew/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)Po tym generowanie po prostu działa. Jeśli kiedykolwiek walczyłeś z dokładnie takim błędem phontab: No such file, to jest rozwiązanie.
Szybkość (pomiary, po rozgrzaniu)
Na samym CPU model ładuje się w około 1.7 sekundy, a synteza jest komfortowo szybsza niż czas rzeczywisty. Akapit narracji trwający 22 sekundy wyrenderował się w 3.5 sekundy — współczynnik czasu rzeczywistego około 0.16×, czyli mniej więcej sześć razy szybciej niż odtwarzanie. Krótkie pojedyncze zdania wracają w 1–2 sekundy. Jak na tak mały model na laptopie, to naprawdę przepustowość gotowa do produkcji. Oto rzeczywisty wykres fali dla tego renderu akapitu:

Próbki, które wygenerowaliśmy (bez edycji)
Każdy klip poniżej został wygenerowany przez nas w Kokoro na CPU M3 Pro opisanym wyżej — surowe wyjście modelu, bez czyszczenia i bez post-processingu. Odtwórz i oceń jakość samodzielnie.
Wygenerowane przez VisionStory z Kokoro-82M przez kokoro-onnx, 2026-07-11. Zwróć uwagę na „zdradzający” szczegół: to czysta ścieżka głosu — ale to tylko głos. Nie ma twarzy, nie ma ruchu ust, nie ma prezentera na ekranie. Ta luka jest sednem kolejnej sekcji.
Szczery werdykt: mocne strony i realne ograniczenia
Co naprawdę zrobiło na nas wrażenie:
- Jakość na bajt jest imponująca. Przy 82 mln parametrów głosy w amerykańskim angielskim są naturalne i ekspresyjne — na tyle blisko płatnego TTS, że większość słuchaczy nie uzna tego za podejrzane w krótkim klipie.
- To naprawdę działa na CPU i jest szybkie. Sześć razy szybciej niż czas rzeczywisty na laptopie bez GPU to główna zaleta — i faktycznie się broni.
- Naprawdę darmowe i przyjazne komercyjnie. Apache-2.0 bez rozliczania za znaki. Przy dużym wolumenie lektora to ekonomia, którą trudno pobić.
Gdzie się wykłada — i to są realne rzeczy:
- Brak klonowania głosu. Dostajesz 54 stałe presety głosów. Nie sklonujesz własnego głosu ani głosu klienta — jeśli to Twój scenariusz, Kokoro to ślepa uliczka.
- Jakość angielskiego zależy od espeak-ng, co oznacza opisany wyżej błąd paczkowania, plus okazjonalnie źle wymówione imię, marka lub skrót.
- Długi tekst wymaga ręcznego dzielenia. Jest limit długości fonemów na wywołanie, więc długie scenariusze trzeba samemu pociąć i posklejać audio.
- Głosy nieangielskie bywają nierówne — zauważalnie bardziej zmienne niż flagowy zestaw amerykańskiego angielskiego.
- Wyjściem jest goły WAV. Brak znaczników czasowych słów, brak wizemów — nic, co od razu napędzi lip-sync.
- To tylko głos. Brak twarzy, brak wideo. Żeby dostać mówiącego prezentera, musisz połączyć Kokoro z osobnym systemem lip-sync lub awatara i samodzielnie ogarnąć timing.
Self-host Kokoro vs narzędzie hostowane: co wybrać?
Kokoro i hostowane narzędzie awatara rozwiązują różne połowy problemu. Kokoro daje głos; narzędzie takie jak VisionStory daje mówiącego prezentera — głos, twarz i lip-sync w jednym wyjściu. Oto uczciwy kompromis.
| Kokoro (self-host) | VisionStory (hostowane) | |
|---|---|---|
| Koszt | Darmowe (Twój sprzęt) | Subskrypcja / Kredyty |
| Konfiguracja | pip + wagi 330 MB + poprawka espeak-ng | Brak — działa w przeglądarce |
| Co dostajesz | Tylko ścieżkę głosu (WAV) | Wideo z mówiącym awatarem (głos + twarz + lip-sync) |
| Klonowanie głosu | Nie — 54 presety | Tak — sklonuj własny głos |
| Szybkość na klip | ~0.16× czasu rzeczywistego na CPU (sekundy) | Sekundy, hostowane — bez lokalnych obliczeń |
| Użycie komercyjne | Tak (Apache-2.0) | Tak (w zależności od planu) |
| Utrzymanie | Ty łatasz espeak, zależności, dzielenie tekstu | Brak |
| Najlepsze, gdy | Potrzebujesz tylko darmowej ścieżki głosu i umiesz kodować | Potrzebujesz gotowego mówiącego wideo — szybko |
Wybierz Kokoro, jeśli potrzebujesz po prostu darmowego lektora, dobrze czujesz się w Pythonie i ogarniesz twarz oraz lip-sync osobno (albo w ogóle nie potrzebujesz twarzy). Wybierz narzędzie hostowane, jeśli potrzebujesz głosu „przyczepionego” do prezentera, który robi lip-sync, albo musisz sklonować głos konkretnej osoby — Kokoro nie potrafi ani jednego, ani drugiego.
Czego nauczyło nas Kokoro
Prawdziwa lekcja z uruchomienia Kokoro jest taka, że głos staje się towarem. Model 82 MB na laptopie potrafi dziś generować lektory wystarczająco dobre do prawdziwej pracy — za darmo. Jeśli jedyną obietnicą Twojego produktu było „robimy text-to-speech”, ta przewaga właśnie zniknęła.
Trudna, wciąż nierozwiązana część to wszystko, co dzieje się po głosie: zamiana ścieżki audio w wiarygodną mówiącą twarz — precyzyjny lip-sync, mimika, ruch głowy i timing, które trzymają się kupy. Dokładnie nad tą warstwą pracujemy. Dlatego nasz wniosek nie brzmi „nie używaj Kokoro” — to naprawdę dobry silnik głosu. Chodzi o to, że sam głos to połowa wideo. Jeśli chcesz drugą połowę, VisionStory zamienia zdjęcie i scenariusz w mówiącego prezentera z lip-sync w jednym kroku, a jeśli musisz dopasować konkretny głos, potrafi go też sklonować.
