Vai al contenuto principale

Seed Speech 2.0 per dialoghi tra adulti: voci, input e costi

Seed Speech 2.0 legge una voce per richiesta. Crea un dialogo tra due adulti con battute separate: input, ID voce, note di recitazione e costi.

Autore
Lydia
Pubblicato
Lettura
8 min di lettura
Aggiornato
Due restauratori di orologi adulti conversano accanto a un orologio da camino in noce e a una chiave d'ottone intatta su un vassoio di feltro verde

Seed Speech 2.0 legge una voce preimpostata per richiesta, quindi una conversazione tra due personaggi adulti è un task per battuta, uniti in un breve montaggio audio. Ogni task costa 0,072 $ ogni 1.000 caratteri di testo parlato, senza minimo, e la nota di recitazione è gratuita.

Va bene per messaggi vocali di personaggi, narrazione di audiolibri e dialoghi in cui vuoi rifare una battuta senza toccare l'altra. Se vuoi entrambe le voci e il suono di fondo in un solo file, usa invece Seed Audio 1.0.

Cosa ottieni da una richiesta

ElementoSeed Speech 2.0
Campo obbligatoriotext, da 1 a 5.000 caratteri
VoceUn voice_id tra 41 preimpostate; predefinito stokie_en
Nota di recitazioneinstructions, fino a 1.000 caratteri; non viene pronunciata né fatturata
OutputUn MP3 mono a 24 kHz, oppure Ogg Opus (opus); nessun tempo per parola né sottotitoli
Durata e velocitàCirca 11 caratteri al secondo di parlato; circa 8 secondi per generare 300 caratteri
ConservazioneConservato 14 giorni, quindi scaricalo
Costo0,072 $ ogni 1.000 caratteri; 5.000 caratteri costano 0,36 $; un task scaduto non viene addebitato
Non disponibileCaricamento di una voce di riferimento, array multi-speaker

Scegli una voce preimpostata e prova una battuta nella pagina del task Seed Speech 2.0. Clonazione vocale, streaming e riconoscimento vocale della famiglia Seed Speech più ampia di BytePlus non fanno parte di questo task. Per ascoltare prima la voce, ascolta il messaggio vocale notturno pubblicato; usa stokie_en con una nota di recitazione morbida e intima.

Prova prima le due battute nel Playground

In quella pagina usa la scheda Playground. Per ogni battuta di due adulti fittizi dopo un appuntamento:

  1. Incolla in Text solo le parole da ascoltare. Non scrivere nomi di chi parla («Anna:») né indicazioni di scena («sorride»): vengono lette ad alta voce, e se metti entrambi i personaggi in una richiesta, una sola voce legge le due battute insieme ai nomi.
  2. Scegli un nome in Voice (Stokie · English per impostazione predefinita).
  3. Scrivi la recitazione in Delivery instructions; non viene pronunciata né fatturata.
  4. Lascia Language su Auto, avvia, ascolta il risultato e scarica l'MP3.

Battute e istruzioni restano in inglese perché Stokie e Tim sono voci preimpostate inglesi.

BattutaVoceTextDelivery instructions
1Stokie (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.
2Tim (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.

Unisci i due download in un qualsiasi editor audio, lasciando una breve pausa. Per automatizzare l'unione, usa lo script qui sotto.

Poi scrivi uno script per l'intero scambio

Installa l'SDK Python (pip install spicyapi) e ffmpeg, imposta SPICY_API_KEY ed esegui questo script. Invia un task per battuta, scarica ogni MP3, poi li unisce con 0,35 secondi di silenzio dopo ogni battuta e con i livelli uniformati.

python
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)

Regola GAP finché la risposta non arriva in modo naturale. Se una battuta parte male, rigenera l'intera frase invece di rattoppare una parola, e ricostruisci il file. Attese, nuovi tentativi ed errori sono descritti nel riferimento dell'SDK Python e nella guida ai task asincroni; il ripristino su larga scala è il tema dell'articolo del blog su polling contro webhook.

Oppure lascia che lo esegua un agente

Se un assistente deve dare voce al copione, dagli la CLI o il server MCP. Entrambi mostrano il prezzo e chiedono la tua conferma prima di una chiamata a pagamento. La Skill aggiunge istruzioni sopra l'una o l'altro.

  • CLI. spicyapi esegue una battuta per chiamata (npx @spicyapi/cli funziona senza installazione). Metti l'oggetto input della battuta in turn-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 ``

  • Server MCP. Aggiungi il server MCP al tuo assistente e chiedi: «Read these two lines with Seed Speech 2.0, stokieen then timen, and join them with a short gap.» Chiama spicyapi_task_create (che si ferma per la tua conferma del prezzo) e spicyapi_task_wait per ogni battuta.
  • Skill. npx skills add spicyapi-ai/spicy-skill installa l'Agent Skill, che insegna a un assistente di programmazione a leggere lo schema attuale e a riutilizzare le chiavi di idempotenza. Non può eseguire task da sola, quindi usala con la CLI o con MCP.

Scegli voci e lingua insieme

Il suffisso di ogni ID voce indica le lingue per cui è pensata. Tra le voci inglesi ci sono stokie_en, dacey_en e tim_en. Altre coprono giapponese (minimi_ja), tedesco (sven_de), francese (usseau_fr), coreano (shane_ko) e spagnolo (felipe_es); jess_ja_es_id_pt_en_zh parla sei lingue. L'elenco non dice quali voci siano maschili o femminili, quindi fai un'audizione: la stessa battuta di 100 caratteri provata con cinque candidate costa in tutto circa 0,036 $. Conserva il voice_id e le instructions vincenti per ogni battuta successiva di quel personaggio.

language accetta zh, en, ja, es-mx, id, pt-br, ko, it, de e fr. Omettilo per il rilevamento automatico, e impostalo quando una battuta breve o in più lingue viene letta in quella sbagliata. Lo spagnolo è es-mx e il portoghese pt-br. Non traduce: scrivi la battuta nella lingua di destinazione.

Copioni per adulti e suoni non verbali

In base ai nostri test di settembre 2026, SpicyAPI non aggiunge alcun filtro di contenuto a questo modello, e brani per adulti, diretti e in stile audiolibro, sono tornati parola per parola, senza che il testo delle istruzioni venisse mai pronunciato. Un brano ricco di indicazioni ha mantenuto il suo lessico ma ha aggiunto da sé vocalizzazioni senza parole. Il task non ha un campo per i tag sonori: scrivi un suono come parola («Mm...», «Ah...») e descrivi respiro o tono in instructions. Se una scena dipende da respiri e gemiti recitati, Gemini 3.8 Flash, Grok e MiniMax interpretano come suoni le indicazioni inserite nel testo; Seed Speech no.

Impostazioni che risolvono un problema reale

ImpostazioneIntervalloUsala quando
speed0,5-2, predefinito 1Una battuta è affrettata: prova 0,9. Se lo è solo una frase, accorcia il periodo o aggiungi un punto
pitchda -12 a +12 semitoniPer un piccolo ritocco dopo la scelta della voce; per un personaggio diverso, cambia voce preimpostata
volume0,5-2, predefinito 1Una battuta sostitutiva è più forte o più debole delle vicine
sample_rateda 8.000 a 48.000 HzIl tuo progetto di montaggio richiede una frequenza diversa da 24 kHz
output_formatmp3 oppure opusOpus per file più piccoli se il tuo player gestisce Ogg Opus; il WAV non è offerto, quindi converti in locale

Una battuta che suona teatrale ha di solito un'istruzione troppo lunga: sostituiscila con «Quiet, natural conversational delivery.» Una voce con il carattere di base sbagliato richiede un'altra voce preimpostata prima di toccare il pitch. Un nome insolito a volte viene pronunciato male e non esiste un dizionario di pronuncia, quindi scrivilo in text come suona.

Per i sottotitoli serve allineare il testo al file finito, perché il task non restituisce timestamp.

Calcola il budget del copione, revisioni comprese

Il prezzo segue i caratteri di text, compresi spazi, punteggiatura e a capo; instructions è gratuito e il preventivo mostrato prima di un'esecuzione è definitivo. Una battuta di 200 caratteri costa 0,0144 $ e corrisponde a circa 18 secondi di parlato; una scena di 2.000 caratteri tra i due personaggi costa 0,144 $, e tre riprese complete costano 0,432 $. Due voci non comportano supplementi. Sostituire una risposta di 200 caratteri costa 0,0144 $, molto meno che rigenerare la scena, quindi mantieni la stessa voce preimpostata e le stesse impostazioni per la ripresa.

Scegli Seed Speech per voci preimpostate economiche e battute che puoi rifare una alla volta; scegli Seed Audio 1.0 quando vuoi entrambe le voci e l'ambiente in un solo file.

Anche in English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Polski

Provalo tu stesso

Paghi solo quello che esegui: nessun piano, nessun abbonamento.

Creato con MiniMax H3 · ByteDance Seedance 2.0 Fast