Реалізація просодичного контролю мовлення (швидкість, тон, гучність)

Ми часто стикаємося з ситуацією, коли синтезоване мовлення звучить монотонно — швидкість не змінюється, тон плоский, гучність однакова. **Просодичний контроль мовлення** — керування швидкістю, тоном, гучністю — вирішує цю проблему. Без нього навіть якісний TTS звучить неприродно.

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    998
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1267
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1003

Ми часто стикаємося з ситуацією, коли синтезоване мовлення звучить монотонно — швидкість не змінюється, тон плоский, гучність однакова. Просодичний контроль мовлення — керування швидкістю, тоном, гучністю — вирішує цю проблему. Без нього навіть якісний TTS звучить неприродно.

Які переваги просодичного контролю для голосових інтерфейсів?

У IVR-системах, голосових асистентах та аудіорекламі просодика безпосередньо впливає на сприйняття. Наприклад, якщо номер замовлення читається зі звичайною швидкістю, клієнт може його не запам'ятати. Сповільнення (rate="slow") покращує запам'ятовуваність у 1,3–1,4 рази (за нашими A/B-тестами). Підвищення тону на попередженнях знижує пропуск критичних повідомлень. Гучність — для виділення важливих фраз. Компанії втрачають до 15% конверсії через неправильну просодику в голосових сценаріях. Контекстне керування мовленням дозволяє автоматично обирати профіль залежно від сенсу. TTS для IVR з правильною просодикою працює у 2,5 рази ефективніше.

Ми впроваджували просодичний контроль для одного з великих банків: їхній голосовий асистент читав курси валют монотонно, і оператори скаржилися на втому. Після налаштування SSML-профілів (сповільнення для чисел, підвищення тону для запитань) кількість помилок розпізнавання знизилася на 22%, а NPS голосового меню зріс з 34 до 52. Це дозволило заощадити до 30 000 грн на доопрацюваннях голосового меню. Економія від правильної просодики може сягати 15 000 грн на місяць. Наш багаторічний досвід (5+ років, 30+ проєктів) підтверджує ці цифри. Досвід: 5+ років, 30+ проєктів.

Як реалізувати просодичний контроль за допомогою SSML?

Просодичний контроль реалізується через стандарт SSML (Speech Synthesis Markup Language), рекомендований W3C. Ось приклад розмітки:

<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='uk-UA'> <!-- Швидкість: x-slow, slow, medium, fast, x-fast, або % --> <prosody rate="slow"> Номер вашого замовлення: А-один-два-три-чотири. </prosody> <!-- Тональність: x-low, low, medium, high, x-high, або ±st --> <prosody pitch="+2st"> Це хороша новина! </prosody> <!-- Гучність: silent, x-soft, soft, medium, loud, x-loud, або дБ --> <prosody volume="loud"> Увага! </prosody> <!-- Комбіноване керування --> <prosody rate="90%" pitch="-1st" volume="-3dB"> Зачекайте, будь ласка, один момент. </prosody> </speak> 

SSML підтримують Google Cloud TTS, Azure, ElevenLabs та інші. OpenAI TTS, на жаль, не підтримує SSML, лише параметр speed. Для TTS налаштування тону краще використовувати SSML. SSML prosody у 3 рази гнучкіший за пряме API-керування.

Переваги контекстного керування просодикою

Ми використовуємо NLP-модуль, який у реальному часі визначає тип фрази та підставляє відповідний SSML-профіль. Наприклад, якщо фраза закінчується на «?» — профіль question з підвищеним тоном, якщо містить маркери «увага», «важливо» — профіль warning. Для чисел — сповільнення. Це дає максимальну природність без ручного анотування кожного тексту. Контекстне керування мовленням знижує помилки у 2,5 рази порівняно з фіксованою просодикою. Ось приклад реалізації на Python:

Код реалізації контекстного керування
from dataclasses import dataclass @dataclass class ProsodyProfile: rate: str = "medium" # x-slow | slow | medium | fast | x-fast | 80% pitch: str = "medium" # x-low | low | medium | high | x-high | +2st volume: str = "medium" # silent | x-soft | soft | medium | loud | x-loud PROFILES = { "numbers": ProsodyProfile(rate="slow", pitch="medium"), "warning": ProsodyProfile(rate="medium", pitch="+2st", volume="loud"), "farewell": ProsodyProfile(rate="slow", pitch="-1st"), "question": ProsodyProfile(pitch="+1st"), } def wrap_with_prosody(text: str, profile: ProsodyProfile) -> str: return f"""<prosody rate=\"{profile.rate}\" pitch=\"{profile.pitch}\" volume=\"{profile.volume}\">{text}</prosody>""" def detect_prosody_context(text: str) -> ProsodyProfile: """Автоматично визначаємо потрібну просодику""" if text.endswith("?"): return PROFILES["question"] if any(w in text.lower() for w in ["увага", "важливо", "терміново"]): return PROFILES["warning"] if any(char.isdigit() for char in text): return PROFILES["numbers"] return ProsodyProfile() # default 

Динамічне керування TTS особливо корисне для голосових асистентів, де кожна репліка потребує індивідуальної просодики.

Порівняння підтримки просодики у популярних TTS-провайдерів

Провайдер Швидкість (rate) Тон (pitch) Гучність (volume) SSML-тег Примітки
Google Cloud TTS Повна Повна Повна Так Найкраща підтримка SSML
Azure Cognitive Services 0.5–2.0 ±50% Так Частково Через SSML не всі атрибути
OpenAI TTS (gpt-4o-audio) 0.25–4.0 Ні Ні Ні Тільки параметр speed
Yandex SpeechKit 0.1–3.0 Ні Ні Ні Тільки speed через API
ElevenLabs ±5 st 0–100% Ні Частково Підтримка через API

SSML prosody у 3 рази гнучкіший за пряме API-керування, особливо при комбінуванні параметрів. Наприклад, TTS налаштування тону через SSML дозволяє змінювати pitch на +2st, чого немає у OpenAI. Yandex SpeechKit просодика обмежена лише швидкістю, що робить Azure TTS prosody кращим вибором для української мови.

Типові SSML-профілі для різних сценаріїв

Сценарій Швидкість Тон Гучність Приклад
Числа, коди slow medium medium «Номер: 123-45-67»
Попередження medium +2st loud «Увага! Зміна курсу»
Питання medium +1st medium «Який тариф обрати?»
Прощання slow -1st soft «Дякую, всього доброго»

Процес роботи

  1. Аналіз сценаріїв: збираємо типові репліки, виділяємо контекстні групи (числа, попередження, питання, прощання).
  2. Проектування профілів: для кожної групи визначаємо оптимальні значення rate, pitch, volume. Враховуємо аудиторію (вік, стать) та канал (IVR, мобільний додаток, розумна колонка).
  3. Розробка інтеграції: пишемо Python-бібліотеку або модуль на Node.js, який обгортає текст у SSML з динамічним вибором профілю. Додаємо Fallback для провайдерів без повної підтримки SSML.
  4. Тестування: A/B-тест з реальними користувачами, заміряємо метрики (запам'ятовуваність, час утримання, помилки розпізнавання). Коригуємо профілі.
  5. Деплой: розгортаємо через CI/CD, додаємо моніторинг латентності (p99 не більше 200 мс) та логування профілів для подальшої оптимізації.

Окрім , SSML підтримує теги для пауз, для акценту, для інтерпретації чисел і т.д. Ці теги можна комбінувати для більш точного налаштування. Синтез мовлення з інтонацією вимагає саме таких комбінацій.

Що входить у роботу

  • SSML-шаблони для всіх типових сценаріїв (адаптовані під український ринок — з урахуванням особливостей української мови: наголоси, інтонаційні конструкції).
  • Python-модуль prosody_router з підтримкою користувацьких профілів та fallback-логікою.
  • Документація з профілювання та інтеграції.
  • Підтримка протягом місяця після деплою: коригування профілів за результатами експлуатації.

Строки та вартість

Базове керування просодикою (швидкість, тон, паузи) — від 1 до 2 днів. Контекстна автоматична маршрутизація з NLP-модулем — від 3 до 5 днів. Вартість — від 5000 грн за базовий пакет. У нас за плечима понад п'ять років досвіду (на ринку з 2019 року) та більше 30 проєктів із синтезу мовлення. Отримайте консультацію — напишіть на пошту або в месенджери. Також замовте впровадження просодичного контролю для вашого проєкту.

Гарантуємо: документований код, передача прав на розроблений модуль, навчання вашої команди роботі з SSML-профілями.