Перейти к основному контенту

Seed Speech 2.0 для диалогов взрослых персонажей: голоса, входные данные и стоимость

Seed Speech 2.0 читает один голос за запрос. Соберите диалог двух взрослых из отдельных реплик: входные данные, ID голосов, подсказки подачи и стоимость.

Автор
Lydia
Опубликовано
Время чтения
7 мин чтения
Обновлено
Двое взрослых реставраторов часов беседуют рядом с ореховыми каминными часами и нетронутым латунным ключом на зелёном войлочном подносе

Seed Speech 2.0 читает один готовый голос за запрос, поэтому разговор двух взрослых персонажей — это одна задача на реплику, а склеиваются они коротким аудиомонтажом. Каждая задача стоит 0,072 $ за 1000 символов произносимого текста, без минимума, а подсказка подачи бесплатна.

Модель подходит для голосовых сообщений персонажей, озвучки аудиокниг и диалогов, где одну реплику нужно переделать, не трогая другую. Если нужны оба голоса и фоновый звук в одном файле, используйте вместо неё Seed Audio 1.0.

Что даёт один запрос

ПараметрSeed Speech 2.0
Обязательное полеtext, 1-5000 символов
ГолосОдин voice_id из 41 готового; по умолчанию stokie_en
Подсказка подачиinstructions, до 1000 символов; не произносится и не тарифицируется
РезультатОдин моно-MP3 24 кГц или Ogg Opus (opus); без таймингов слов и субтитров
Длительность и скоростьОколо 11 символов в секунду речи; около 8 секунд на генерацию 300 символов
Хранение14 дней, поэтому скачайте файл
Стоимость0,072 $ за 1000 символов; 5000 символов — 0,36 $; истёкшая задача не тарифицируется
НедоступноЗагрузка референсного голоса, массив из нескольких говорящих

Выберите готовый голос и попробуйте реплику на странице задачи Seed Speech 2.0. Клонирование голоса, потоковая передача и распознавание речи из более широкого семейства Seed Speech от BytePlus в эту задачу не входят. Чтобы сначала услышать голос, послушайте опубликованное ночное голосовое сообщение; оно использует stokie_en с тихой, доверительной подсказкой подачи.

Сначала попробуйте две реплики в Playground

На этой странице откройте вкладку Playground. Для каждой реплики двух вымышленных взрослых после свидания:

  1. Вставьте в Text только слова, которые должны прозвучать. Не пишите имена говорящих («Анна:») и ремарки («она улыбается»): их прочитают вслух, а если поместить обоих персонажей в один запрос, один голос прочитает обе реплики вместе с именами.
  2. Выберите имя в Voice (по умолчанию Stokie · English).
  3. Опишите подачу в Delivery instructions; этот текст не произносится и не тарифицируется.
  4. Оставьте Language на Auto, запустите задачу, прослушайте результат и скачайте MP3.

Реплики и инструкции остаются на английском, потому что Stokie и Tim — английские готовые голоса.

РепликаГолосTextDelivery 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.

Склейте два скачанных файла в любом аудиоредакторе, оставив короткую паузу. Для автоматической склейки используйте скрипт ниже.

Затем автоматизируйте весь обмен скриптом

Установите Python SDK (pip install spicyapi) и ffmpeg, задайте SPICY_API_KEY и запустите код ниже. Он отправляет одну задачу на реплику, скачивает каждый MP3, а затем склеивает их с 0,35 секунды тишины после каждой реплики и выровненной громкостью.

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)

Подбирайте GAP, пока ответ не зазвучит естественно. Если реплика начинается неудачно, сгенерируйте заново всё предложение, а не латайте одно слово, и пересоберите файл. Ожидание, повторные попытки и ошибки описаны в справочнике Python SDK и руководстве по асинхронным задачам; восстановление после сбоев в большом масштабе — тема статьи блога о поллинге и вебхуках.

Или поручите это агенту

Если ассистент должен озвучить сценарий, дайте ему CLI или MCP-сервер. Оба показывают цену и просят вашего подтверждения перед платным вызовом. Skill добавляет инструкции поверх любого из них.

  • CLI. spicyapi выполняет одну реплику за вызов (npx @spicyapi/cli работает без установки). Поместите объект input реплики в 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 ``

  • MCP-сервер. Добавьте MCP-сервер в ассистента и попросите: «Read these two lines with Seed Speech 2.0, stokieen then timen, and join them with a short gap.» Для каждой реплики он вызывает spicyapi_task_create (останавливается для подтверждения цены) и spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill устанавливает Agent Skill, который учит ассистента-программиста читать актуальную схему и повторно использовать ключи идемпотентности. Сам он задачи не запускает, поэтому применяйте его вместе с CLI или MCP.

Выбирайте голос и язык вместе

Суффикс каждого ID голоса перечисляет языки, для которых он создан. Среди английских готовых голосов — stokie_en, dacey_en и tim_en. Другие охватывают японский (minimi_ja), немецкий (sven_de), французский (usseau_fr), корейский (shane_ko) и испанский (felipe_es); jess_ja_es_id_pt_en_zh говорит на шести языках. В списке не сказано, какие голоса мужские, а какие женские, поэтому проведите прослушивание: одна и та же реплика в 100 символов через пять кандидатов стоит в сумме около 0,036 $. Сохраните победивший voice_id и instructions для всех следующих реплик этого персонажа.

language принимает zh, en, ja, es-mx, id, pt-br, ko, it, de и fr. Пропустите поле для автоопределения и задайте его, если короткая или многоязычная реплика читается не на том языке. Испанский — es-mx, португальский — pt-br. Поле ничего не переводит: пишите реплику на целевом языке.

Сценарии для взрослых и невербальные звуки

По нашим тестам сентября 2026 года SpicyAPI не добавляет к этой модели фильтр контента, а прямые и аудиокнижные отрывки для взрослых вернулись слово в слово, причём текст инструкций ни разу не был произнесён. Отрывок с множеством подсказок сохранил лексику, но сам добавил вокализации без слов. В задаче нет поля для звуковых тегов: пишите звук словом («Mm...», «Ah...») и описывайте дыхание или тон в instructions. Если сцена держится на сыгранных вздохах и стонах, Gemini 3.8 Flash, Grok и MiniMax исполняют вставленные в текст подсказки как звуки; Seed Speech — нет.

Настройки, которые решают реальную проблему

ПараметрДиапазонКогда использовать
speed0,5-2, по умолчанию 1Реплика звучит торопливо: попробуйте 0,9. Если торопливо звучит одна фраза, сократите предложение или поставьте точку
pitchот -12 до +12 полутоновНебольшая подстройка после выбора голоса; для другого персонажа смените готовый голос
volume0,5-2, по умолчанию 1Заменяющая реплика громче или тише соседних
sample_rateот 8000 до 48 000 ГцВашему монтажному проекту нужна частота, отличная от 24 кГц
output_formatmp3 или opusOpus для файлов меньшего размера, если плеер поддерживает Ogg Opus; WAV не предлагается, конвертируйте локально

Реплика, которая звучит театрально, обычно получила слишком длинную инструкцию: замените её на «Quiet, natural conversational delivery.» Голосу с неподходящим базовым характером нужен другой готовый голос ещё до любой смены высоты. Необычное имя иногда произносится неверно, а словаря произношения нет, поэтому запишите его в text так, как оно звучит.

Для субтитров текст нужно выравнивать по готовому файлу, так как задача не возвращает временные метки.

Заложите в бюджет сценарий, включая правки

Цена зависит от символов в text, включая пробелы, знаки препинания и переносы строк; instructions бесплатны, а расчёт, показанный перед запуском, окончателен. Реплика в 200 символов стоит 0,0144 $ и даёт около 18 секунд речи; сцена в 2000 символов на двух говорящих стоит 0,144 $, а три полных дубля — 0,432 $. Два говорящих не дают наценки. Замена одного ответа в 200 символов стоит 0,0144 $, что намного меньше, чем заново генерировать сцену, поэтому для переозвучки сохраните тот же готовый голос и те же настройки.

Выбирайте Seed Speech ради недорогих готовых голосов и реплик, которые можно переделывать по одной; выбирайте Seed Audio 1.0, когда нужны оба голоса и атмосфера в одном файле.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski