Технологии

«Несколько секунд записи»: AWS показала развёртывание клонирования голоса Qwen3-TTS на SageMaker AI

В блоге AWS Machine Learning разобран путь от JumpStart до полностью управляемого эндпоинта реального времени для публичной модели Qwen3-TTS-12Hz-1.7B-Base: клонирование голоса по короткой записи и её расшифровке, без дообучения. Карточка модели уточняет, что семейство Qwen3-TTS покрывает десять языков и опирается на собственный токенизатор Qwen3-TTS-Tokenizer-12Hz.

«Несколько секунд записи»: AWS показала развёртывание клонирования голоса Qwen3-TTS на SageMaker AI

Что именно разворачивают

Qwen3-TTS — публичное семейство моделей синтеза речи команды Qwen в Alibaba Cloud: десять языков (китайский, английский, японский, корейский, немецкий, французский, русский, португальский, испанский, итальянский), собственный речевой токенизатор Qwen3-TTS-Tokenizer-12Hz и потоковая генерация для сценариев с низкой задержкой.

В разборе используется вариант Base — Qwen3-TTS-12Hz-1.7B-Base: он клонирует голос по нескольким секундам пользовательского аудио и может служить базой для дообучения.

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

В отличие от варианта CustomVoice, который говорит голосами из фиксированного набора, Base работает с записью, которую дал пользователь. Поддержано и кросс-языковое клонирование: голос, снятый с записи на одном языке, переносится на речь на другом с сохранением идентичности говорящего.

В JumpStart модель лежит рядом с Qwen3-TTS-12Hz-1.7B-CustomVoice и Qwen3-ASR-1.7B.

Зачем это бизнесу и что даёт саморазмещение

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

Экономика: расходы привязываются к использованию вычислений, а не к цене за символ в API. Контроль данных: аудио остаётся внутри аккаунта AWS и управляемого эндпоинта SageMaker, а модель можно адаптировать под свою предметную область.

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

Как устроено развёртывание

Развёртывание идёт из JumpStart: писать собственный обработчик инференса не нужно — достаточно создать объект JumpStartModel, вызвать deploy и обращаться к эндпоинту клиентом SageMaker runtime, потому что JumpStart отдаёт артефакты модели и готовый serving-контейнер. Фундаментальными моделями JumpStart можно пользоваться из SageMaker Studio или программно через SageMaker Python SDK — второй путь и использует этот разбор.

Схема обработки такая: клиент отправляет HTTP-запрос, в теле которого целевой текст, референсное аудио в base64 и расшифровка записи; SageMaker направляет запрос в serving-контейнер vLLM-Omni на GPU-инстансе. Стадия talker генерирует речевые токены из текста и референсного голоса, стадия code2wav рендерит их в волновую форму, а клиенту ответ возвращается как аудио в запрошенном формате — в разборе это WAV. Контейнер выдаёт аудио 24 кГц.

Память GPU: почему хватает одной L4

Модель работает двумя стадиями на одной видеокарте, и vLLM резервирует память заранее по параметру gpu_memory_utilization — доле памяти, которую может заявить стадия; обе стадии должны уложиться в ёмкость карты, иначе на старте будет ошибка нехватки памяти.

В разборе на обе стадии ставится одно значение 0,45: 0,45 + 0,45 = 0,90, то есть остаётся примерно 10 процентов запаса. Веса модели при этом небольшие — 3,66 ГиБ у talker и 0,45 ГиБ у code2wav, — а большая часть остального лимита каждой стадии уходит под KV-кэш, рабочую память для токенов запросов в обработке.

При 0,45 на 24-гигабайтной карте (около 22 ГиБ доступных) каждая стадия может занять до примерно 10 ГиБ, и вдвоём они укладываются с запасом. Поэтому шага ml.g6.4xlarge — одной NVIDIA L4 на 24 ГБ — для модели на 1,7 млрд параметров достаточно, а карта крупнее не требуется.

Две детали, без которых запрос не пройдёт

У эндпоинта SageMaker один путь /invocations, и по умолчанию контейнер направляет его в обработчик completions. Чтобы попасть в обработчик синтеза речи, нужно передать кастомный атрибут route=/v1/audio/speech — без него запрос отклоняется.

Полезная нагрузка использует схему OpenAI speech с полем task_type, равным "Base" для клонирования голоса, и включает URI референсного клипа вместе с его расшифровкой. Референс передают как base64-URI вида data:audio/wav;base64,..., и рекомендуется заранее привести запись к моно-WAV 24 кГц; ответ приходит в формате, указанном в response_format.

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

Ёмкость, мониторинг и уборка

Оценивать одновременную нагрузку предлагается по бюджету KV-кэша из логов: на старте контейнера в лог-группе эндпоинта появляется строка вида «GPU KV cache size: 56,928 tokens», и это общая ёмкость кэша в токенах, которую делят на средний размер запроса. Запросы синтеза обычно короткие, так что один инстанс держит несколько одновременных, а для роста трафика добавляют инстансы или берут карту крупнее с автоматическим масштабированием SageMaker.

Метрики эндпоинта SageMaker публикует в CloudWatch автоматически: метрики уровня инстанса идут в пространстве имён /aws/sagemaker/Endpoints, метрики запросов — в AWS/SageMaker, в обоих случаях с измерениями EndpointName и VariantName. Метрика Invocations со статистикой Sum показывает общее число запросов за период и помогает подобрать размер инстанса и выставить сигнализации.

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

Первоисточники

  1. «Deploying real-time personalized speech with Qwen3-TTS on Amazon SageMaker AI» — блог AWS Machine Learning, 25 сентября 2026
  2. Qwen3-TTS-12Hz-1.7B-Base — карточка модели Qwen на Hugging Face
  3. «JumpStart foundation model usage» — документация Amazon SageMaker AI