Masz tekst dla dorosłych — wiadomość głosową, rozdział opowiadania lub scenę z dwiema postaciami — i chcesz usłyszeć go dokładnie tak, jak został napisany, z oddechami i westchnieniami, oraz wiedzieć, ile to będzie kosztować. Gemini 2.5 Pro TTS potrafi to zrobić na SpicyAPI. SpicyAPI nie dodaje filtra treści: w naszych testach z września 2026 teksty dla dorosłych wracały jako pełne nagrania, bez pomijania, łagodzenia ani przedwczesnego urywania.
Jak zacząć w Playground:
- Wybierz Voice pasujący do nastroju:
Enceladus(z oddechem),Achernar(miękki),Sulafat(ciepły),Gacrux(dojrzały) lub domyślnyKore(stanowczy). - Ustaw Style (
Whisperzwykle pasuje do intymnych treści), a następnie dodaj jedno lub dwa zdania w Delivery instructions albo Scene, aby opisać sytuację. - Umieść dźwięki w nawiasach kwadratowych w Text, na przykład
[sighs]lub[laughs]. W naszych przykładach wskazówki zostały odegrane jako dźwięki; jeśli któraś zostanie odczytana, przenieś jej instrukcję do Delivery instructions. - Dla dwóch postaci użyj Dialogue i Speakers zamiast Text.
Najpierw wypróbuj Playground
Otwórz Gemini 2.5 Pro TTS i użyj karty Playground w widoku Form:
- Wklej tekst do Text (do 5 000 znaków). Skróty Cues wstawiają
[whispers],[sighs],[laughs],[gasps]i[pause]. - Wybierz Voice (na przykład
Enceladus · Breathy), a następnie ustaw Style naWhisperi Pace naUnhurried, aby uzyskać powolną lekturę z przeciąganiem słów. - Napisz jedno lub dwa zdania w Delivery instructions i Scene. Żadne z tych pól nie jest wypowiadane.
- Sprawdź szacunek oparty na długości pod Text, naciśnij Run model i odtwórz wynik w Output. Stamtąd pobierz WAV.
Przesłuchaj tu najtrudniejszy fragment, zanim napiszesz kod: wskazówka odczytana zamiast odegrana w Playground będzie również odczytana przez API. Poniższe ustawienia wyjaśniają działanie poszczególnych opcji.
Ustawienia, które zmieniają wynik
voice_id przyjmuje jeden z 30 gotowych głosów. Domyślny to Kore.
| Nastrój | Głosy do przesłuchania |
|---|---|
| Z oddechem, bliski | Enceladus |
| Miękki, delikatny | Achernar, Vindemiatrix |
| Ciepły | Sulafat |
| Dojrzały, chropawy | Gacrux, Algenib |
| Stanowczy | Kore, Orus |
| Pogodny, swobodny | Puck, Aoede |
Cztery opcjonalne pola kształtują interpretację. Żadne nie jest odczytywane na głos.
styleustala ogólny sposób mówienia:whisper,empathetic,vocal_smile,newscaster,promo_hypelubdeadpan.paceustala rytm:natural,rapid_fire(szybko, krótko),the_drift(powoli, z przeciąganiem) lubstaccato(krótkie, oddzielone frazy). Wolniejsze tempo oznacza więcej sekund audio, a to za sekundy płacisz.instructions(do 1 000 znaków) to swobodny tekst o nastroju, odległości od mikrofonu i adresacie wypowiedzi. Jedno lub dwa zdania działają lepiej niż lista przymiotników: "close to the microphone, unhurried, as if speaking only to the listener".scene(do 500 znaków) określa, gdzie i do kogo kierowane są słowa, na przykład "a quiet hotel room after midnight".
accent (osiem angielskich akcentów, tylko dla tekstów po angielsku) i temperature (stopień różnic między ujęciami) są opcjonalne; pozostaw je bez wartości, dopóki nie zechcesz uzyskać wariantu. Nie ma pola języka: model rozpoznaje język tekstu, a każdy głos zachowuje swój charakter.
Pisz tekst z myślą o interpretacji
W text krótkie wskazówki w nawiasach kwadratowych wyznaczają miejsce dźwięku lub zmiany sposobu mówienia. W naszych przykładach [sighs] i [laughs] zostały odegrane. Używaj style: "whisper" lub instructions do kierowania dłuższym fragmentem; jeśli znacznik jest czytany jako słowo, użyj tych pól zamiast niego. Wielokropki sugerują pauzy.
Pomagają dwa nawyki:
- Pisz do słuchania. Zapisuj w pełnej formie to, co ma zostać powiedziane, stosuj wielokropki i przecinki do pauz oraz krótkie zdania.
- Kieruj interpretacją w polach, nie w tekście. Jeśli wpiszesz "she whispers breathlessly" w
text, te słowa zostaną odczytane. Umieść instrukcję wstylelubinstructions.
Następnie wywołaj model z kodu
Ten blok tworzy zadanie, czeka na jego zakończenie i wypisuje link WAV (pip install spicyapi, z ustawionym SPICY_API_KEY):
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="google/gemini-2.5-pro-tts/text-to-speech",
input_data={
"text": "Hey... it is me. [sighs] I know it is late. Stay on the line a little longer?",
"voice_id": "Enceladus",
"style": "whisper",
"pace": "the_drift",
"scene": "A quiet bedroom after midnight, speaking to one listener",
"instructions": "Close to the microphone, unhurried, a little tired.",
},
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"]) # a 24 kHz, 16-bit mono WAV; copy it to your own storageAudio jest przechowywane przez 14 dni i nie zawiera czasów poszczególnych słów ani napisów. Czekanie, ponawianie, wygasające linki do wyników i obsługę błędów opisują dokumentacja SDK Python, dokumentacja zadań i zasady przechowywania.
Albo zleć wykonanie Agentowi
Jeśli asystent ma generować wiadomości głosowe, udostępnij mu CLI lub serwer MCP; oba pokazują cenę i proszą o potwierdzenie przed płatnym wywołaniem. Skill dodaje instrukcje do obu rozwiązań.
- CLI.
spicyapi(npx @spicyapi/clidziała bez instalacji);input.jsonzawiera obiektinputz powyższego bloku:
``bash spicyapi tasks create --model google/gemini-2.5-pro-tts/text-to-speech \ --input-file input.json --wait ``
- Serwer MCP. Dodaj serwer MCP, a potem poproś: "Read this script in a whispered Enceladus voice with Gemini 2.5 Pro TTS." Wywołuje on
spicyapi_task_create(które zatrzymuje się, by potwierdzić cenę) ispicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstaluje Agent Skill, który uczy asystenta programistycznego odczytywać aktualny schemat i ponownie używać kluczy idempotencji. Nie wykonuje zadań samodzielnie, więc używaj go z CLI lub MCP.
Dwie postacie w jednym klipie
Dla sceny między dwiema postaciami wyślij dialogue zamiast text (nie oba) oraz speakers z obsadą. Każdy mówca ma name, do którego odwołują się kwestie, i voice_id. Może też ustawić własne accent, style i pace oraz krótki profile opisujący, kto mówi (nie jest czytany). Pominięte wartości mówcy przejmują wartości z poziomu głównego. Każda kwestia ma postać {speaker, text} i jest odgrywana w kolejności, z limitem 20 kwestii po 250 znaków i maksymalnie dwóch mówców. Użyj tego samego wywołania co wyżej, zastępując obiekt input poniższym.
{
"speakers": [
{ "name": "Mara", "voice_id": "Sulafat", "style": "whisper", "profile": "Warm, close, unhurried" },
{ "name": "Jonah", "voice_id": "Charon", "profile": "Low, amused" }
],
"dialogue": [
{ "speaker": "Mara", "text": "Stay a little longer." },
{ "speaker": "Jonah", "text": "[laughs] You say that every time." },
{ "speaker": "Mara", "text": "And every time you do." }
],
"scene": "A quiet apartment after midnight"
}Rozmowa wraca jako jeden zmiksowany WAV. Aby później edytować kwestie jednej postaci osobno, wygeneruj każdą postać w oddzielnym zadaniu z jednym głosem i połącz pliki w edytorze. Dla dłuższych scen, więcej niż dwóch głosów lub głosu sklonowanego z klipu referencyjnego przeczytaj porównanie TTS i przewodnik po referencjach głosowych Chatterbox.
Ile to kosztuje
Opłata wynosi 0,00045 $ za sekundę faktycznie zwróconego audio, mierzonego na podstawie pliku. Długość zależy od głosu, stylu i tempa: akapit liczący 270 znaków trwa od 23 do 29 sekund. Przybliżony koszt to zatem liczba znaków podzielona przez 10 i pomnożona przez 0,00045 $.
| Długość klipu | Koszt | Przybliżona ilość tekstu |
|---|---|---|
| 15 sekund | 0,0068 $ | 150 znaków |
| 30 sekund | 0,0135 $ | 300 znaków |
| 60 sekund | 0,027 $ | 600 znaków |
| 5 minut | 0,135 $ | 3 000 znaków |
| Od 7 do 9 minut | Od 0,19 $ do 0,24 $ | 5 000 znaków, limit text |
Podczas wykonywania zadania na saldzie blokowane jest około 0,30 $ (660 sekund według stawki sekundowej, co pokrywa najdłuższy klip możliwy do wygenerowania, około 655 sekund). Niewykorzystana część zostaje zwolniona po zmierzeniu audio. Nieudane żądanie nie jest płatne. Przed dodaniem partii do kolejki pozostaw przynajmniej tyle wolnego salda, ponieważ blokady wcześniejszych zadań mogą uniemożliwić rozpoczęcie następnego.
Typowe problemy
- Wskazówka jest czytana jako słowo. Przeredaguj ją albo przenieś instrukcję do
stylelubinstructions, pozostawiając w nawiasach tylko dźwięk. - Instrukcja wydaje się ignorowana.
accentwpływa tylko na teksty angielskie;styleipacena poziomie głównym obowiązują każdego mówcę, który nie określił własnych wartości. - Wysłane zostały zarówno
text, jak idialogue. Wybierz jedno;dialoguewymaga teżspeakers.
Kiedy wybrać nowszy głos Gemini
Gemini 3.8 Flash TTS (0,00032 $ za sekundę) i Gemini 3.8 Flash-Lite TTS (0,00021 $ za sekundę) przyjmują te same pola, w tym dialogue, przy niższej cenie. Flash-Lite zwykle odczytuje część wskazówek w nawiasach, więc wybierz Pro, jeśli ważne są oddechy i westchnienia. Flash zazwyczaj także odgrywa wskazówki w nawiasach; najpierw przesłuchaj krótki fragment. Przewodnik narracji Gemini 3.8 szczegółowo opisuje oba modele.
Najczęstsze pytania
Czy Gemini 2.5 Pro TTS działa bez cenzury?
Testowane teksty dla dorosłych wracały w całości, bez pomijania ani łagodzenia słów. SpicyAPI nie dodaje dodatkowego filtra treści. Nadal odpowiadasz za teksty i użycie audio, w tym za to, by nie przedstawiać go jako słów prawdziwej osoby. Postacie powinny być fikcyjne i dorosłe.
Czy wskazówki takie jak [sighs] lub [laughs] są czytane na głos?
W testowanych przykładach [sighs] i [laughs] były odgrywane jako dźwięki. Jeśli inna wskazówka jest czytana, przenieś ją do instructions lub użyj style. Inne modele działają inaczej, co wyjaśnia porównanie TTS powyżej.
Czym różnią się instructions, scene i style?
style to stała lista ogólnych sposobów mówienia. instructions zawiera swobodne wskazówki dotyczące interpretacji, a scene określa, gdzie i do kogo kierowane są słowa. Najpierw użyj style, potem dodaj instructions lub scene dla danej sytuacji.
Ile kosztuje minuta audio?
Około 0,027 $, naliczane na podstawie zwróconych sekund, a nie długości tekstu.
Czy mogę sklonować głos?
Nie w tym endpoincie. Wybierz jeden z 30 gotowych głosów albo model przyjmujący klip referencyjny.
Zacznij w Playground (najpierw utwórz konto): Enceladus, Whisper i krótki tekst z jedną wskazówką [sighs] pokażą, jak realizowane są instrukcje.





