Точне налаштування інтонації та пауз у TTS з SSML-розміткою

Роботизоване звучання синтезу мовлення виказує автоматику й знижує довіру до продукту. Ми налаштовуємо SSML-розмітку під ключ: керуємо інтонацією, наголосами та паузами так, щоб озвучення звучало як живе мовлення диктора. Скорочуємо час на переозвучення та правки сценаріїв: правки вносяться в розмітку, а не в запис.
Часті запитання

SSML-розмітка: чому синтез мовлення звучить роботом

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

Звідси рубані фрази, наголос в озвученні не на тому складі («зАмок» замість «замОк»), злиплі слова на стику прийменника й іменника та паузи в мовленні там, де жива людина їх не робить.

Найгірше з неоднозначним текстом: абревіатури, числа, латиниця всередині української фрази, прізвища, топоніми, назви тарифів. Без явних правил рушій прочитає «г.» як «год», а рідкісне прізвище — з наголосом за замовчуванням. Слухач помічає це миттєво, бо мовлення він обробляє швидше, ніж усвідомлює.

SSML-розмітка дає важелі саме на ці місця: теги задають паузу та її тривалість, наголос, темп, гучність і тембр окремої фрази, підказують, як читати число або абревіатуру, а словник вимови закріплює терміни та власні назви.

Але розмітка заради розмітки звучить карикатурно — її будують під мовленнєвий сценарій: привітання, підтвердження, відмова й довідка отримують різну інтонацію синтезу мовлення.

У готовому продукті ціна помилки видна за поведінкою людей. Там, де природність звучання кульгає, зростає частка перепитувань, слухачі кидають запис на середині й не доходять до потрібного пункту голосового меню. Далі розбираємо, як це закривається на рівні тексту й налаштувань синтезу.

Що дає керована інтонація та розстановка пауз

Керування інтонацією перетворює озвучення з «читає текст» на «говорить за змістом»: SSML-розмітка задає темп, гучність і емфазу на окремому слові. Правка одного параметра чутна на конкретній репліці, тому частка фрагментів, що йдуть на ручне переозвучення, падає в рази.

Розстановка пауз — окрема робота, а не коми зі сценарію. Коротка пауза всередині переліку, довга на зміні смислового блоку, повна тиша перед ключовою цифрою. Репліка вкладається в хронометраж без підрізання й розтягування звуку, і монтаж перестає бути обов’язковим етапом.

Словник вимови фіксує те, що синтез за замовчуванням читає неправильно: назви компаній, абревіатури, топоніми, числа в непрямих відмінках.

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

На прийманні озвучення перевіряємо не «подобається чи ні», а контрольні точки: збіг наголосів зі смисловим розбором, тривалість паузи в стиках, точність словника на наборі складних термінів.

Швидкість приймання сценарію зростає, бо правки йдуть списком параметрів, а не перезаписом доріжки цілком: узгодження вкладається в одну ітерацію замість кількох.

SSML-розмітка: режими керування інтонацією та паузами

Speech Synthesis Markup Language (SSML) — стандарт розмітки для синтезу мовлення, який рушії підтримують лише частково. Один і той самий файл на різних голосах дає або рівні паузи й правильні наголоси, або ігнорується та ламає інтонацію фрази.

Тому ми беремо мінімальний рівень втручання, достатній для задачі, і заздалегідь знаємо обмеження кожного.

Рівень Що дає Коли підходить Межі
Паузи й наголоси break, emphasis — ритм репліки та акцент на слові Підказки, інтерфейсні фрази, автовідповіді Тон і тембр залишаються налаштуваннями рушія
Темп мовлення й гучність prosody — прискорення, уповільнення, затухання на ділянці Довгі інструкції, тарифи, попередження На швидкому темпі з'їдаються закінчення й чути «метал»
Просодія: тон і тембр голосу Інтонаційний контур фрази, голос персонажа Ролики, аудіогід, озвучення персонажа Частина рушіїв ігнорує параметр, на стиках фраз — розриви
Словникові заміни sub, say-as — абревіатури, бренди, числа, дати Термінологія, артикули, назви Фонетичні алфавіти підтримуються не скрізь

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

Такі прогони займають години, а не дні, і знімають головний ризик — «на тестовому голосі звучало добре».

Етапи впровадження: від аудиту сценарію до передавання правил

Порядок робіт побудовано так, щоб кожен етап залишав перевірюваний артефакт: розібраний сценарій, схему подавання, набір правил і запис-еталон.

Ми не «дошліфовуємо» голос у проді — усі зміни йдуть через версії файлу розмітки, тому повернення до попередньої інтонації займає хвилини.

  1. Аудит сценарію. Читаємо текст разом із режисерським завданням: де смисловий акцент, де перелік, де питання. Позначаємо місця, де рівне читання ламає зміст — злиплі пункти, абревіатури, числа й дати, які звучать неправильно.
  2. Схема подавання тексту. Зводимо сценарій у таблицю «фрагмент → роль → поведінка голосу»: темп, пауза до й після, сила акценту. Це карта, за якою пишуться правила; без неї розмітка перетворюється на набір випадкових вставок.
  3. Налаштування правил озвучення. Збираємо шаблони SSML під кожен тип фрагмента: паузи, наголоси, темп, вимова чисел і скорочень. Перевіряємо на кількох голосах і швидкостях, щоб правило не розсипалося під час зміни диктора.
  4. Прослуховування на реальних каналах. Телефонна лінія, колонка, навушники: вузькосмуговий канал з'їдає частину пауз, і це чути лише на пристрої. Правимо там, де зміст губиться.
  5. Приймання на слух. Замовник слухає еталонні фрагменти й ставить правки голосом — «тут квапливо», «це звучить як питання». Кожну перетворюємо на конкретну зміну розмітки.
  6. Передавання регламенту. Віддаємо документ із правилами, шаблони, інструкцію з додавання нових текстів і коротке навчання команди замовника — далі сценарії озвучуються без нас.

Схеми просодії, шаблони й регламенти в проєкті

Після здавання проєкту в замовника залишається не «налаштований голос», а робочий контур: файли правил, за якими озвучення можна змінювати власними силами.

Усе, що вивірено в SSML-розмітці, лежить поруч із текстами й версіонується разом із ними — під час оновлення сценарію видно, яка правка до якого результату привела.

  • Бібліотека правил — типові конструкції розмітки під інтонаційні ролі: питання, перелік, акцент на числі, попередження, пауза перед ключовим словом.
  • Шаблони реплік — заготовки для повторюваних сцен: привітання, підтвердження, уточнення, повідомлення про помилку, завершення розмови.
  • Словник вимови — таблиця «пишеться / звучить»: абревіатури, латиниця, одиниці вимірювання, назви продуктів замовника, які синтезатор читає неправильно.
  • Карта просодії — межі темпу, висоти тону й тривалості паузи для кожного сценарію; вихід за них ловиться на прийманні, а не в готовому продукті.
  • Регламент оновлення озвучення — хто вносить правку, які перевірки проганяються, як нова версія порівнюється з попередньою і як відкотитися.
  • Документація з озвучення — структура файлів, призначення кожного правила й логіка винятків: новий інженер розбереться без листування з нами.
  • Чек-ліст приймання — що прослуховувати перед викладенням: числа, абревіатури, стики фраз, початок і кінець сценарію.

Комплект знімає головний ризик: озвучення не застигає після релізу й не потребує нас для кожної нової фрази.

Кейс: прибрали рубані фрази в озвученні інструкцій

Замовник — сервісна мережа, яка озвучує інструкції з монтажу й обслуговування обладнання.

Синтез читав технічні блоки рівним потоком: переліки склеювалися в одну фразу, пауза перед попередженням не відрізнялася від паузи всередині речення, а скорочення й одиниці вимірювання вимовлялися як вийде.

Кожну другу репліку редактор повертав на переозвучення — правки йшли в текст, а не в розмітку, і на наступному прогоні дефект спливав знову.

Голос збирали на Amazon Polly: платформа розуміє SSML-розмітку, але писати її вручну на сотні реплік безглуздо. Ми зібрали бібліотеку шаблонів — окремий на крок, на попередження, на перелік, на заголовок розділу.

Усередині задали темп: попередження читаються повільніше за основний текст, між смисловими блоками пауза помітно довша, ніж усередині фрази; терміни й абревіатури йдуть через словник вимови, а не через підказки в тексті.

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

Що змінилося

Метрика До Після
Частка реплік на переозвучення близько 4 з 10 менше 1 з 10
Збірка повного пакета інструкцій 3–4 дні одна зміна
Правок на одну репліку 5–7 ітерацій 1–2

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

Що робити, якщо синтез уже розгорнуто й паузи не працюють

Успадкований синтез рідко буває порожнім: озвучення вже розгорнуто, репліки записано, сценарій написано. Проблема в іншому — частину SSML-розмітки така система мовчки ігнорує: команда проходить без помилки, але на виході виходить рівне мовлення без пауз та акцентів. Перший крок — не переписувати тексти, а з'ясувати фактичну карту підтримки.

Проганяємо одну й ту саму фразу з різними тегами та порівнюємо результат на слух і за тривалістю звучання. Так стає видно, що паузи й зміна висоти тону відпрацьовують, прискорення та виділення слова обрізаються, а вкладені конструкції ламають сусідню розмітку. Часткова підтримка розмітки — робоча ситуація, з нею можна будувати керування інтонацією.

Далі надбудовуємо шар перетворення поверх наявного запису: сценарій залишається як є, а перед синтезом єдина нотація розкладається в ті команди, які система реально розуміє.

Непідтримувані команди замінюємо обхідними прийомами — розділовими знаками, розбиттям довгої репліки на окремі фрази, локальною правкою темпу на початку й у кінці речення.

Зворотна сумісність тут обов'язкова умова: репліка без розмітки має звучати так само, як до доопрацювання, інакше поїде все вже узгоджене озвучення.

Тому зміни вносимо точково, для кожного тексту зберігаємо попередню версію й перевіряємо, що нове звучання відрізняється лише там, де воно задано явно. Так доопрацювання наявного озвучення дає керовану інтонацію без переписування сценарію.

Часті технічні сумніви щодо синтезу мовлення

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

Що буде з розміткою під час зміни рушія синтезу або голосу?

Базові теги — паузи, темп, гучність, виділення — переносяться майже без правок.

Вендорські розширення й тонке налаштування тембру потребують адаптації: розмітку тримаємо окремим шаром між текстом і рушієм, тому зміна рушія або голосу — правка адаптера, а не перевичитування всього корпусу.

Як перевірити природність на слух, а не за документацією?

Сліпим прослуховуванням: ті самі фрази через різні версії розмітки, оцінка за чек-лістом — наголоси, злитність слів, ритм, паузи на розділових знаках, омографи. Спірні фрагменти йдуть у правку словника вимови, а не в ручний перезапис.

Як озвучувати діалог, щоб репліки не звучали одним голосом?

Репліки розмічаються за ролями: за кожною закріплено свій голос і темп, між ними — керовані паузи, гучність вирівнюється за загальним рівнем. Так зберігаються тембр персонажа й ритм розмови, включно з перебиваннями та короткими відповідями.

Що змінюється в багатомовному озвученні?

Мова задається окремим тегом на фрагмент, фонетика та правила наголосу перемикаються разом із нею. Один голос рідко звучить достовірно на всіх мовах — під кожну беремо відповідний голос і свій словник вимови для імен і термінів.

Де синтез усе ще поступається живому запису?

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

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

Щоб оцінка була предметною, а не «на око», потрібен вхідний набір — той самий, із яким працюватиме система. Постановка задачі без прикладів реплік майже завжди дає розходження в очікуваннях, тому починаємо з матеріалів, а не з обговорення строків.

  • Приклади реплік — 15–30 фраз у тому вигляді, у якому їх почує користувач: привітання, відмова, цифри, назви, емоційні піки.
  • Список мов і діалектів, включно зі змішаними фразами, де абревіатура або латиниця стоїть усередині українського мовлення.
  • Вимоги до подавання — тон, темп, тембр, стать і вік голосу, референс диктора в аудіо, якщо він є.
  • Словник вимови — абревіатури, назви, одиниці вимірювання, числа й дати, які синтез читає неправильно.
  • Канал відтворення — телефонна лінія, застосунок, ролик: від нього залежить довжина пауз і допустима затримка відгуку.
  • Поточна SSML-розмітка — якщо вона вже застосовується, покажіть файл: видно, які конструкції працюють, а які синтезатор ігнорує.

Із цього збирається план робіт: словник, ручна розмітка пауз і наголосів, прогони на ваших репліках, приймання за узгодженими критеріями.

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

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

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

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