ElevenLabs API pozwala wygenerować lektora z tekstu jednym poleceniem, zamiast klikać każdy akapit w panelu. Dla kogoś, kto produkuje filmy regularnie, to różnica między ręczną robotą a procesem: zmieniasz jedno zdanie w scenariuszu i odtwarzasz tylko ten fragment. Pokazuję podstawowe wywołanie, parametry ważne przy polskim tekście i prosty skrypt, który zamienia scenariusz na nagrania.
Stan na 6 listopada 2026. Nazwy modeli i ceny się zmieniają. Parametry w przykładach pochodzą z wywołań, których użyłem do testów własnego klonu.
Kiedy API ma sens, a kiedy wystarczy panel?
Panel wystarczy do pojedynczych nagrań. API opłaca się, gdy:
- masz wiele akapitów i poprawiasz tylko niektóre
- chcesz, żeby ten sam scenariusz zawsze dawał ten sam układ plików
- lektor jest jednym z kroków większej produkcji
- chcesz, żeby wszystko zrobił za Ciebie agent AI
Nie musisz być programistą. Przykłady niżej możesz wkleić do Claude Code i poprosić o dopasowanie do swojego folderu. Tak właśnie pracuję: agent pisze i uruchamia kod, a ja słucham wyniku. Tak powstał też mój klon, co opisałem w historii od starych filmów do klonu.
Czego potrzebujesz do ElevenLabs API?
Trzech rzeczy:
- Płatnego planu, jeśli chcesz używać głosów z biblioteki. Darmowe konto dostanie błąd
paid_plan_required, działają na nim tylko głosy wbudowane - Klucza API z ustawień konta
- Identyfikatora głosu (
voice_id) z karty głosu w panelu
Klucz trzymaj w zmiennej środowiskowej, nigdy w pliku, który trafia do repozytorium ani na stronę. Każde jego użycie zużywa Twoje kredyty.
export ELEVENLABS_API_KEY="tu-twoj-klucz"
export VOICE_ID="tu-identyfikator-glosu"
Jak wygenerować lektora jednym poleceniem?
Najprostsze wywołanie zapisuje nagranie do pliku lektor.mp3:
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/$VOICE_ID?output_format=mp3_44100_192" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-o lektor.mp3 \
-d '{
"text": "[calm, warm narration] Dzień dobry, to jest próbka z API.",
"model_id": "eleven_v4",
"language_code": "pl",
"voice_settings": { "stability": 0.5, "similarity_boost": 0.75 }
}'
Co tu jest ważne:
model_id:eleven_v4daje najwyższą jakość i kosztuje 1 kredyt za znak.eleven_v4_turboieleven_flash_v2_5kosztują 0,5 kredytulanguage_code:plmówi modelowi wprost, w jakim języku jest tekststability: niżej znaczy bardziej ekspresyjnie, wyżej bardziej równo. Zaczynam od 0,5similarity_boost: jak blisko oryginału ma brzmieć głosoutput_format: 192 kb/s wystarcza do filmu
Tag w nawiasach kwadratowych opisuje sposób czytania. W v4 to główne narzędzie reżyserskie: [calm, warm narration], [confident, clear], [intimate storytelling, slower]. Piszę je po angielsku, także przy polskim tekście.
Jak wygenerować cały scenariusz?
Podziel scenariusz na akapity przedzielone pustą linią i zapisz jako scenariusz.txt. Skrypt w Pythonie zrobi po jednym pliku na akapit i pominie te, które już istnieją:
import json, os, pathlib, urllib.request
KLUCZ = os.environ["ELEVENLABS_API_KEY"]
GLOS = os.environ["VOICE_ID"]
URL = f"https://api.elevenlabs.io/v1/text-to-speech/{GLOS}?output_format=mp3_44100_192"
for numer, tekst in enumerate(pathlib.Path("scenariusz.txt").read_text().split("\n\n"), 1):
plik = pathlib.Path(f"akapit-{numer:02}.mp3")
if plik.exists():
continue
dane = {
"text": tekst,
"model_id": "eleven_v4",
"language_code": "pl",
"voice_settings": {"stability": 0.5, "similarity_boost": 0.75},
}
zapytanie = urllib.request.Request(
URL,
data=json.dumps(dane).encode(),
headers={"xi-api-key": KLUCZ, "Content-Type": "application/json"},
)
with urllib.request.urlopen(zapytanie, timeout=180) as odpowiedz:
plik.write_bytes(odpowiedz.read())
print("gotowe:", plik)
To pomijanie gotowych plików jest najważniejszą linijką. Gdy poprawisz jeden akapit, skasuj tylko jego plik i uruchom skrypt ponownie. Pozostałe nie zużyją ani jednego kredytu.
Na co uważać przy polskim tekście?
Większość problemów nie leży w API, tylko w tekście:
Skróty i obce słowa. Sprawdź je krótką próbką, zanim wygenerujesz całość. Zapis fonetyczny nie zawsze wystarcza. Czasem pomaga zapis IPA między ukośnikami, ale sprawdź go na swoim głosie: przy jednym z głosów, których używałem, model przeczytał IPA razem z ukośnikami. Czasem najszybciej jest zmienić zdanie.
Dwa teksty zamiast jednego. Tekst do napisów i tekst do czytania to nie to samo. W wersji do syntezy rozpisz liczby i skróty tak, jak mają zabrzmieć.
Model v4 nie ma parametru tempa. Przekazanie speed nie zmienia długości nagrania, a znaczniki SSML takie jak <break> nie działają. Pauzy i tempo reguluj tagami. Jeśli nagranie musi być krótsze, przyspiesz je po wygenerowaniu.
Długie teksty dziel. Eleven v4 ma limit około 10 tysięcy znaków na zapytanie, a przy poprawkach i tak chcesz regenerować pojedyncze akapity.
Sprawdzaj wynik automatycznie. U siebie po generowaniu transkrybuję nagranie i porównuję z tekstem. Wyłapuje to przekręcone słowa bez odsłuchiwania wszystkiego, choć cyfry i skróty dają fałszywe alarmy.
Ile kosztuje lektor przez API?
Tyle samo co w panelu: kredyty według modelu. Własny klon nie ma osobnej stawki. Plan Creator daje 121 tysięcy kredytów miesięcznie, czyli około 121 tysięcy znaków w eleven_v4. Do tego doliczaj poprawki: każde ponowne wygenerowanie akapitu kosztuje tyle samo co pierwsze.
Pełne zasady planów opisałem w tekście ElevenLabs: co to jest i ile kosztuje.
Jak dobrać głos do tego procesu?
Automatyzacja nie naprawi złego doboru głosu. Najpierw porównaj głosy na prawdziwym fragmencie, a dopiero potem buduj proces. Tu przyda się analiza polskich głosów, a jeśli chcesz użyć własnego, przepis na klon krok po kroku.
Identyfikator każdego głosu z biblioteki działa w tym samym kodzie, więc zmiana lektora to jedna linijka. Możesz sprawdzić mój głos, który opisałem na stronie Polski lektor AI. A jeśli chcesz takie procesy zbudować w zespole, zobacz szkolenia albo konsultacje.