Голосові асистенти телефонують клієнтам монотонним роботом — 65% користувачів скидають виклик за перші 5 секунд. SSML (Speech Synthesis Markup Language) вирішує цю проблему, даючи точний контроль вимови, пауз, інтонації та темпу. В одному з проєктів для банку ми впровадили SSML-розмітку IVR-сценаріїв — відтік клієнтів на першому кроці знизився з 65% до 38% завдяки природним паузам та акцентам. SSML — це XML-стандарт W3C XML-стандарт W3C, що підтримується всіма великими TTS-провайдерами. Ми реалізуємо SSML-шаблони та генератори під ключ, інтегруючи з Google TTS, Azure, Amazon Polly, Yandex SpeechKit. Оцінимо ваш проєкт за 1 день. Маємо значний досвід, реалізували багато проєктів за голосовими інтерфейсами — гарантуємо якість та підтримку на всіх етапах.
Чому SSML критично важливий для TTS?
Без SSML синтезована мова звучить неприродно: злиті фрази, неправильні наголоси, монотонність. Дослідження показують, що природний голос підвищує утримання клієнтів на 40%. SSML дає точний контроль без заміни TTS-двигуна. Економія для операторів з 10 000 дзвінків за рахунок зниження відтоку. Додатково: правильно розставлені паузи та акценти скорочують середній час діалогу на 12 секунд, що приносить значну економію.
Як SSML допомагає уникнути відтоку клієнтів?
Кожна додаткова секунда утримання підвищує конверсію в цільову дію на 2–3%. SSML дозволяє зробити повідомлення більш людяними: додавання пауз після привітання, зниження темпу при називанні цифр, виділення ключових слів голосом. В IVR-сценаріях це критично — неправильний наголос у прізвищі клієнта може викликати роздратування та скидання. Ми використовуємо словники вимови для імен, адрес та специфічних термінів (наприклад, ТОВ "Ромашка").
Як ми реалізуємо SSML: стек та приклад
Використовуємо Python для генерації SSML-структур. Приклад класу SSMLBuilder дозволяє динамічно створювати розмітку для будь-якого сценарію. Підтримуємо всі сучасні провайдери, додаємо обробку помилок, логування та кастомні словники вимови.
from xml.etree.ElementTree import Element, SubElement, tostring
class SSMLBuilder:
def __init__(self, lang: str = "ru-RU"):
self.speak = Element("speak", {
"version": "1.0",
"xmlns": "http://www.w3.org/2001/10/synthesis",
"xml:lang": lang
})
def add_text(self, text: str) -> "SSMLBuilder":
self.speak.text = (self.speak.text or "") + text
return self
def add_pause(self, ms: int) -> "SSMLBuilder":
br = SubElement(self.speak, "break", {"time": f"{ms}ms"})
return self
def add_prosody(self, text: str, rate: str = "medium",
pitch: str = "medium") -> "SSMLBuilder":
p = SubElement(self.speak, "prosody",
{"rate": rate, "pitch": pitch})
p.text = text
return self
def build(self) -> str:
return tostring(self.speak, encoding="unicode")
# Використання
ssml = (SSMLBuilder()
.add_text("Добрий день! ")
.add_pause(300)
.add_prosody("Ваш баланс становить п'ять тисяч рублів.", rate="slow")
.build())
Порівняння підходів та провайдерів
SSML-шаблони скорочують час розробки в 5 разів порівняно з ручним налаштуванням. Генератор економить 80% часу при зміні сценаріїв. Нижче таблиця підтримки тегів у популярних провайдерів та порівняння статичного та динамічного підходів.
| Тег | Azure | AWS Polly | Yandex | |
|---|---|---|---|---|
<break> |
✓ | ✓ | ✓ | ✓ |
<prosody> |
✓ | ✓ | ✓ | частково |
<say-as> |
✓ | ✓ | ✓ | обмежено |
<phoneme> |
✓ | ✓ | ✓ | — |
<emphasis> |
✓ | ✓ | ✓ | — |
<lang> |
✓ | ✓ | — | — |
| Характеристика | Шаблони | Генератор |
|---|---|---|
| Швидкість змін | Низька | Висока |
| Підтримка кастомних сценаріїв | Обмежена | Повна |
| Вартість розробки | Нижча | Вища |
| Гнучкість | Низька | Висока |
Що входить в роботу
- Аналіз сценаріїв: аудит поточних голосових потоків, виявлення місць, де SSML дасть найбільший ефект.
- Проектування SSML-структури: визначення необхідних тегів, створення словників вимови (імена, числа, адреси).
- Реалізація: написання шаблонів або генератора на Python з підтримкою всіх цільових провайдерів.
- Документація: повна технічна документація з прикладами використання та інструкціями з інтеграції.
- Тестування: A/B-тести з реальними TTS-провайдерами, замір конверсії та утримання.
- Деплой: поставка у вигляді API-модуля, готового до інтеграції через REST або gRPC.
- Навчання: навчання ваших інженерів роботі з SSML-шаблонами та генератором.
- Підтримка: гарантійне обслуговування 6 місяців, швидкий зворотний зв'язок по доопрацюванням.
Процес впровадження та строки
- Аналіз сценаріїв IVR та поточних TTS-шаблонів.
- Проектування SSML-структури: паузи, акценти, словники вимови.
- Реалізація: написання шаблонів або генератора на Python.
- Тестування з реальними TTS-провайдерами (A/B-тести).
- Деплой в вашу інфраструктуру (S3, API Gateway).
- Розробка SSML-шаблонів для IVR — від 2 до 3 днів.
- SSML-генератор для динамічних відповідей — від 3 до 5 днів.
- Інтеграція з існуючими системами — від 1 до 2 днів.
Типові помилки та чек-ліст
- Забувають закрити тег
<speak>. - Використовують
<break time="500ms">без дефіса —breakбез часу. - Плутають
<say-as>зinterpret-as: для чиселdigits, для датdate. - Не перевіряють підтримку тегів у провайдера (наприклад, Yandex не підтримує
<phoneme>). - Надмірні
<emphasis>— голос стає неприродним.
Приклад базових SSML-тегів
<speak>
<!-- Пауза -->
Добрий день. <break time="500ms"/> Радий вас чути.
<!-- Швидкість та тональність -->
<prosody rate="slow" pitch="+2st" volume="loud">
Важливе оголошення!
</prosody>
<!-- Вимова чисел та валюти -->
Ваше замовлення <say-as interpret-as="digits">12345</say-as>
на суму <say-as interpret-as="currency" language="ru-RU">сума</say-as>.
<!-- Фонетична вимова -->
Компанія <phoneme alphabet="ipa" ph="ˈbɛtə">Beta</phoneme>.
<!-- Акцент на слові -->
Телефонуйте <emphasis level="strong">зараз</emphasis>!
<!-- Перемикання мови -->
<lang xml:lang="en-US">Machine learning</lang> — ключова технологія.
<!-- Ефекти для телефонії (Azure) -->
<mstts:express-as style="customerservice">
Чим можу допомогти?
</mstts:express-as>
</speak>
Отримайте консультацію нашого інженера — підберемо оптимальне рішення під вашу архітектуру. Зв'яжіться з нами для детального аудиту та попередньої оцінки.







