Pular para o conteúdo principal

Seed Speech 2.0 para diálogos entre adultos: vozes, entradas e custo

O Seed Speech 2.0 lê uma voz por requisição. Monte um diálogo de dois adultos com falas separadas: entradas, IDs de voz, notas de interpretação e custo.

Autor
Lydia
Publicado
Leitura
8 min de leitura
Atualizado
Dois restauradores de relógios adultos conversam ao lado de um relógio de lareira de nogueira e de uma chave de latão intacta sobre uma bandeja de feltro verde

O Seed Speech 2.0 lê uma voz predefinida por requisição, então uma conversa entre dois personagens adultos é uma tarefa por fala, unidas em uma edição de áudio curta. Cada tarefa custa US$ 0,072 por 1.000 caracteres de texto falado, sem mínimo, e a nota de interpretação é gratuita.

Serve para mensagens de voz de personagens, narração de audiolivros e diálogos em que você quer refazer uma fala sem mexer na outra. Se quiser as duas vozes e o som de fundo em um único arquivo, use o Seed Audio 1.0.

O que uma requisição entrega

ItemSeed Speech 2.0
Campo obrigatóriotext, de 1 a 5.000 caracteres
VozUm voice_id entre 41 predefinidas; padrão stokie_en
Nota de interpretaçãoinstructions, até 1.000 caracteres; não é falada nem cobrada
SaídaUm MP3 mono a 24 kHz, ou Ogg Opus (opus); sem tempos por palavra nem legendas
Duração e velocidadeCerca de 11 caracteres por segundo de fala; cerca de 8 segundos para gerar 300 caracteres
ArmazenamentoMantido por 14 dias, então baixe o arquivo
CustoUS$ 0,072 por 1.000 caracteres; 5.000 caracteres custam US$ 0,36; uma tarefa expirada não é cobrada
IndisponívelEnvio de voz de referência, array com vários falantes

Escolha uma voz predefinida e teste uma fala na página da tarefa Seed Speech 2.0. Clonagem de voz, streaming e reconhecimento de fala da família Seed Speech mais ampla da BytePlus não fazem parte desta tarefa. Para ouvir a voz antes, escute a mensagem de voz de fim de noite publicada; ela usa stokie_en com uma nota de interpretação suave e íntima.

Teste primeiro as duas falas no Playground

Nessa página, use a aba Playground. Para cada fala de dois adultos fictícios depois de um encontro:

  1. Cole em Text apenas as palavras que devem ser ouvidas. Não escreva nomes de falantes («Anna:») nem indicações de cena («ela sorri»): eles são lidos em voz alta, e se você colocar os dois personagens em uma requisição, uma única voz lê as duas falas e os nomes.
  2. Escolha um nome em Voice (Stokie · English por padrão).
  3. Escreva a interpretação em Delivery instructions; ela não é falada nem cobrada.
  4. Deixe Language em Auto, execute, ouça o resultado e baixe o MP3.

As falas e as instruções continuam em inglês porque Stokie e Tim são vozes predefinidas em inglês.

FalaVozTextDelivery 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.

Una os dois downloads em qualquer editor de áudio, deixando uma pausa curta. Para automatizar a união, use o script abaixo.

Depois, automatize a troca inteira com um script

Instale o SDK Python (pip install spicyapi) e o ffmpeg, defina SPICY_API_KEY e execute o código abaixo. Ele envia uma tarefa por fala, baixa cada MP3 e depois os une com 0,35 segundo de silêncio após cada fala e os níveis de volume igualados.

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)

Ajuste GAP até a resposta entrar de forma natural. Se uma fala começar mal, regenere a frase inteira em vez de remendar uma palavra, e remonte o arquivo. Espera, novas tentativas e erros estão na referência do SDK Python e no guia de tarefas assíncronas; a recuperação em grande escala é o tema do artigo do blog sobre polling versus webhooks.

Ou deixe um agente executar

Se um assistente deve dar voz ao roteiro, entregue a ele a CLI ou o servidor MCP. Ambos mostram o preço e pedem a sua confirmação antes de uma chamada paga. A Skill acrescenta instruções por cima de qualquer um dos dois.

  • CLI. A spicyapi executa uma fala por chamada (npx @spicyapi/cli funciona sem instalar). Coloque o objeto input da fala em 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 ``

  • Servidor MCP. Adicione o servidor MCP ao seu assistente e peça: «Read these two lines with Seed Speech 2.0, stokieen then timen, and join them with a short gap.» Ele chama spicyapi_task_create (que para para você confirmar o preço) e spicyapi_task_wait para cada fala.
  • Skill. npx skills add spicyapi-ai/spicy-skill instala a Agent Skill, que ensina um assistente de programação a ler o esquema atual e a reutilizar chaves de idempotência. Ela não executa tarefas sozinha, então use-a com a CLI ou o MCP.

Escolha voz e idioma juntos

O sufixo de cada ID de voz lista os idiomas para os quais ela foi feita. As predefinições em inglês incluem stokie_en, dacey_en e tim_en. Outras cobrem japonês (minimi_ja), alemão (sven_de), francês (usseau_fr), coreano (shane_ko) e espanhol (felipe_es); jess_ja_es_id_pt_en_zh fala seis idiomas. A lista não diz quais vozes são masculinas ou femininas, então faça uma audição: a mesma fala de 100 caracteres em cinco candidatas custa cerca de US$ 0,036 no total. Guarde o voice_id e as instructions vencedores para toda fala seguinte desse personagem.

language aceita zh, en, ja, es-mx, id, pt-br, ko, it, de e fr. Omita o campo para a detecção automática e defina-o quando uma fala curta ou em vários idiomas for lida no idioma errado. O espanhol é es-mx e o português é pt-br. O campo não traduz: escreva a fala no idioma de destino.

Roteiros para adultos e sons não verbais

Com base nos nossos testes de setembro de 2026, o SpicyAPI não adiciona filtro de conteúdo a este modelo, e trechos adultos, diretos e em estilo de audiolivro voltaram palavra por palavra, sem que o texto das instruções jamais fosse falado. Um trecho carregado de indicações manteve o vocabulário, mas acrescentou por conta própria vocalizações sem palavras. A tarefa não tem um campo para marcações de som: escreva um som como palavra («Mm...», «Ah...») e descreva a respiração ou o tom em instructions. Se uma cena depende de respirações e gemidos interpretados, Gemini 3.8 Flash, Grok e MiniMax interpretam como sons as indicações inseridas no texto; o Seed Speech não faz isso.

Ajustes que resolvem um problema real

AjusteFaixaUse quando
speed0,5-2, padrão 1Uma fala soa apressada: tente 0,9. Se só uma expressão está assim, encurte a frase ou acrescente um ponto final
pitch-12 a +12 semitonsUm pequeno retoque após a escalação; para outro personagem, troque a voz predefinida
volume0,5-2, padrão 1Uma fala substituta está mais alta ou mais baixa que as vizinhas
sample_rate8.000 a 48.000 HzSeu projeto de edição precisa de uma taxa diferente de 24 kHz
output_formatmp3 ou opusOpus para arquivos menores se o seu player lê Ogg Opus; WAV não é oferecido, então converta localmente

Uma fala que soa teatral costuma ter uma instrução longa demais: troque-a por «Quiet, natural conversational delivery.» Uma voz com o caráter errado na base precisa de outra predefinição antes de qualquer ajuste de tom. Um nome incomum às vezes é pronunciado errado e não há dicionário de pronúncia, então escreva-o em text como ele soa.

Para legendas é preciso alinhar o texto ao arquivo finalizado, já que a tarefa não devolve marcações de tempo.

Orce o roteiro, incluindo as revisões

O preço segue os caracteres de text, incluindo espaços, pontuação e quebras de linha; instructions é gratuito e a cotação exibida antes de uma execução é final. Uma fala de 200 caracteres custa US$ 0,0144 e dá cerca de 18 segundos de fala; uma cena de 2.000 caracteres entre os dois falantes custa US$ 0,144, e três tomadas completas custam US$ 0,432. Dois falantes não geram acréscimo. Substituir uma resposta de 200 caracteres custa US$ 0,0144, bem menos que regenerar a cena, então mantenha a mesma voz predefinida e os mesmos ajustes na regravação.

Escolha o Seed Speech por vozes predefinidas acessíveis e falas que você pode refazer uma a uma; escolha o Seed Audio 1.0 quando quiser as duas vozes e o ambiente em um único arquivo.

Também em English · 日本語 · 한국어 · Deutsch · Français · Español · Русский · Italiano · Polski

Experimente você mesmo

Você paga só pelo que executar — sem plano e sem assinatura.

Feito com MiniMax H3 · ByteDance Seedance 2.0 Fast