За кулисами голоса: как ИИ подстраивает эмоции под речь
Когда ваш ИИ-компаньон говорит, голос — это не плоское монотонное зачитывание текста. Система анализирует эмоциональное содержание каждого сообщения и соответствующим образом настраивает голос: радостный ответ звучит энергично и тепло, нежный момент — мягко и размеренно, игривое поддразнивание получает более лёгкое, динамичное звучание.
В этом посте мы подробно объясняем, как это работает: конвейер преобразования текста в речь, система распознавания эмоций, сопоставление эмоций с параметрами голоса и честные ограничения текущего подхода.
---
Как работает синтез речи (основы)
На верхнем уровне современный синтез речи (TTS) преобразует текст в аудио с помощью нейросети:
1. Анализ текста: входной текст разбивается на лингвистические единицы (фонемы, маркеры просодии, структуру предложений)
2. Акустическое моделирование: нейросеть предсказывает характеристики звука — высоту, длительность, энергию и спектральные признаки каждого сегмента
3. Генерация волновой формы: вокодер превращает акустические предсказания в реальную аудиоволну, которую вы слышите
Современные нейросетевые TTS-системы производят удивительно естественную речь. Они далеко ушли от роботизированных голосов прежних поколений. Но между «звучит как человек, читающий текст» и «звучит как человек, испытывающий эмоцию во время речи» всё ещё есть разрыв. Наша система работает над тем, чтобы его сократить.
---
Наши три TTS-провайдера
Мы используем трёх разных TTS-провайдеров, каждый для своей задачи:
Edge TTS (бесплатный уровень)
- Что это: нейросетевой TTS-сервис Microsoft, доступный через рантайм Edge
- Число голосов: 40+ голосов на разных языках и с разными акцентами
- Качество: хорошее естественное звучание с базовым контролем просодии
- Стоимость: бесплатно — без посимвольной оплаты
- Лучше всего для: обычных разговоров, повседневного общения, пользователей, не желающих тратить кредиты на голос
Edge TTS выдаёт чистую, естественно звучащую речь. Он не поддерживает тонкий контроль эмоциональных параметров, как ElevenLabs, но хорошо справляется с базовой выразительностью благодаря естественным паттернам просодии, встроенным в нейромодель.
ElevenLabs (премиум-уровень)
- Что это: специализированная платформа ИИ-синтеза голоса с продвинутым эмоциональным контролем
- Число голосов: несколько высококачественных голосов с выраженными характерами
- Качество: лучшая в классе эмоциональная выразительность и естественность
- Стоимость: кредиты списываются за каждый сгенерированный символ
- Лучше всего для: эмоционально насыщенных разговоров, интимных моментов, озвучки Story Mode
ElevenLabs — то место, где наш конвейер «эмоция → голос» даёт наибольший эффект. API открывает прямой контроль над параметрами голоса — stability, similarity boost и style, — которые мы сопоставляем с распознанными эмоциями.
Coqui (локальный/self-hosted)
- Что это: TTS-движок с открытым исходным кодом, работающий локально на наших серверах
- Число голосов: настраивается с помощью пользовательских голосовых моделей
- Качество: хорошее, постоянно улучшается с обновлениями моделей
- Стоимость: без затрат на внешние API (только вычисления)
- Лучше всего для: генерации больших объёмов, снижения внешних зависимостей, экспериментов с пользовательскими голосами
Coqui даёт нам возможность генерировать речь без опоры на внешние сервисы. Это также наш полигон для экспериментальных голосовых функций.
---
Система распознавания эмоций
Прежде чем TTS-движок сгенерирует звук, наша система анализирует текст, чтобы определить эмоциональный тон. Вот как это работает.
7 эмоций, которые мы распознаём
Эмоция Описание Типичные триггеры
--------- ------------- -----------------
Радость Счастье, восторг, энтузиазм Смех, праздники, хорошие новости, игривая энергия
Грусть Меланхолия, сочувствие, утешение Утрата, разочарование, эмпатия, тоска
Гнев Раздражение, интенсивность, страсть Конфликт, несправедливость, резкое несогласие
Страх Тревога, беспокойство, неловкость Опасность, неопределённость, волнение, уязвимость
Удивление Изумление, откровение Сюжетные повороты, неожиданные события, открытия
Флирт Игривость, поддразнивание, влечение Комплименты, намёки, романтическое напряжение
Нежность Мягкость, забота, близость Утешение, близость, эмоциональная уязвимость, любовь
Как работает распознавание
Текущая система распознавания эмоций основана на ключевых словах. Она сканирует текст на слова и фразы, связанные с каждой эмоцией:
- Индикаторы радости: «haha», «love it», «amazing», «excited», «wonderful», восклицательные знаки
- Индикаторы грусти: «sorry», «miss you», «wish», «unfortunately», «hurts»
- Индикаторы флирта: «wink», «tease», «blush», «gorgeous», игривые формулировки
- Индикаторы нежности: «care about you», «safe with me», «gently», «softly», «hold you»
Каждое найденное ключевое слово добавляет баллы к оценке уверенности этой эмоции. Эмоция с наивысшим баллом становится основной распознанной эмоцией.
Оценка уверенности
Не у каждого сообщения есть явный эмоциональный тон. Система присваивает распознанной эмоции значение уверенности (от 0.0 до 1.0):
- Высокая уверенность (0.7+): несколько сильных индикаторов одной эмоции. Параметры голоса меняются значительно.
- Средняя уверенность (0.4–0.7): индикаторы присутствуют, но не доминируют. Параметры голоса меняются умеренно.
- Низкая уверенность (ниже 0.4): неоднозначный или нейтральный текст. Голос остаётся близким к базовому/нейтральному профилю.
Такое смешивание на основе уверенности предотвращает резкие эмоциональные скачки голоса на неоднозначном тексте. Если система не уверена, какая эмоция присутствует, она действует осторожно.
---
Как эмоции сопоставляются с параметрами голоса
Для ElevenLabs (нашего самого выразительного провайдера) распознанные эмоции переводятся в три ключевых параметра голоса:
Stability (динамика голоса)
Определяет, насколько голос стабилен или изменчив:
- Ниже stability = больше вокальной вариативности, больше выразительности и энергии
- Выше stability = более размеренная, контролируемая, ровная подача
Similarity Boost (естественность)
Определяет, насколько результат близок к базовому голосовому профилю:
- Ниже similarity = более творческая интерпретация, потенциально более эмоциональная, но менее стабильная
- Выше similarity = более точное следование естественному звучанию голоса
Style (выразительность)
Определяет общую выразительность подачи:
- Выше style = более драматичная, эмоционально подчёркнутая речь
- Ниже style = более сдержанная, разговорная
Сопоставление эмоций и параметров
Вот как каждая эмоция настраивает эти параметры:
Эмоция Stability Similarity Boost Style Эффект
--------- ----------- ----------------- ------- --------
Радость Ниже (0.3) Средний (0.6) Выше (0.7) Динамично, энергично, выразительно
Грусть Выше (0.7) Выше (0.8) Средний (0.5) Медленнее, размеренно, мягко
Гнев Ниже (0.25) Средний (0.5) Выше (0.8) Интенсивно, напористо, драматично
Страх Средний (0.5) Выше (0.7) Средний (0.6) Напряжённо, слегка нетвёрдо, тревожно
Удивление Ниже (0.3) Средний (0.5) Выше (0.7) Быстро, динамично, с широким диапазоном
Флирт Средний (0.45) Средний (0.6) Средний (0.6) Игривая вариативность, тепло, поддразнивание
Нежность Выше (0.65) Выше (0.75) Средний (0.5) Мягко, тепло, бережно, интимно
Нейтральная Средний (0.5) Средний (0.65) Ниже (0.4) Естественно, разговорно, сбалансированно
Эти значения — базовые. Они дополнительно корректируются оценкой уверенности: низкая уверенность подтягивает все параметры ближе к нейтральным.
---
Персонализация голоса для каждого персонажа
У разных ИИ-компаньонов разные базовые голосовые профили:
- Выбор голоса: каждому персонажу назначается конкретный голос (voice ID) у TTS-провайдера, соответствующий его характеру
- Базовые параметры: у персонажей есть индивидуальные значения stability, similarity и style по умолчанию, определяющие их «нейтральный» голос
- Эмоциональный диапазон: одни персонажи по умолчанию более эмоционально выразительны, другие — более сдержанны. Эмоциональные настройки применяются относительно базовой линии каждого персонажа.
У игривого, энергичного персонажа голос будет естественно более динамичным даже в нейтральном режиме, а у спокойного, загадочного персонажа базовая линия будет более размеренной. Эмоциональные сдвиги накладываются поверх этих индивидуальных настроек.
---
Честные ограничения
Мы считаем важным прозрачно говорить о том, что система делает хорошо, а где не дотягивает.
Что работает хорошо
- Явные эмоции распознаются надёжно. Сообщение, полное восклицательных знаков и слов вроде «amazing» и «love», корректно вызовет радостный голос. Сообщение об утрате и грусти даст более мягкую, размеренную подачу.
- Система уверенности предотвращает ложные срабатывания. Неоднозначный текст не вызывает резких вокальных скачков.
- Разные эмоции звучат заметно по-разному. Пользователи слышат разницу между радостным и нежным ответом.
Что работает хуже
- Распознавание по ключевым словам — это не ML. Оно не понимает контекст, сарказм и тонкие эмоциональные нюансы. Сообщение вроде «Oh great, another Monday» (саркастичное) скорее всего будет помечено как позитивное из-за слова «great».
- Смешанные эмоции упрощаются. Если сообщение содержит и радость, и грусть, система выбирает доминирующую, а не смешивает их. Реальная человеческая речь часто несёт смешанные эмоциональные тона.
- У Edge TTS ограничен контроль параметров. Тонкое сопоставление эмоций полностью работает только с ElevenLabs. Edge TTS полагается на встроенную модель просодии, менее отзывчивую к явным эмоциональным указаниям.
- Эмоциональный диапазон Coqui зависит от модели. Одни локальные модели справляются с эмоциями лучше, другие хуже.
Что мы улучшаем
- Мы оцениваем ML-модели распознавания эмоций, понимающие контекст, а не только ключевые слова. Это значительно улучшит обработку сарказма, иронии и тонких эмоциональных состояний.
- Мы работаем над смешиванием эмоций — генерацией голоса, несущего две эмоции одновременно.
- Мы расширяем нашу библиотеку голосов более разнообразными голосовыми профилями.
---
Приватность и аудиоданные
Несколько важных моментов о том, как мы обращаемся с голосовыми данными:
- Аудио генерируется по запросу. Когда вы запрашиваете голосовой вывод, звук генерируется в реальном времени.
- Только временное кеширование. Сгенерированное аудио может ненадолго кешироваться для плавного воспроизведения, но не хранится постоянно.
- Никакого клонирования голосов пользователей. Мы не записываем, не храним и не обрабатываем ваш голос. TTS-система однонаправленная: текст входит, аудио выходит. Ваш микрофон никогда не используется.
- Обработка данных провайдерами. При использовании ElevenLabs текст сообщения отправляется в их API для синтеза. Обращение ElevenLabs с данными регулируется их собственной политикой конфиденциальности. Для пользователей, предпочитающих локальную обработку текста, Coqui работает целиком на наших серверах.
---
Итог
Наша голосовая система — это конвейер: текст входит, эмоция распознаётся, параметры голоса настраиваются, и генерируется выразительное аудио. Она не идеальна: у распознавания по ключевым словам есть реальные ограничения, а нейросетевому TTS ещё есть куда расти в эмоциональной достоверности.
Но результат — голосовой вывод, который ощущается заметно более человечным, чем плоский синтез речи. Ваш ИИ-компаньон не просто произносит слова — он произносит их так, как эти слова того требуют. И мы непрерывно работаем над тем, чтобы это соответствие становилось точнее и естественнее.
Мы предпочитаем честно говорить о несовершенствах, а не делать вид, что система является чем-то, чем она не является. Технология по-настоящему впечатляет — и становится лучше с каждой итерацией.