Голосові асистенти телефонують клієнтам монотонним роботом — 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> Отримайте консультацію нашого інженера — підберемо оптимальне рішення під вашу архітектуру. Зв'яжіться з нами для детального аудиту та попередньої оцінки.







