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

Qwen3 TTS для голосов взрослых персонажей: пресеты, инструкции и цена

Выберите голос Qwen3 TTS, задайте подачу и сохраните аудиофайл. Цены от $0,0068 за строку; тексты для взрослых читаются дословно.

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

Голосовое сообщение вымышленного персонажа работает, когда голос совпадает с человеком, а подача — с моментом. Qwen3 TTS превращает сценарий взрослого персонажа в один MP3 с одним голосом, а подачу вы направляете обычной заметкой. В задаче SpicyAPI девять заданных голосов, стоимость — $0,068 за 1 000 символов текста, минимум 100 символов на запрос. По нашим тестам сентября 2026 года откровенная лексика для взрослых в прямых отрывках и в стилистике аудиокниги читалась дословно. Используйте её для записанных голосовых сообщений и закадровой озвучки; на этом маршруте нет ни клонирования голоса, ни прямого эфира.

Что входит в размещённую задачу

ДетальЗадача Qwen3 TTS
Обязательный вводtext, 1–2 000 символов
Указание подачиinstructions, до 1 000 символов; не произносится, не тарифицируется
Голос по умолчаниюSerena
Результатодин MP3, моно, 24 кГц
Цена$0,068 за 1 000 символов текста, минимум 100 символов ($0,0068)
Загруженный голос-референснедоступен
Несколько говорящих в одном запросенедоступно; генерируйте каждую реплику отдельно
Числовые скорость или высота тонанедоступны; опишите подачу в instructions

Выберите пресет и сгенерируйте на странице задачи Qwen3 TTS. Репозиторий команды Qwen описывает также варианты CustomVoice, Base (клонирование) и VoiceDesign. Это отдельные предложения: аргумент ref_audio или speaker библиотеки здесь не является вводом, поле голоса — voice_id.

Подберите голос под свой сценарий

ПресетОпубликованное описание голосаРодной язык
Serenaтёплый, мягкий женский голоскитайский
Vivianяркий, слегка резкий женский голоскитайский
Uncle_Fuнизкий, мягкий мужской голоскитайский
Dylanотчётливый пекинский мужской голоскитайский, пекинский диалект
Ericживой, слегка хриплый мужской голоскитайский, диалект Сычуани
Ryanмужской голос с ритмоманглийский
Aidenотчётливый американский мужской голосанглийский
Ono_Annaлёгкий, игривый женский голосяпонский
Soheeтёплый, выразительный женский голоскорейский

Каждый пресет читает любой поддерживаемый язык, но команда Qwen рекомендует родной язык голоса для лучшего качества. Для мужского персонажа, говорящего по-английски, начните с Ryan или Aiden. Для женского персонажа на английском попробуйте Serena или Vivian; в наборе нет женского голоса с английским родным языком, поэтому прослушайте его до того, как решите.

Прослушайте пример голосового сообщения голосом Serena: ночная записка «позвони мне», прочитанная с запыханной, кокетливой инструкцией.

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

Откройте страницу задачи Qwen3 TTS и используйте вкладку Playground:

  1. В поле Text вставьте только те слова, которые нужно услышать (пример сценария на странице — хороший первый тест).
  2. Выберите имя в Voice (по умолчанию Serena).
  3. Напишите заметку о подаче в Delivery instructions.
  4. Оставьте Language на Auto-detect или выберите английский для английского сценария, если определение неоднозначно.
  5. Запустите, затем прослушайте результат в Output и скачайте MP3.

Вымышленная взрослая после свидания: Text «I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again.», Voice Serena, Delivery instructions «Тепло и немного застенчиво, негромко, обращаясь к одному взрослому слушателю. Последний вопрос оставьте в разговорном тоне». Не начинайте текст с Serena: или с «Read this in a soft voice»: оба варианта будут произнесены. Прослушайте здесь два-три голоса и заметки, прежде чем писать код; цена показывается до запуска.

language принимает auto, zh, en, de, fr, es, it, pt, ru, ja и ko. Он определяет, как читается ваш текст; он не переводит.

Затем вызовите из кода

Установите Python SDK (pip install spicyapi), задайте SPICY_API_KEY в окружении и выполните:

python
import urllib.request
import uuid

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

task = client.create_task(
    model="alibaba/qwen-3-tts/text-to-speech",
    input_data={
        "text": "I had a good time tonight. More than I expected, actually. Call me tomorrow? I'd like to see you again.",
        "voice_id": "Serena",
        "language": "en",
        "instructions": "Warm and slightly shy, speaking quietly to one adult listener. Keep the final question conversational.",
    },
    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']}")

urllib.request.urlretrieve(output_assets(final)[0]["url"], "voice-message.mp3")

Ожидание, повторы, расценки и ошибки описаны в справочнике Python SDK и в руководстве по асинхронным задачам.

Или пусть это выполнит Agent

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

  • CLI. spicyapi выполняет одну задачу из терминала (npx @spicyapi/cli работает без установки). Положите тот же объект input в input.json:

``bash spicyapi tasks create --model alibaba/qwen-3-tts/text-to-speech \ --input-file input.json --idempotency-key voice-message-take-1 --wait ``

  • MCP-сервер. Добавьте MCP-сервер помощнику и спросите: «Прочитай эту реплику голосом Qwen3 TTS, Serena, тепло и немного застенчиво». Он вызывает spicyapi_task_create (который останавливается для подтверждения цены), затем spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill устанавливает Agent Skill, который учит помощника по программированию читать актуальную схему и переиспользовать ключи идемпотентности. Сам он задачи не выполняет, поэтому используйте его с CLI или MCP.

Направьте одну и ту же реплику тремя способами

Оставьте текст и голос, меняйте только заметку. Для «I thought you'd forgotten»:

Задуманное чувствоИнструкция для пробы
Облегчение«Мягкий выдох с облегчением, с улыбкой, последнее слово чуть тише»
Обида«Тихо и сдержанно, медленнее, без улыбки»
Поддразнивание«Легко и игриво, с лёгким подъёмом в конце, будто прячется улыбка»

Меняйте по одному. «Уберите шёпот» или «медленнее после первого предложения» чинит дубль, а «эмоциональнее, человечнее» — нет. Если результат слишком театральный, сократите заметку до «Естественная разговорная подача.»

Может ли он прочитать NSFW-сценарий?

Тесты охватили прямой фрагмент для взрослых, фрагмент в обрамлении аудиокниги и фрагмент с обилием ремарок, используя Serena или Ryan с указаниями подачи. Прямая и аудиокнижная расшифровки совпали со сценарием слово в слово, включая лексику для взрослых, а текст указаний ни разу не прозвучал.

Фрагмент с обилием ремарок сохранил лексику для взрослых, но сильнее отклонился от сценария из-за несловесных вокализаций. Относитесь к дыханию и смеху как к тому, что стоит прослушать, а не контролировать: если от этого зависит сцена, сначала сгенерируйте этот момент и не рассчитывайте, что синтаксис квадратных или круглых скобок другой модели здесь сработает.

Сделайте сцену на двух персонажей

Один запрос — один голос. Для двух вымышленных взрослых генерируйте каждую реплику отдельно:

РепликаГолосТекстПодача
1Serena«Did you really think I'd leave without saying goodnight?»тёплый, спокойный вопрос
2Ryan«No. I was hoping you would come find me.»тихий, ироничный ответ

Руководства ComfyUI по нескольким говорящим разбирают имена говорящих, паузы и наложения в отдельном узле; эти теги здесь не являются полями ввода. Уберите имена из произносимого текста, отправьте каждую реплику со своим voice_id, а паузы расставьте в монтажёре. Начните с короткой паузы и двигайте второй клип, пока ответ не станет естественным. Если поместить оба имени в одно поле text, один пресет прочитает и подписи, и обе реплики. Чтобы прописать весь диалог и собрать клипы автоматически, посмотрите рабочий процесс диалога Seed Speech 2.0; его скрипт склейки работает с любым голосом.

Для длинной истории одним голосом делите текст до 2 000 символов по границам предложений или абзацев и повторяйте один и тот же голос и заметку для каждого фрагмента. Чтобы заменить фразу, перегенерируйте всё окружающее предложение и режьте по соседним паузам — тогда громкость и темп совпадут.

Минимальная оплата важна для коротких ответов

Стоимость — max(text characters, 100) × $0.068 / 1,000, пробелы и знаки препинания считаются. Указания бесплатны.

Длина вводаОплачиваемые символыСтоимость
40 символов100$0,0068
80 символов100$0,0068
180 символов180$0,01224
1 000 символов1 000$0,068
2 000 символов2 000$0,136

Десять отдельных ответов по 40 символов стоят $0,068, хотя их тексты вместе дают всего 400 символов; один запрос на 400 символов тем же голосом стоит $0,0272. Объединяйте слитную закадровую речь одного голоса, когда это допускает монтаж, но не объединяйте разных персонажей ради обхода минимума.

Исправьте разочаровывающий результат

ПроблемаИзменение
Реплика звучит торопливоДобавьте в instructions «Без спешки, с естественной паузой после первого предложения»
Имя произносится неверноНапишите его фонетически в text; в публичной расшифровке оставьте правильное написание
Заметка почти не меняет тембрПопробуйте другой пресет; указания подачи не меняют базовый характер голоса
Запрос отклоняет speed, pitch или ref_audioУберите их и используйте четыре поля выше

Если нужно клонирование загруженного голоса или живой разговор, выберите задачу, которая это предоставляет; чтобы сравнить другие речевые модели для сценариев для взрослых, посмотрите наше сравнение API синтеза речи.

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