Syntezator mowy po polsku offline: Piper, XTTS i Chatterbox - test
Piper, Chatterbox Multilingual v3 i XTTS-v2 przeczytały te same polskie teksty. Proza bez błędów, łamańce i liczby już nie. Wyniki, próbki audio, licencje i skrypt czytaj-tekst.py.

👁 120 przeczytań
- Spośród trzech testowanych syntezatorów offline najlepszą wymowę polską osiągnął XTTS-v2 z głosem Ana Florence - tylko 8% błędów na łamańcu i 0% na prozie.
- Piper 1.8.0 jest jedynym z trojki działającym bez karty graficznej i generuje mowę kilkakrotnie szybciej niż czas rzeczywisty (0,12-0,21 s na 1 s mowy).
- Liczby zapisane cyframi psują wszystkie trzy modele - Chatterbox generuje bełkot, XTTS-v2 czyta skróty dosłownie, a Piper rozkłada datę na oddzielne słowa.
Darmowy syntezator mowy po polsku, który działa bez internetu, to w październiku 2026 w praktyce trzy programy: Piper (lekki, chodzi na zwykłym procesorze), Chatterbox Multilingual v3 (licencja MIT, potrzebuje karty graficznej) i XTTS-v2 (najlepsza wymowa, ale tylko do użytku niekomercyjnego). Każdy przeczytał u mnie te same trzy polskie teksty, a wymowę sprawdziłem, puszczając nagrania z powrotem przez rozpoznawanie mowy Whisper. W zwykłej prozie Chatterbox i XTTS-v2 nie zgubiły ani jednego słowa, a Piper z głosem gosia jedno. Na łamańcu językowym wygrał XTTS-v2 (8% błędnych słów), a liczby zapisane cyframi popsuły wszystkie trzy. To część serii o lokalnym AI.
Stan na 17 października 2026
- Piper 1.8.0 (pakiet piper-tts, projekt OHF-Voice/piper1-gpl, licencja GPL-3.0). Stare repozytorium rhasspy/piper jest zarchiwizowane. 5 polskich głosów: gosia, darkman, mc_speech (CC0), bass (Apache 2.0), mls_6892 (CC BY 4.0).
- Chatterbox Multilingual v3 (Resemble AI, MIT, także komercyjnie): 23 języki z polskim, każde nagranie ma niesłyszalny znak wodny Perth.
- XTTS-v2 (Coqui): 17 języków z polskim, licencja CPML tylko do użytku niekomercyjnego. Firma Coqui zakończyła działalność, więc licencji komercyjnej nie ma od kogo kupić. Kod rozwija dalej Idiap (coqui-tts 0.27.5, MPL-2.0).
- Bez polskiego na oficjalnej liście: Kokoro, Qwen3-TTS, Magpie TTS. F5-TTS ma tylko społecznościowe wersje polskie.
- Mój test: 3 października (Piper) i 17 października 2026 (Chatterbox, XTTS-v2), RTX 4090, i9-14900KF, tylko głosy wbudowane, bez klonowania.
Jak testowałem
Trzy teksty, te same dla każdego modelu:
- Proza (71 słów): zwykły opis jesiennej wsi, sprawdza płynność i akcent.
- Łamaniec (25 słów): „Źdźbło trzciny drżało nad Wisłą, a pszczoła w Szczebrzeszynie…”, Brzęczyszczykiewicz i Chrząszczyżewoszyce.
- Liczby i skróty: data 17.03.2027 r., godz. 9:45, ul. Żeromskiego 12, 1249,99 zł, 15%, „Dr”, numer telefonu.
Każde nagranie przepisał Whisper large-v3 (lokalnie, język polski). Dla prozy i łamańca policzyłem odsetek błędnych słów względem tekstu (WER). Liczb tak nie policzysz (Whisper sam zamienia słowa na cyfry), więc tu oceniałem tylko, czy da się je rozpoznać. Chatterbox dostał dwa podejścia, XTTS-v2 dwa głosy (Ana Florence, Damien Black), Piper 5 polskich głosów. To miara zrozumiałości, nie urody głosu.
To inny test niż moje porównanie lektorów AI z 8 października. Tam 8 lektorów przeczytało jeden tekst z 15 punktami kontrolnymi (daty, kwoty, łamańce, intonacja pytania): XTTS-v2 10/15, Piper gosia 6/15, Chatterbox 4/15, Eleven v4 z chmury 15/15. Oba testy wskazują tego samego lidera wśród modeli lokalnych.
Wyniki: ile słów przeczytał poprawnie każdy model
| Model i głos | Błędne słowa: proza | Błędne słowa: łamaniec | Czas na 1 s mowy |
|---|---|---|---|
| XTTS-v2, Ana Florence | 0,0% | 8,0% | 0,60 s (karta) |
| XTTS-v2, Damien Black | 2,8% | 16,0% | 0,62 s (karta) |
| Chatterbox v3 (2 podejścia) | 0,0% i 0,0% | 20,0% i 24,0% | 1,08-1,25 s (karta) |
| Piper, gosia | 1,4% | 24,0% | 0,15 s (procesor) |
| Piper, mc_speech | 5,6% | 16,0% | 0,21 s (procesor) |
| Piper, darkman | 4,2% | 32,0% | 0,15 s (procesor) |
| Piper, bass (high) | 11,3% | 44,0% | 0,57 s (procesor) |
| Piper, mls_6892 (low) | 21,1% | 40,0% | 0,12 s (procesor) |
„Czas na 1 s mowy” to czas generowania podzielony przez długość nagrania: 0,15 s oznacza, że 28 sekund mowy powstaje w ok. 4 sekundy. Wartość powyżej 1 znaczy, że model generuje wolniej, niż mówi.
Co z tego wynika:
- Proza to dziś żaden problem. Chatterbox w obu podejściach i XTTS-v2 z głosem Ana Florence przeczytały 71 słów bez błędu. XTTS-v2 z głosem Damien Black dorzucił na końcu nieistniejące słowo („monogię”), to typowy dla tego modelu dopisek po ostatnim zdaniu.
- Łamańce rozdzielają stawkę. XTTS-v2 (Ana) pomylił tylko 2 z 25 słów. Chatterbox mówił „Lisłą” zamiast „Wisłą”, „żlirem” zamiast „żwirem” i „Grzęczyszczykiewicz”. Piper z głosem gosia zrobił z „Źdźbła” „Ziębło”.
- Liczby i skróty psują wszystko. Chatterbox na zdaniu z cyframi zaczyna bełkotać: w transkrypcji zamiast daty i kwoty są słowa, których nie ma w żadnym słowniku, a numer telefonu zamienia się w zlepek sylab. XTTS-v2 czyta liczby, ale skróty dosłownie („ogoc” zamiast „o godzinie”), a jeden z głosów zgubił „zł”. Piper rozpisuje 17.03.2027 r. jako „siedemnaście zero trzy dwa tysiące dwadzieścia siedem er”.
- Szybkość: Piper bez konkurencji. Na samym procesorze generuje kilka razy szybciej, niż mówi. XTTS-v2 na RTX 4090 robi 1 s mowy w ok. 0,6 s, a Chatterbox 17 października był wolniejszy od czasu rzeczywistego (8 października na dłuższym tekście: 26,4 s na 33 s nagrania).
Posłuchaj: ta sama proza w każdym modelu
I zdanie z liczbami, gdzie różnica jest największa:
Głośność wyrównana do -16 LUFS, bez innej obróbki.
Piper: polski lektor na każdym komputerze
Piper to syntezator zbudowany pod Home Assistanta: mały model (60-115 MB na głos), który działa na zwykłym procesorze, także na Raspberry Pi. Instalacja na Windowsie:
- Zainstaluj Pythona 3.9 lub nowszego z python.org (zaznacz „Add to PATH”).
- W wierszu poleceń:
pip install piper-tts. - Zapisz skrypt
czytaj-tekst.py(niżej) i pliktekst.txtz tekstem w UTF-8. - Uruchom:
python czytaj-tekst.py tekst.txt. Przy pierwszym użyciu skrypt pobierze głos z oficjalnego repozytorium rhasspy/piper-voices, potem działa bez internetu. - Inny głos albo tempo:
--glos mc_speech,--tempo 1.15(wolniej). Z--mp3zrobi też plik MP3, jeśli masz ffmpeg.
Najlepiej wypadła gosia (proza) i mc_speech (łamańce). Głos bass („high”) brzmi pełniej, ale myli więcej słów, a mls_6892 ma najniższą jakość (16 kHz). Wszystkie głosy Pipera korzystają z tego samego przetwarzania tekstu (eSpeak), więc liczby i skróty czytają identycznie: „godz.” jako „goc”, „zł” jako „zet eł”, numer telefonu jako jedną liczbę („sześćset jeden milionów…”). Dobrze radzą sobie z „Dr” („doktor”) i „15%” („piętnaście procent”).
Gotowy skrypt: czytaj-tekst.py
Skrypt sprawdziłem 17 października 2026 na czystym folderze: nowe środowisko Pythona 3.13, pip install piper-tts (1.8.0), pobranie głosu gosia (63 MB) i synteza. Krótki akapit (7,9 s mowy): wczytanie głosu 3,1 s, synteza 3,5 s na procesorze. Licencja MIT, możesz go zmieniać i używać w firmie. Zanim uruchomisz kod z internetu, przeczytaj go. Pobierz czytaj-tekst.py.
"""
czytaj-tekst.py - polski lektor offline (Piper) z pliku tekstowego do WAV/MP3.
Autor: Piotr Olszewski, promptowy.com. Licencja skryptu: MIT.
Sprawdzone 17.10.2026: Windows 11, Python 3.13, piper-tts 1.8.0, czysty folder.
Instalacja (raz):
pip install piper-tts
Użycie:
python czytaj-tekst.py tekst.txt -> tekst.wav (głos gosia)
python czytaj-tekst.py tekst.txt --glos darkman -> inny głos: gosia, darkman, mc_speech, bass, mls_6892
python czytaj-tekst.py tekst.txt --tempo 1.15 -> wolniej (1.0 = normalnie, 0.9 = szybciej)
python czytaj-tekst.py tekst.txt --mp3 -> dodatkowo MP3 (wymaga ffmpeg w PATH)
Głos pobiera się przy pierwszym użyciu z oficjalnego repozytorium rhasspy/piper-voices
na Hugging Face do folderu "glosy" (60-115 MB na głos). Potem wszystko działa bez internetu.
Licencje głosów: gosia, darkman, mc_speech - CC0; bass - Apache 2.0; mls_6892 - CC BY 4.0.
Silnik Piper (piper1-gpl) jest na licencji GPL-3.0.
Liczby i skróty (17.03.2027 r., godz., zł) rozpisz słownie przed czytaniem - Piper czyta je dosłownie.
"""
import argparse, os, sys, time, wave, shutil, subprocess, urllib.request
from pathlib import Path
GLOSY = {'gosia': 'medium', 'darkman': 'medium', 'mc_speech': 'medium', 'bass': 'high', 'mls_6892': 'low'}
HF = 'https://huggingface.co/rhasspy/piper-voices/resolve/main/pl/pl_PL/{g}/{q}/pl_PL-{g}-{q}.onnx{ext}'
def pobierz_glos(glos, katalog):
q = GLOSY[glos]
katalog.mkdir(parents=True, exist_ok=True)
model = katalog / f'pl_PL-{glos}-{q}.onnx'
for ext in ('', '.json'):
cel = Path(str(model) + ext)
if cel.exists() and cel.stat().st_size > 0:
continue
url = HF.format(g=glos, q=q, ext=ext)
print(f'Pobieram {cel.name} z Hugging Face (rhasspy/piper-voices)...', flush=True)
tmp = Path(str(cel) + '.part')
with urllib.request.urlopen(url, timeout=60) as r, open(tmp, 'wb') as f:
shutil.copyfileobj(r, f)
tmp.replace(cel)
return model
def main():
ap = argparse.ArgumentParser(description='Polski lektor offline (Piper): plik .txt -> .wav')
ap.add_argument('plik', help='plik tekstowy UTF-8')
ap.add_argument('--glos', default='gosia', choices=sorted(GLOSY))
ap.add_argument('--tempo', type=float, default=1.0, help='1.0 normalnie, >1 wolniej, <1 szybciej')
ap.add_argument('--wyjscie', help='nazwa pliku WAV (domyślnie jak plik tekstowy)')
ap.add_argument('--glosy', default='glosy', help='folder na pobrane głosy')
ap.add_argument('--mp3', action='store_true', help='zrób też MP3 (ffmpeg)')
x = ap.parse_args()
from piper import PiperVoice, SynthesisConfig
tekst = Path(x.plik).read_text(encoding='utf-8').strip()
if not tekst:
sys.exit('Plik jest pusty.')
wyj = Path(x.wyjscie) if x.wyjscie else Path(x.plik).with_suffix('.wav')
model = pobierz_glos(x.glos, Path(x.glosy))
t0 = time.time()
glos = PiperVoice.load(str(model))
t1 = time.time()
with wave.open(str(wyj), 'wb') as w:
glos.synthesize_wav(tekst, w, syn_config=SynthesisConfig(length_scale=x.tempo))
t2 = time.time()
with wave.open(str(wyj)) as w:
dlugosc = w.getnframes() / w.getframerate()
print(f'Gotowe: {wyj} | {dlugosc:.1f} s nagrania | głos {x.glos} wczytany w {t1 - t0:.1f} s | '
f'synteza {t2 - t1:.1f} s ({(t2 - t1) / max(dlugosc, 0.01):.2f} s na 1 s mowy)')
if x.mp3:
if not shutil.which('ffmpeg'):
print('Brak ffmpeg w PATH - pomijam MP3 (Windows: winget install Gyan.FFmpeg).')
else:
mp3 = wyj.with_suffix('.mp3')
subprocess.run(['ffmpeg', '-y', '-loglevel', 'error', '-i', str(wyj), '-b:a', '96k', str(mp3)], check=True)
print('MP3:', mp3)
if __name__ == '__main__':
main()
Chatterbox Multilingual v3: bez błędów w prozie, jeśli tekst nie ma cyfr
Nie przepłacaj za te subskrypcje
Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.
Chatterbox od Resemble AI w prozie dał zero błędnych słów w obu podejściach, a w teście z 8 października był jednym z niewielu lektorów, które czytały pytanie z wznoszącą intonacją. Wymaga jednak karty graficznej i tekstu bez cyfr: data, kwota albo numer telefonu w zapisie cyfrowym zamieniają się w bełkot. Rozpisz je słownie, a problem znika.
- Instalacja:
pip install chatterbox-tts(wersja 0.1.7), w kodzieChatterboxMultilingualTTS.from_pretrained(device="cuda", t3_model="v3")ilanguage_id="pl". - Pamięć karty: 4,7-4,8 GB całej karty (sam PyTorch 3,4-3,6 GB), ładowanie 30,7 s z dysku USB.
- Licencja MIT, także komercyjnie. Każdy plik dostaje niesłyszalny znak wodny Perth, który pozwala wykryć, że głos jest syntetyczny.
- Potrafi sklonować głos z kilkusekundowej próbki. Tego nie testowałem.
XTTS-v2: najlepsza wymowa, zła licencja
XTTS-v2 z 2023 roku wciąż najlepiej radzi sobie z polskimi łamańcami i najmniej psuje liczby. Ma 58 wbudowanych głosów (wielojęzycznych; w teście z 8 października głos Damien Black miał wyraźny obcy akcent) i klonowanie z 6-sekundowej próbki. Czyta wolniej od innych: ta sama proza zajęła 34-42 s, u Chatterboxa 21-22 s.
- Instalacja:
pip install coqui-tts(wersja 0.27.5 z Idiap), modeltts_models/multilingual/multi-dataset/xtts_v2,language="pl". - Pamięć karty: 2,5-3,4 GB, ładowanie 24,5 s, generowanie ok. 0,6 s na 1 s mowy (17 października 2026).
- Licencja Coqui Public Model License: tylko użytek niekomercyjny. Nie nadaje się do lektora w płatnym kursie, reklamie ani aplikacji na sprzedaż.
Których modeli nie testowałem i dlaczego
- Kokoro, Qwen3-TTS i Magpie TTS: brak polskiego na oficjalnej liście języków (szczegóły o Kokoro w pytaniach niżej).
- F5-TTS i OmniVoice: wagi na licencji niekomercyjnej CC BY-NC, a klonowanie głosu to podstawowy tryb pracy. F5-TTS po polsku istnieje tylko w dostrojeniach społeczności.
Lokalny syntezator czy usługa w chmurze
W rankingu najlepszy lektor AI po polsku sprawdziłem 14 modeli w chmurze. Eleven v4 i Gemini 3.1 Flash TTS przeczytały bezbłędnie wszystkie 18 punktów kontrolnych, łącznie z datami, kwotami i skrótami, czego nie zrobił żaden model lokalny. Różnicę słychać też w ekspresji.
- Lokalnie wybierz, gdy: czytasz dużo tekstu (audiobooki, kursy, notatki), dane są poufne, potrzebujesz pracy offline albo lektora w aplikacji bez opłat za znak.
- W chmurze wybierz, gdy: liczy się ekspresja i bezbłędne liczby od pierwszego podejścia, a tekstu jest niewiele.
Prawne granice klonowania głosu i oznaczania nagrań opisałem w tekście AI lektor. Lektor to zwykle tylko część projektu: obraz, wideo i muzykę do tego samego filmu zrobisz lokalnie w Hangarze (moje narzędzie, sam syntezatora mowy nie ma), a napisy według poradnika napisy do filmu.
Dla kogo który syntezator
- Piper (gosia): słaby laptop, Raspberry Pi, Home Assistant, długie teksty, użytek komercyjny (głos CC0).
- Chatterbox v3: lektor do filmów i rolek na karcie z kilkoma GB pamięci, tekst bez cyfr, komercyjnie wolno.
- XTTS-v2: prywatne projekty, gdzie liczy się wymowa trudnych słów.
Najczęstsze pytania
Jaki jest najlepszy darmowy syntezator mowy po polsku?
Do użytku prywatnego XTTS-v2: w moim teście 0% błędnych słów w prozie i 8% w łamańcu (głos Ana Florence). Do zastosowań komercyjnych Chatterbox Multilingual v3 (MIT, 0% błędów w prozie, ale tekst bez cyfr). Bez karty graficznej Piper z głosem gosia (1,4% błędów w prozie).
Jak zamienić tekst na mowę za darmo, bez internetu?
Najprościej Piperem: pip install piper-tts, potem skrypt czytaj-tekst.py z tego tekstu zamienia plik .txt na .wav lub .mp3. Głos pobiera się raz (ok. 63 MB), później wszystko działa offline, także na komputerze bez karty graficznej.
Czy Piper TTS działa bez karty graficznej?
Tak, to jego główna zaleta. Na procesorze i9-14900KF głosy „medium” generowały mowę zwykle w 0,13-0,21 s na każdą sekundę nagrania, czyli kilka razy szybciej, niż się jej słucha (pomiar z 3 października 2026). Działa też na Raspberry Pi 4 i 5, dlatego używa go Home Assistant.
Czy XTTS v2 można używać komercyjnie?
Nie. Wagi XTTS-v2 są na licencji Coqui Public Model License, która dopuszcza tylko użytek niekomercyjny, a firmy Coqui już nie ma, więc licencji komercyjnej nie da się kupić. Kod biblioteki (coqui-tts od Idiap) jest na MPL-2.0, ale to nie zmienia licencji modelu.
Czy Kokoro TTS mówi po polsku?
Nie. Według oficjalnej listy głosów Kokoro-82M (stan na 17 października 2026) obsługuje 8 języków: angielski (amerykański i brytyjski), japoński, chiński mandaryński, hiszpański, francuski, hindi, włoski i portugalski brazylijski. Polski tekst przeczyta najwyżej z obcą fonetyką.
Czy F5-TTS i Chatterbox TTS mają polski?
Chatterbox tak, polski jest jednym z 23 języków wersji Multilingual v3. Oficjalny F5-TTS zna tylko angielski i chiński (wagi CC BY-NC 4.0), polski istnieje wyłącznie w dostrojeniach społeczności.
Ile pamięci karty potrzebuje Chatterbox?
W moim teście 17 października 2026 na RTX 4090 Chatterbox Multilingual v3 zajął 4,7-4,8 GB pamięci karty (8 października: 5,3 GB), a sam PyTorch 3,4-3,6 GB. Karta z 6 GB powinna wystarczyć (tego nie sprawdzałem), z 8 GB jest zapas. XTTS-v2 potrzebował 2,5-3,4 GB, Piper zero.
Źródła i data sprawdzenia
- Piper (OHF-Voice/piper1-gpl), licencja GPL-3.0, pakiet piper-tts na PyPI.
- Głosy Pipera: rhasspy/piper-voices, pl_PL (karty głosów z licencjami).
- Chatterbox (resemble-ai), wagi ResembleAI/chatterbox.
- coqui/XTTS-v2 i licencja CPML.
- Biblioteka coqui-tts (Idiap).
- Kokoro-82M: lista głosów i języków.
- SWivid/F5-TTS i k2-fsa/OmniVoice.
- Pomiary: moje, 3 października 2026 (Piper, i9-14900KF) i 17 października 2026 (Chatterbox, XTTS-v2, RTX 4090), ocena Whisperem large-v3.
Sprawdzone 17 października 2026.
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →
