В модели Fish Audio S2 Pro нет привычных фонем. Разработчики научили её генерировать звук так же, как LLM генерируют текст, и теперь интонацией управляют обычные текстовые теги.

Обычные системы синтеза речи подходят для новостей и аудиокниг. Но если вы делаете голосового бота, начинаются проблемы. Голос звучит монотонно. Он не чувствует контекст. Чтобы добавить эмоции, приходится собирать сложные конструкции из SSML-тегов (как в Silero или облачных движках).

Fish Audio предложили другой подход. Их новая модель S2 Pro обучалась на 10 миллионах часов аудио. Она работает со звуком как с обычным языком. Вы больше не настраиваете ползунки интонации. Вы пишете в тексте \[whisper\] или \[laughing\], и голос отыгрывает нужную эмоцию. Посмотрим, как это устроено.

Эмоции прямо в тексте

В старых TTS-моделях для смены интонации приходилось дообучать сеть или мучиться с фонетической разметкой. В S2 Pro вы управляете голосом через теги. Модель понимает более 15 000 описаний на английском языке — от коротких команд вроде \[angry\], \[sigh\], \[laughing\] до свободных фраз типа \[professional broadcast tone\].

Возможности Fish Audio S2 Pro

Для разработчиков это меняет архитектуру приложения. За логику эмоций теперь отвечает не аудио-модель, а ваша основная языковая LLM (открытая модель вроде Qwen или облачный агент). Она сама решает по контексту, где вставить вздох \\\[short pause\\\], а где сказать фразу с акцентом \\\[with strong accent\\\]. Fish Audio лишь озвучивает переданные теги. Модель также нативно поддерживает мультиязычность и умеет говорить разными голосами в одной реплике, если передать токены <|speaker:i|>.

Как это работает изнутри: Dual-AR архитектура

В S2 Pro нет привычной цепочки «текст → акустическая модель → вокодер». Здесь работает двойная авторегрессионная архитектура (Dual-AR), состоящая из двух трансформеров:

  1. Медленный AR (4 млрд параметров). Движется по временной оси и генерирует базовый семантический слой звука. Именно он следит за интонацией и выполняет текстовые команды из тегов.
  2. Быстрый AR (400 млн параметров). На каждом шаге он достраивает остальные 9 слоев остаточных кодовых книг (residual codebooks). Это восстанавливает акустические детали, добавляя звуку глубину и реалистичность.
Пример использования тегов эмоций в чате

Такая асимметрия задач дает высокую детализацию звука без потери скорости. На видеокарте H200 модель выдает фактор реального времени (RTF) около 0.195, а время до первого звука (Time-to-First-Audio, TTFA) составляет всего около 100 миллисекунд. Голосовой бот начинает отвечать без пауз.

Обучение с подкреплением для звука (GRPO)

Текстовые LLM давно тренируют с помощью RLHF, чтобы они давали адекватные ответы. Создатели Fish Audio применили этот же метод к генерации аудио, используя алгоритм GRPO (Group Relative Policy Optimization) на этапе выравнивания.

Отдельные модели-критики (реворд-модели) слушают сгенерированный звук и оценивают его по четырем параметрам: семантическая точность, следование тегам, акустическая привлекательность и сходство тембра с оригиналом. Благодаря этому S2 Pro реже ошибается в ударениях и звучит естественно, даже если модель обучали на «грязных» аудиозаписях из интернета.

Ограничения

Ограничения

Требования к железу: Модель крупная (4B).

Для стриминга с низким RTF в продакшене потребуется GPU уровня H200 и серверный движок SGLang с поддержкой Paged KV Cache.

Аудиогаллюцинации: В основе лежит языковая модель, поэтому иногда она придумывает лишнее.

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

Zero-shot клонирование: Модель умеет клонировать голос «на лету» по отрывку аудио в 10–30 секунд.

Но если вам нужен безупречный фирменный голос для бренда без артефактов, сеть всё равно придется дообучать (файн-тюнинг).

Антипаттерны

Антипаттерны

Писать сложную разметку:

Использовать старые SSML-теги для пауз и эмоций вместо естественных текстовых команд вроде \[whisper\].

Жестко задавать эмоции: Прописывать интонации в коде вручную.

Логичнее поручить выбор эмоций текстовой LLM, которая генерирует сам ответ бота.

Запускать на CPU для интерактива:

Пытаться развернуть 4-миллиардную модель на слабых серверах без GPU и ожидать приемлемого TTFA для диалогового агента.

Чеклист

Чеклист

Подготовьте реальные фразы:

Соберите 20-30 реплик из логов ваших реальных разговоров с пользователями.

Настройте LLM-маршрутизатор:

Попросите вашу текстовую нейросеть расставить эмоции в этих фразах (например, добавить \[chuckle\] в шутку).

Сделайте клон:

Запишите 15–30 секунд чистого референсного аудио для инициализации голоса.

Замерьте задержки: Посчитайте время от отправки запроса до первого звука (TTFA).

Для комфортного разговора оно должно укладываться в 100–300 мс.

Ссылки

Ссылки