Seed Speech 2.0 czyta jeden gotowy głos na żądanie, więc rozmowa dwóch dorosłych postaci to jedno zadanie na kwestię, połączone krótkim montażem dźwięku. Każde zadanie kosztuje 0,072 $ za 1000 znaków wypowiadanego tekstu, bez minimum, a wskazówka interpretacji jest bezpłatna.
Model nadaje się do wiadomości głosowych postaci, narracji audiobooków i dialogów, w których chcesz powtórzyć jedną kwestię, nie ruszając drugiej. Jeśli chcesz mieć oba głosy i dźwięk tła w jednym pliku, użyj zamiast tego Seed Audio 1.0.
Co daje jedno żądanie
| Element | Seed Speech 2.0 |
|---|---|
| Pole wymagane | text, 1-5000 znaków |
| Głos | Jeden voice_id spośród 41 gotowych; domyślnie stokie_en |
| Wskazówka interpretacji | instructions, do 1000 znaków; nie jest wypowiadana ani rozliczana |
| Wynik | Jeden mono MP3 24 kHz lub Ogg Opus (opus); bez czasów słów i napisów |
| Długość i tempo | Około 11 znaków na sekundę mowy; około 8 sekund na wygenerowanie 300 znaków |
| Przechowywanie | 14 dni, więc pobierz plik |
| Koszt | 0,072 $ za 1000 znaków; 5000 znaków to 0,36 $; wygasłe zadanie nie jest rozliczane |
| Niedostępne | Wgranie głosu referencyjnego, tablica wielu mówców |
Wybierz gotowy głos i wypróbuj kwestię na stronie zadania Seed Speech 2.0. Klonowanie głosu, streaming i rozpoznawanie mowy z szerszej rodziny Seed Speech od BytePlus nie są częścią tego zadania. Żeby najpierw usłyszeć głos, posłuchaj opublikowanej nocnej wiadomości głosowej; używa stokie_en z cichą, intymną wskazówką interpretacji.
Najpierw wypróbuj obie kwestie w Playground
Na tej stronie otwórz zakładkę Playground. Dla każdej kwestii dwojga fikcyjnych dorosłych po randce:
- Wklej do pola Text wyłącznie słowa, które mają wybrzmieć. Nie wpisuj imion mówców („Anna:”) ani didaskaliów („uśmiecha się”): zostaną odczytane na głos, a jeśli obie postacie trafią do jednego żądania, jeden głos przeczyta obie kwestie razem z imionami.
- Wybierz imię w polu Voice (domyślnie Stokie · English).
- Opisz sposób wypowiedzi w polu Delivery instructions; nie jest wypowiadany ani rozliczany.
- Zostaw Language na Auto, uruchom zadanie, odsłuchaj wynik i pobierz MP3.
Kwestie i wskazówki pozostają po angielsku, bo Stokie i Tim to angielskie gotowe głosy.
| Kwestia | Głos | Text | Delivery instructions |
|---|---|---|---|
| 1 | Stokie (stokie_en) | "You don't have to go yet. Stay for another coffee? I like talking to you when we're not watching the clock." | Warm and slightly playful. Speak quietly to one adult listener, with a natural question rather than a sales pitch. |
| 2 | Tim (tim_en) | "Then I'll stay. I was hoping you would give me a reason." | Low, relaxed and amused. Answer an invitation naturally; do not sound like an announcer. |
Połącz oba pobrane pliki w dowolnym edytorze dźwięku, zostawiając krótką przerwę. Aby zautomatyzować łączenie, użyj skryptu poniżej.
Potem zautomatyzuj całą wymianę skryptem
Zainstaluj SDK Pythona (pip install spicyapi) oraz ffmpeg, ustaw SPICY_API_KEY i uruchom poniższy kod. Wysyła jedno zadanie na kwestię, pobiera każdy plik MP3, a następnie łączy je z 0,35 s ciszy po każdej kwestii i wyrównanym poziomem głośności.
import subprocess, urllib.request
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
GAP = 0.35 # seconds of silence after each turn
TURNS = [
{"text": "You don't have to go yet. Stay for another coffee? I like talking to you when we're not watching the clock.",
"voice_id": "stokie_en",
"instructions": "Warm and slightly playful. Quiet, to one adult listener."},
{"text": "Then I'll stay. I was hoping you would give me a reason.",
"voice_id": "tim_en",
"instructions": "Low, relaxed and amused. Answer naturally, not like an announcer."},
]
files = []
for i, turn in enumerate(TURNS, 1):
task = client.create_task(
model="bytedance/seed-speech-2.0/text-to-speech",
input_data=dict(turn, language="en", output_format="mp3"),
idempotency_key=f"dialogue-take-1-turn-{i}", # new keys for a new take
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Turn {i} ended as {final['state']}")
files.append(f"turn-{i:02d}.mp3")
urllib.request.urlretrieve(output_assets(final)[0]["url"], files[-1])
cmd = ["ffmpeg", "-y"] + [x for f in files for x in ("-i", f)]
chains = [f"[{i}:a]loudnorm=I=-18,apad=pad_dur={GAP}[a{i}]" for i in range(len(files))]
graph = ";".join(chains) + ";" + "".join(f"[a{i}]" for i in range(len(files))) + f"concat=n={len(files)}:v=0:a=1"
subprocess.run(cmd + ["-filter_complex", graph, "-ar", "24000", "-b:a", "128k", "dialogue.mp3"], check=True)Dostrajaj GAP, aż odpowiedź zabrzmi naturalnie. Jeśli kwestia ma niezręczny początek, wygeneruj ponownie całe zdanie zamiast łatać jedno słowo i zbuduj plik od nowa. Oczekiwanie, ponowienia i błędy opisują dokumentacja SDK Pythona i przewodnik po zadaniach asynchronicznych; odzyskiwanie po awariach w większej skali jest tematem artykułu na blogu o pollingu kontra webhooki.
Albo pozwól działać agentowi
Jeśli asystent ma przeczytać scenariusz na głos, daj mu CLI lub serwer MCP. Oba pokazują cenę i proszą o potwierdzenie przed płatnym wywołaniem. Skill dodaje instrukcje do jednego i drugiego.
- CLI.
spicyapiuruchamia jedną kwestię na wywołanie (npx @spicyapi/clidziała bez instalacji). Umieść obiektinputkwestii w plikuturn-1.json:
``bash spicyapi tasks create --model bytedance/seed-speech-2.0/text-to-speech \ --input-file turn-1.json --idempotency-key dialogue-take-1-turn-1 --wait ``
- Serwer MCP. Dodaj serwer MCP do asystenta i poproś: „Read these two lines with Seed Speech 2.0, stokieen then timen, and join them with a short gap.” Dla każdej kwestii wywołuje
spicyapi_task_create(zatrzymuje się na potwierdzenie ceny) ispicyapi_task_wait. - Skill.
npx skills add spicyapi-ai/spicy-skillinstaluje Agent Skill, który uczy asystenta programisty czytać aktualny schemat i ponownie używać kluczy idempotentności. Sam nie uruchamia zadań, więc używaj go razem z CLI lub MCP.
Wybieraj głosy i język razem
Przyrostek każdego ID głosu wymienia języki, do których jest przeznaczony. Angielskie gotowe głosy to m.in. stokie_en, dacey_en i tim_en. Inne obejmują japoński (minimi_ja), niemiecki (sven_de), francuski (usseau_fr), koreański (shane_ko) i hiszpański (felipe_es); jess_ja_es_id_pt_en_zh mówi w sześciu językach. Lista nie podaje, które głosy są męskie, a które żeńskie, więc zrób przesłuchanie: ta sama kwestia o długości 100 znaków przepuszczona przez pięciu kandydatów kosztuje łącznie około 0,036 $. Zachowaj zwycięski voice_id i instructions dla każdej kolejnej kwestii tej postaci.
language przyjmuje zh, en, ja, es-mx, id, pt-br, ko, it, de i fr. Pomiń je, by włączyć automatyczne wykrywanie, a ustaw, gdy krótka lub wielojęzyczna kwestia jest czytana w złym języku. Hiszpański to es-mx, a portugalski pt-br. Pole niczego nie tłumaczy: napisz kwestię w języku docelowym.
Scenariusze dla dorosłych i dźwięki niewerbalne
Według naszych testów z września 2026 SpicyAPI nie dodaje do tego modelu żadnego filtra treści, a bezpośrednie i audiobookowe fragmenty dla dorosłych wróciły słowo w słowo, a tekst wskazówek nigdy nie został wypowiedziany. Fragment nasycony wskazówkami zachował słownictwo, ale sam dodał wokalizacje bez słów. Zadanie nie ma pola na znaczniki dźwięków: zapisz dźwięk jako słowo („Mm...”, „Ah...”), a oddech lub ton opisz w instructions. Jeśli scena zależy od odgrywanych oddechów i jęków, Gemini 3.8 Flash, Grok i MiniMax odgrywają wskazówki wpisane w tekst jako dźwięki; Seed Speech tego nie robi.
Ustawienia, które rozwiązują realny problem
| Ustawienie | Zakres | Użyj, gdy |
|---|---|---|
speed | 0,5-2, domyślnie 1 | Kwestia brzmi pospiesznie: spróbuj 0,9. Jeśli pospieszna jest tylko jedna fraza, skróć zdanie lub dodaj kropkę |
pitch | od -12 do +12 półtonów | Niewielka korekta po obsadzeniu; dla innej postaci zmień gotowy głos |
volume | 0,5-2, domyślnie 1 | Kwestia zastępcza jest głośniejsza lub cichsza od sąsiednich |
sample_rate | od 8000 do 48 000 Hz | Twój projekt montażowy wymaga innej częstotliwości niż 24 kHz |
output_format | mp3 lub opus | Opus dla mniejszych plików, jeśli odtwarzacz obsługuje Ogg Opus; WAV nie jest dostępny, więc skonwertuj lokalnie |
Kwestia, która brzmi teatralnie, ma zwykle zbyt długą wskazówkę: zastąp ją frazą „Quiet, natural conversational delivery.” Głos o niewłaściwym podstawowym charakterze wymaga innego gotowego głosu, zanim zaczniesz zmieniać wysokość. Nietypowe imię bywa źle wymawiane, a słownika wymowy nie ma, więc zapisz je w text tak, jak brzmi.
Napisy wymagają dopasowania do gotowego pliku, ponieważ zadanie nie zwraca znaczników czasu.
Zaplanuj budżet scenariusza razem z poprawkami
Cena zależy od znaków w text, wliczając spacje, interpunkcję i podziały wierszy; instructions jest bezpłatne, a wycena pokazana przed uruchomieniem jest ostateczna. Kwestia o długości 200 znaków kosztuje 0,0144 $ i daje około 18 sekund mowy; scena o długości 2000 znaków między oboma mówcami kosztuje 0,144 $, a trzy pełne ujęcia kosztują 0,432 $. Dwóch mówców nie oznacza dopłaty. Zastąpienie jednej odpowiedzi o długości 200 znaków kosztuje 0,0144 $, czyli znacznie mniej niż ponowne generowanie sceny, więc przy poprawce zachowaj ten sam gotowy głos i te same ustawienia.
Wybierz Seed Speech dla przystępnych cenowo gotowych głosów i kwestii, które możesz powtarzać pojedynczo; wybierz Seed Audio 1.0, gdy chcesz mieć oba głosy i tło w jednym pliku.






