Do rozdziału audiobooka dla dorosłych albo wiadomości głosowej postaci wybierz Gemini 3.8 Flash TTS, jeśli potrzebujesz odgrywanych wskazówek albo szerszego pokrycia językowego, a Flash-Lite TTS, jeśli wystarczy zwykła, gotowa narracja, krótkie wiadomości i duże partie tekstu. Oba modele odczytują wprost wyraźne słownictwo dla dorosłych. Flash odgrywa wskazówki w nawiasach kwadratowych, takie jak [whispers] (zazwyczaj; najpierw przetestuj), i obsługuje 130 języków wobec 101 w Lite. Lite nie odgrywa wiarygodnie wskazówek w nawiasach i czasem czyta je na głos, więc potrzebuje zwykłych scenariuszy. Flash kosztuje $0,00032 za zwróconą sekundę audio, a Lite $0,00021. Różnica to $0,066 na dziesięć minut audio, czyli $6,60 przy 1000 minut. Na podstawie naszych testów z września 2026 roku.

Ilustracja fikcyjnej pary dorosłych z przykładów; to nie jest wynik audio.
Który model do którego zadania
| Flash TTS | Flash-Lite TTS | |
|---|---|---|
| 10 minut audio | $0,192 | $0,126 |
Wskazówki w nawiasach kwadratowych ([whispers], [sighs]) | Odtwarzane w większości przypadków; czasem słowo tagu jest wypowiadane | Nie zawsze odtwarzane; słowa tagów bywają czytane na głos, więc zapisuj dźwięki słownie |
| Języki | 130 | 101 (bez tajlandzkiego, szwedzkiego, fińskiego, suahili i somalijskiego) |
| Dwóch mówców w jednym żądaniu | Tak (speakers + dialogue) | Tak, ta sama struktura |
| Głosy / wyjście | 30 gotowych głosów, jeden WAV mono 24 kHz 16-bitowy | Tak samo |
| Zastosuj do | Odtwarzanych scen audiobooka, odgłosów, dialogów z dużą liczbą kwestii, szerszego pokrycia językowego | Zwykłej gotowej narracji i wiadomości, szkiców, prób głosu, dużych partii tekstu |
Użyj Flash TTS, gdy śmiech, westchnienie lub szept musi wypaść we właściwym miejscu, a Flash-Lite TTS do zwykłej mowy. Przetestuj zwykłe kwestie na Lite i zachowaj dobre ujęcie; nie trzeba go odtwarzać ponownie na Flash. Przejdź na Flash, gdy scena wymaga odgrywanych wskazówek albo języka, którego Lite nie obsługuje. Oba przyjmują te same pola, więc przełączenie to tylko zmiana nazwy modelu.
Zrób wiadomość głosową postaci
Najpierw sprawdź to w Playground. Otwórz Flash TTS lub Flash-Lite TTS, użyj zakładki Playground z widokiem Form, a następnie:
- W polu Text umieść tylko te słowa, które słuchacz ma usłyszeć (do 5000 znaków). W Flash skróty Cues wstawiają
[whispers],[sighs],[laughs],[gasps]i[pause]; Lite ostrzega, że takie tagi są czytane na głos. - Wybierz Voice (domyślnie
Kore), a jeśli chcesz, także Style i Pace. - Dodaj wskazówki interpretacyjne w polach Delivery instructions (do 1000 znaków) i Scene (do 500). Żadne z nich nie jest wypowiadane.
- Sprawdź szacowany czas, naciśnij Run model i odtwórz albo pobierz plik WAV w sekcji Output.
Teraz to samo żądanie z kodu (pip install spicyapi, z ustawionym SPICY_API_KEY). Tworzy zadanie, czeka i wypisuje link do WAV; w przypadku Lite zmień model na google/gemini-3.8-flash-lite-tts/text-to-speech i zapisuj dźwięki słownie zamiast używać nawiasów:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="google/gemini-3.8-flash-tts/text-to-speech",
input_data={
"text": "You made it. I was starting to think you had changed your mind. Stay a little longer; I like having you here.",
"voice_id": "Kore",
"instructions": "Quiet, warm and intimate. Speak to one adult listener, with a natural pause after the first sentence.",
"pace": "natural",
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
print(output_assets(final)[0]["url"]) # 24 kHz 16-bit mono WAV; copy it to your own storageOczekiwanie, ponawianie i obsługa błędów są opisane w dokumentacji SDK dla Pythona oraz w dokumentacji zadań.
Trzymaj etykiety Character:, numery ujęć i opisy scen poza polem text; model odczyta je jako transkrypcję. Ogranicz instructions do jednego lub dwóch zdań o nastroju i odległości od mikrofonu, a wiek i płeć opisuj raczej wyborem innego głosu; akcent ustaw polem accent.
W Flash umieść wskazówkę tuż przed kwestią, którą kieruje: [whispers] You made it. Strona modelu wymienia też [sighs], [laughing] i [gasping], a jej przykłady używają [softly] i [teasing]; pauzy wynikają z interpunkcji (przecinki, wielokropki, kropki), a nie z tagu. Używaj nawiasów kwadratowych, a nie tagów w nawiasach ostrokątnych z bezpośredniej dokumentacji API Google. Jeśli tag zostanie wypowiedziany zamiast odtworzony, wygeneruj go ponownie albo przenieś tę kwestię do instructions.
W Lite zapisuj dźwięki słownie: Mmm... you made it. albo Ha... of course you did. Całkiem zrezygnuj z nawiasów, a nastrój przekaż przez instructions, interpunkcję i krótkie zdania.
Albo niech to wykona Agent. Daj asystentowi CLI albo serwer MCP; oba pokazują cenę i proszą o potwierdzenie przed płatnym wywołaniem, a Skill dokłada instrukcje do obu.
- CLI:
spicyapi(npx @spicyapi/clidziała bez instalacji);input.jsonzawiera obiektinputz powyższego przykładu:
``bash spicyapi tasks create --model google/gemini-3.8-flash-tts/text-to-speech \ --input-file input.json --wait ``
- Serwer MCP: dodaj serwer MCP i poproś: „Przeczytaj tę kwestię ciepło modelem Gemini 3.8 Flash TTS”. Wywołuje
spicyapi_task_create(który zatrzymuje się na potwierdzeniu ceny), a potemspicyapi_task_wait. - Skill:
npx skills add spicyapi-ai/spicy-skillinstaluje Agent Skill; uczy asystenta odczytywać bieżący schemat i sam nie uruchomi zadań, więc połącz go z CLI albo MCP.
Wybierz głos
Identyfikatory głosów rozróżniają wielkie i małe litery, a domyślnym jest Kore (stanowczy). Cieplejsze lub łagodniejsze opcje to Sulafat (ciepły), Achernar (miękki) i Enceladus (słyszalny oddech); Charon (informacyjny) pasuje do narracji, Gacrux jest dojrzały, Algenib jest chrapliwy, a Puck brzmi pogodnie. Przetestuj te same dwie kwestie na trzech głosach w Lite, a potem zachowaj ten głos na całą książkę. Głos zachowuje swój charakter w różnych językach. Te ustawienia wstępne to jedyne dostępne głosy: bez klonowania i bez przesłanej referencji.

Ilustracja; to nie jest wynik audio.
Dwoje dorosłych w jednym żądaniu
Etykiety mówców wewnątrz text nie tworzą dwóch głosów. Użyj dialogue zamiast text i nadaj każdej kwestii nazwę mówcy, która występuje w speakers.
{
"speakers": [
{"name": "Mara", "voice_id": "Kore", "style": "vocal_smile"},
{"name": "Eli", "voice_id": "Charon", "pace": "natural"}
],
"dialogue": [
{"speaker": "Mara", "text": "You can stay, if you want to."},
{"speaker": "Eli", "text": "I was hoping you would ask."}
],
"scene": "Two fictional adults speaking quietly after a dinner date."
}Limity: dwóch mówców, 20 kwestii, 250 znaków na kwestię. Dostajesz jeden zmiksany plik WAV, a nie osobny plik dla każdego aktora; aby edytować głosy osobno, wygeneruj kwestie każdego mówcy jako oddzielne zadania z jednym głosem. Każdy mówca może mieć własne style, pace, accent oraz profile (niewypowiadane).
Zamień rozdział na żądania
Pojedyncze żądanie przyjmuje do 5000 znaków. W praktyce akapit liczący 270 znaków wraca w około 20 do 26 sekund, więc sześć do ośmiu minut to przybliżony szacunek dla pełnego żądania liczącego 5000 znaków, a nie limit długości. Ten zakres kosztuje od $0,1152 do $0,1536 w Flash albo od $0,0756 do $0,1008 w Lite (odpowiednio około $0,12–$0,15 i $0,08–$0,10). Rozdział trwający 20 minut to zatem trzy lub cztery żądania: $0,384 w Flash, $0,252 w Lite.
- Dziel w miejscach zmian sceny lub długich pauz, nie w połowie zdania; szew wewnątrz sceny to miejsce, w którym zmiana barwy głosu jest najbardziej słyszalna.
- Używaj identycznego głosu,
instructionsi ustawień dla każdego fragmentu, inaczej jeden lektor zacznie brzmieć jak dwie osoby. - Planuj z zapasem: płacisz za zwrócone sekundy, a wolniejsze ustawienia
pacezwracają ich więcej. - Przechowuj WAV przez 14 dni. Plik nie ma znaczników czasu ani napisów; jeśli potrzebujesz transkrypcji, wyrównaj ją w edytorze.
- Spodziewaj się czasowej rezerwy: trwające zadanie rezerwuje budżet na 660 sekund i zwalnia niewykorzystaną część po zakończeniu.
- Bez MP3, ścieżek muzycznych, suwaków wysokości i tempa oraz połączeń na żywo. Przekonwertuj WAV lokalnie, dodaj atmosferę w edytorze, a do głosu na żywo użyj integracji czasu rzeczywistego.
Ustawienia, które zmieniają wynik
pace oferuje natural, rapid_fire, the_drift (wolno, przeciągle) i staccato. Zacznij od natural; jeśli kwestia brzmi pospieszona, popraw najpierw interpunkcję. style oferuje whisper, empathetic, vocal_smile, newscaster, promo_hype i deadpan; w intymnej scenie wypróbuj whisper albo vocal_smile. accent oferuje osiem angielskich akcentów (neutralny, trzy amerykańskie, dwa brytyjskie, transatlantycki, australijski). temperature działa w zakresie od 0 do 2 i steruje zmiennością między ujęciami; przy pierwszym ujęciu zostaw to pole puste.
Kiedy coś brzmi źle
| Co słyszysz | Co zmienić |
|---|---|
| Lite czyta wskazówkę w nawiasach kwadratowych na głos | Usuń nawiasy i zapisz dźwięk słownie albo przenieś tę kwestię do Flash |
| Flash wypowiada słowo wskazówki zamiast ją odtworzyć | Wygeneruj ponownie; jeśli to się powtarza, przerób sformułowanie wskazówki albo użyj instructions |
| Kwestia brzmi jak komunikat reklamowy | Usuń promo_hype lub newscaster; spróbuj krótkiej, rozmównej instrukcji |
| Twój język nie jest obsługiwany albo brzmi źle w Lite | Użyj Flash (130 języków) |
| Uwagi reżyserskie są wypowiadane na początku | Sprawdź, czy nie ma ich w text; jeśli są, zgłoś identyfikator zadania do wsparcia |
Jako przykład odsłuchu oto opublikowana próbka Flash z szeptaną spowiedzią. Dokumentacja modelu Google obejmuje tylko bezpośrednie API.
Krótko: zwykła narracja, szkice i duże partie tekstu na Lite; odgrywane wskazówki lub język, którego Lite nie ma, na Flash. Tak czy inaczej, najpierw wygeneruj krótki fragment głosem, którego chcesz użyć, zanim zobowiążesz się do całego rozdziału, a potem używaj tego samego głosu i tych samych wskazówek dla każdego fragmentu.
Inne opcje audio: porównanie API syntezy mowy bez cenzury (artykuł tylko po angielsku) oraz Gemini 2.5 Pro TTS do audio NSFW.







