Интеграция SaluteSpeech TTS (Сбер) для синтеза речи

Голосовой интерфейс ломается на пиках нагрузки: реплики обрываются, звучание плывёт от запроса к запросу. Мы настраиваем синтез речи под ключ — от подбора голосов до схемы отказоустойчивости. Результат: время подготовки озвучки сокращается в разы, а звук остаётся ровным при росте обращений.
Часто задаваемые вопросы

SaluteSpeech TTS: где ломается синтез речи в продукте

Синтез речи ломается не на демо, а на живом трафике. Аудио генерируется не мгновенно, и когда несколько десятков пользователей одновременно открывают карточку товара или запускают чтение длинного документа, запросы встают в очередь: задержка озвучки растёт до нескольких секунд, а воспроизведение обрывает фразу на середине слова. Для интерфейса это выглядит как случайные сбои, для пользователя — как неработающая озвучка текста.

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

Самый дорогой отказ — недоступность внешнего сервиса синтеза. Если аудио запрашивается «на лету» и без резерва, продукт замолкает целиком: экран работает, звука нет. Закрывается это предгенерацией часто запрашиваемых фрагментов, хранением готовых дорожек в привязке к тексту и выбранному голосу и понятной деградацией на случай, когда синтез недоступен. Разбираем, как это закрывается по каждому классу сбоев.

Что даёт управляемый синтез речи: скорость и стабильность

Синтез речи в продукте — это не один вызов, а контур: текст делится на фразы, уходит на озвучку, возвращается аудио и кешируется по хешу строки. SaluteSpeech TTS в такой схеме отвечает за голос, а логика повторов, приоритетов и подмены остаётся на нашей стороне. Поэтому качество синтеза перестаёт зависеть от того, какой сценарий пользователь открыл первым.

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

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

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

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

Режимы синтеза: поток, пакетная озвучка, гибридная схема

Синтез через SaluteSpeech TTS упирается не в качество голоса, а в режим подачи текста. Если инициатор — пользователь в диалоге, ждать озвучки всего ответа нельзя; если система озвучивает массив документов, важнее равномерно загрузить очередь и не держать соединение открытым. Поэтому в одной интеграции обычно живут три режима, и выбираем мы их под сценарий, а не по умолчанию.

Вариант Когда подходит Ограничения
Потоковый синтез Ответы в диалоге, голосовой бот, подсказки в интерфейсе: звук нужен до готовности всего текста Обрыв соединения рвёт фразу — нужен буфер и повторная отправка хвоста; сложнее считать длину паузы между репликами
Пакетная озвучка Большие массивы: регламенты, каталоги, обучающие курсы, ночные выгрузки Результат отдаётся только целиком после обработки очереди, интерактивности нет, правка одного фрагмента гонит весь текст заново
Гибридная схема Диалог с повторяющимися фразами: приветствия, статусы, ошибки, короткие ответы Нужен слой предзаписи и правило инвалидации: изменил шаблон — пересобрал запись, иначе клиент услышит старую формулировку

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

Внедрение SaluteSpeech TTS: этапы инженерной работы

Перед запуском синтеза речи разбираем, что система произносит вслух: длину реплик, частоту, требования к задержке и допустимое качество на разных каналах — телефонная линия и колонка в зале звучат по-разному. От этого зависит схема вызова SaluteSpeech и то, какие фразы готовим заранее, а какие отдаём на лету.

  1. Аудит сценариев. Собираем все реплики голосового меню, бота или озвучки объявлений, делим на постоянные и динамические, фиксируем требования к отклику.
  2. Схема интеграции. Определяем точки вызова и поведение при недоступности синтеза — запасная фраза вместо обрыва диалога и потерянной заявки.
  3. Настройка произношения. Ведём словарь замен: аббревиатуры, числа, даты, названия, имена, ударения в омонимах. Каждое правило проверяем на эталонных фразах.
  4. Предгенерация и потоковая отдача. Постоянные фразы синтезируем один раз и храним готовыми, динамические отдаём потоком, чтобы абонент не ждал полной сборки.
  5. Проверка под нагрузкой. Прогоняем пиковые сценарии и отказы: замеряем задержку до первого звука, долю успешных ответов и рост очереди на пике.
  6. Приёмка решения. Прослушиваем контрольный набор текстов вместе с заказчиком, сверяем интонацию и произношение, фиксируем перечень правок.
  7. Передача в эксплуатацию. Отдаём конфигурацию, словарь произношения, схему интеграции и регламент: как добавлять новые фразы и что делать при сбое.

Пакет передачи: конфигурации, схемы, регламенты

Передаём не «работающий сервис», а комплект, по которому ваш инженер или наш контур сопровождения сможет развивать синтез речи без археологии по чужому коду. Состав пакета фиксируем на старте интеграции SaluteSpeech TTS и уточняем под ваши процессы — ниже то, что входит по умолчанию.

  • Конфигурации сервиса. Профили подключения, набор голосов, скорость и тембр, лимиты на длину запроса и правила разбиения длинных текстов на фрагменты. Помечено, какие параметры меняются без пересборки.
  • Схема интеграции. Путь текста от источника (сайт, база, очередь) через нормализацию до готового аудио и места его хранения. Отмечены точки отказа, повторы и поведение при таймауте.
  • Правила доступа. Разделение сред, права на ключи, ротация секретов, ограничения по частоте запросов и порядок действий при компрометации доступа.
  • Словарь произношения. Аббревиатуры, бренды, имена и числительные с эталонным звучанием: что читается по буквам, что словом, где нужна пауза. Закрывает основную причину жалоб на «робота» без правки кода.
  • Регламент обновления. Как выпускается новая версия голоса или настроек, какие проверки идут до выката и как вернуться к предыдущему набору, если звучание изменилось.
  • Инструкции для поддержки. Дерево диагностики по типовым обращениям: нет звука, обрезанный фрагмент, неверное ударение, отказ внешнего сервиса.
  • Документация. Описание интерфейсов, примеры запросов, чек-лист проверок и протокол приёмки с согласованным перечнем голосов.

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

Кейс: голосовой помощник службы поддержки на синтезе речи

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

Перевели типовые ответы на синтез: реплика собирается из базы знаний, оператор подключается там, где нужен разбор конкретной ситуации. Подключили SaluteSpeech TTS — речевой блок стал не записанным файлом, а строкой текста и набором правил её произношения. Новый блок готовится правкой формулировки, без студийной сессии и пересборки сценария.

Что изменилось после перевода на синтез

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

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

Что делать, если синтез речи уже развёрнут на другом сервисе?

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

Вызов синтеза выносим за адаптер: приложение отдаёт текст и параметры, а поставщик выбирается настройкой, а не правкой кода в десяти местах. Отдельная работа — разметка: паузы, ударения, числа и аббревиатуры разные сервисы читают по-своему. Словари произношения и лексиконы переносим и проверяем на реальных текстах, иначе голос начнёт спотыкаться на терминологии.

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

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

Технические сомнения: голоса, лимиты, приватность данных

SaluteSpeech TTS — облачный синтез речи, и почти все технические сомнения вокруг него сводятся к четырём темам: управляем ли голос, что происходит на пиках нагрузки, куда уходят тексты и как звучат термины.

Часть ограничений снимается подготовкой: словари произношений, разметка ударений и пауз, глоссарий сокращений. Ниже — ответы на вопросы, которые приходят от инженерных команд чаще всего.

Можно ли сделать кастомный голос?

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

Что будет при недоступности сервиса синтеза?

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

Куда уходят тексты и кто имеет к ним доступ?

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

Разборчивы ли термины и аббревиатуры?

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

Обсудим задачу: синтез речи под ваш сценарий и нагрузку

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

  • Примеры реальных фраз: реплики оператора, объявления, ответы бота — сотня-другая строк прямо из вашей системы.
  • Голоса и роли: сколько дикторов нужно и какая подача — нейтральная, эмоциональная, с характерным тембром.
  • Каналы: телефония, веб-виджет, мобильное приложение, точка на объекте — где именно звучит синтез.
  • Нагрузка: среднее и пиковое число обращений в минуту, длина реплики, требование к задержке отклика.
  • Ограничения контура: где допустимо обрабатывать персональные данные, что требуется по хранению и журналам.

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

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1374
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142