AI-инжиниринг

Text-to-Speech: OpenAI TTS, ElevenLabs, voice cloning - генерация речи

Цели урока

  • Понять ландшафт TTS-провайдеров и критерии выбора (latency, качество, стоимость)
  • Научиться генерировать речь через OpenAI TTS API с выбором голоса и формата
  • Разобраться в SSML и текстовых альтернативах для управления просодией
  • Реализовать streaming pipeline: LLM stream -> sentence buffer -> TTS -> client audio
  • Оптимизировать стоимость TTS через кеширование, opt-in и tiered providers

ElevenLabs за 18 месяцев достиг 1 миллиарда долларов valuation на одной идее: TTS который звучит как человек. OpenAI tts-1 стоит 15 долларов за миллион символов. ElevenLabs - от 22 долларов. Разрыв - качество и voice cloning. Cartesia Sonic - новый игрок с latency менее 100ms. И Kokoro - open-source модель, которая работает на CPU без API. Latency streaming менее 300ms - это граница между 'говорит' и 'тормозит'. Всё это работает в production прямо сейчас.

  • ElevenLabs озвучивает аудиокниги и подкасты - голос, неотличимый от реального диктора, за долю стоимости студийной записи
  • ChatGPT Voice Mode обслуживает миллионы голосовых диалогов - end-to-end voice pipeline с latency менее 1 секунды
  • Google Maps и навигаторы используют TTS для голосовых подсказок - миллиарды запросов в день через Amazon Polly и Google Neural TTS
  • Duolingo генерирует произношение для 40+ языков через TTS - каждый пример и диалог озвучен без студийной записи

26 лет от робота до человека

**1996**: Алан Блэк выпускает Festival - первый open-source TTS. Звучит как робот. Используется в автоответчиках и screen readers. **2016**: DeepMind публикует WaveNet - нейронная сеть, которая генерирует звук семпл за семплом. Качество революционное. Скорость - катастрофическая: одна секунда аудио генерируется 90 секунд. **2019**: Tacotron 2 + HiFi-GAN. Mel-спектрограмма + нейронный вокодер. Первый раз TTS стал пригодным для real-time использования. **2022**: ElevenLabs. Команда из Лондона берёт transformer-архитектуру, обучает на тысячах часов речи, добавляет voice cloning. 1 миллиард долларов valuation за 18 месяцев. **2024**: OpenAI GPT-4o voice mode - LLM генерирует аудио-токены напрямую, без отдельного TTS. Kokoro - open-source модель уровня ElevenLabs, работает на CPU. Граница между синтезом и записью стёрта.

Предварительные знания

  • Speech-to-Text: Whisper, Deepgram, Browser API - Speech Recognition in Production

TTS-ландшафт: от робота до человека

1996 год. Университет Эдинбурга. Алан Блэк выпускает Festival - первый open-source TTS. Звучит как робот с насморком. 2016 год. DeepMind публикует WaveNet - нейронная сеть, которая генерирует звук семпл за семплом. Качество взрывное, но слишком медленно для реального времени. 2022 год. ElevenLabs. Стартап, который за 18 месяцев достигает оценки 1 миллиард долларов на одной идее: TTS, неотличимый от живого человека. Расстояние от Festival до ElevenLabs - 26 лет и несколько порядков качества.

Выбор TTS-провайдера определяется тремя осями: натуральность голоса, latency (время до первого байта аудио) и стоимость. OpenAI tts-1 стоит 15 долларов за миллион символов. ElevenLabs - от 22 долларов. Разрыв - качество и voice cloning. Cartesia Sonic - новый игрок с latency менее 100ms, который переосмысляет что значит 'real-time'. Latency streaming менее 300ms - это граница между 'говорит' и 'тормозит'. На 400ms пользователь уже чувствует паузу.

ПровайдерКачествоLatency (TTFB)Цена за 1M символовStreamingVoice cloning
OpenAI TTSВысокое~500msUSD 15 (tts-1) / USD 30 (tts-1-hd)ДаНет
ElevenLabsОчень высокое~300ms22-99 (по плану)ДаДа
Cartesia SonicВысокое<100ms0.065/1K charsДаНет
Google Cloud TTSХорошее~400msUSD 4 (standard) / USD 16 (neural)ДаНет
Amazon PollyХорошее~300msUSD 4 (standard) / USD 16 (neural)ДаНет
Kokoro (open-source)ВысокоеЗависит от GPUSelf-hosted, бесплатноДаНет

**TTS != voice mode.** Классический TTS - это отдельный pipeline: текст -> аудио. Voice mode в GPT-4o - end-to-end система, где LLM генерирует аудио-токены напрямую, минуя текстовый этап. Для backend-интеграции в 2026 году используется классический TTS - предсказуемый, кешируемый, управляемый.

Для голосового ассистента с минимальной задержкой и высоким качеством, какой параметр TTS-провайдера наиболее критичен?

OpenAI TTS API: генерация речи за один вызов

OpenAI TTS API - минимальный по сложности интеграции TTS-провайдер. Один POST-запрос, три обязательных параметра (model, input, voice), и в ответе - аудиофайл. Никаких streaming сессий, никакого WebSocket, никакого SDK-инициализации на 200 строк. Две модели: `tts-1` (USD 15 за 1M chars, быстрая, для real-time) и `tts-1-hd` (USD 30 за 1M chars, высокое качество, для pre-rendered контента). tts-1-hd иногда звучит менее естественно при быстрой речи - парадокс, но это так.

МодельКачествоLatencyЦена / 1M символовКогда использовать
tts-1Хорошее (иногда артефакты)~300ms TTFB15Real-time ответы, чаты, ассистенты
tts-1-hdВысокое~800ms TTFB30Подкасты, аудиокниги, pre-rendered контент

**Лимит 4096 символов.** OpenAI TTS принимает до 4096 символов за запрос. Для длинных текстов нужно разбивать на части по предложениям, генерировать каждый фрагмент отдельно и склеивать аудио. При streaming-подходе фрагменты можно отправлять клиенту последовательно.

Какой response_format оптимален для streaming TTS в web-приложении?

Выбор голоса, SSML и управление произношением

TTS - это не просто озвучка текста. Это управление просодией. Prosody - скорость, ударение, паузы, тон, эмоциональная окраска. Одна и та же фраза 'всё в порядке' звучит как успокоение, ирония или тревога в зависимости от того, как расставлены паузы и где интонация идёт вверх. SSML (Speech Synthesis Markup Language) - это XML-диалект, который даёт точный контроль над каждым параметром. Поддерживается Google Cloud TTS, Amazon Polly, Azure. OpenAI TTS - нет. ElevenLabs - нет. Зато у них есть другое.

ElevenLabs даёт то, чего нет у OpenAI: voice cloning (30 секунд аудио - и голос скопирован), stability/similarity параметры, emotional tone через text prompting. Модель `eleven_multilingual_v2` работает на 29 языках с одинаковым акцентом. Это не про цену - это про другое качество продукта.

**A/B-тестирование голосов.** Предпочтения пользователей в голосе субъективны. Рекомендация - сгенерировать одинаковый текст всеми доступными голосами, дать послушать 5-10 людям из целевой аудитории и выбрать по голосованию. Не полагаться на мнение разработчика.

TTS = просто озвучка текста. Отправил строку - получил аудио.

TTS - это управление просодией: tempo, emphasis, speaking rate, emotional tone, паузы между фразами. Одна и та же фраза может быть сгенерирована 10 способами с разным смыслом.

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

Как добавить паузу между предложениями в OpenAI TTS, который не поддерживает SSML?

Streaming TTS: от текста до воспроизведения в браузере

Полный pipeline голосового ассистента: LLM генерирует текст по чанкам - каждый чанк буферизируется в предложение - предложение отправляется в TTS - аудио стримится клиенту - браузер воспроизводит по мере получения. Ключевая задача - минимизировать суммарную latency. ElevenLabs streaming даёт первый аудио-чанк через 150-200ms после отправки текста. Это быстрее, чем пользователь замечает паузу.

**Не отправлять каждый токен LLM в TTS отдельно.** TTS нужен контекст предложения для правильной интонации. Слово 'нет' в конце вопроса и в начале утверждения звучит по-разному. Собирать минимум одно полное предложение перед отправкой в TTS.

Почему в pipeline LLM->TTS нельзя отправлять каждый токен LLM в TTS отдельно?

Стоимость TTS: кеширование, batching, выбор провайдера

TTS - одна из самых дорогих операций в AI-стеке. LLM-запрос с ответом в 500 токенов (около 400 символов) стоит ~0.001 доллара на gpt-4o-mini. Озвучивание того же ответа через OpenAI TTS - 0.006 доллара. В 6 раз дороже, чем сам ответ. На 5000 запросов в день: LLM - USD 150 в месяц, TTS - USD 900 в месяц. TTS становится основной статьёй расходов быстрее, чем ожидается.

СтратегияЭкономияСложность
Кеширование повторяющихся фраз20-40% (зависит от hit rate)Низкая
Убрать markdown/URL перед TTS10-30% (меньше символов)Низкая
Opt-in TTS (кнопка "Прослушать")70-90% (большинство не нажмёт)Низкая
Tiered providers (дешёвый для длинных)30-50%Средняя
Self-hosted Kokoro на GPU80-95% (только GPU cost)Высокая
Pre-render static content100% для статикиСредняя

**Самая эффективная оптимизация - opt-in TTS.** Вместо автоматического озвучивания каждого ответа - кнопка 'Прослушать'. По статистике, только 10-20% пользователей нажмут. Экономия 80-90% при нулевой потере UX для остальных.

Приложение тратит USD 1000 в месяц на TTS. Средний ответ - 500 символов, 5000 запросов/день. Какая оптимизация даст максимальный эффект?

TTS = просто озвучка текста. API принимает строку - возвращает аудио. Инженерная задача минимальна.

TTS - это управление просодией: tempo, emphasis, speaking rate, emotional tone, паузы. Подготовка текста перед TTS, выбор голоса, управление latency через streaming - это отдельная инженерная область.

Плохо подготовленный текст на входе TTS звучит механически даже с лучшей моделью. Аббревиатуры читаются побуквенно (А-П-И), markdown теги озвучиваются, URL превращаются в абракадабру. Форматирование текста для TTS - это первый шаг, который большинство пропускает.

Итоги

  • TTS-провайдеры: OpenAI (USD 15 за 1M chars, простой API), ElevenLabs (лучшее качество, voice cloning), Cartesia (<100ms latency), Kokoro (open-source, self-hosted)
  • OpenAI TTS: model + voice + input, streaming через Readable.fromWeb(), лимит 4096 символов
  • SSML поддерживается Google/Amazon/Azure, но не OpenAI. Альтернатива - пунктуация как интонационные подсказки
  • Streaming pipeline: LLM tokens -> sentence buffer -> TTS per sentence -> chunked audio -> browser playback
  • TTS стоит в 3-6 раз дороже самого LLM-ответа при одинаковом объёме - главная статья расходов в voice apps
  • Главная оптимизация - opt-in TTS (кнопка 'Прослушать'): 80-90% экономии при нулевой потере UX

Вопросы для размышления

  • Cartesia Sonic даёт latency менее 100ms, но стоит 0.065 за 1K символов - дороже OpenAI. При каком сценарии это оправдано?
  • Kokoro - open-source TTS на уровне ElevenLabs, работает без API. Какие проблемы возникают при self-hosting TTS в production?
  • В pipeline LLM -> TTS: если LLM генерирует ответ за 2 секунды, а TTS добавляет 300ms на предложение - где узкое место и как его сместить?

Что дальше

TTS завершает voice pipeline: STT -> LLM -> TTS. Следующий шаг - multimodal AI, где голос становится одним из нескольких входных каналов наряду с изображениями, видео и документами.

  • Multimodal AI — TTS - audio output. Multimodal расширяет входы: vision, audio input, документы
  • Real-time AI — STT + LLM + TTS streaming = real-time voice assistant с задержкой менее 1 сек
  • Cost Management — TTS - значимая статья расходов. Детальные стратегии оптимизации в уроке о cost management

Связанные уроки

  • aie-23-speech-to-text — TTS - выходная половина голосового pipeline
  • aie-43-realtime-ai — Streaming TTS делает голосовых ассистентов быстрее секунды
  • aie-29-cost-management — TTS - доминирующая статья расходов для оптимизации
  • aie-08-streaming — Переиспользует chunked streaming для доставки аудио
  • net-36-websocket — Низколатентный дуплекс для живого аудио
  • dsp-01
Text-to-Speech: OpenAI TTS, ElevenLabs, voice cloning - генерация речи

0

1

Войти