Голосові інтерфейси та асистенти
1) Що таке VUI і коли він потрібен
Голосовий інтерфейс (VUI) - спосіб взаємодії через мовлення: асистенти в додатку/браузері, розумні колонки, IVR/телефонія, голос в авто і ТБ.
Підходить для: рук-зайнятих сценаріїв (водіння, кухня), швидких команд («включи»..., «подзвони»...), доступності, навігації по складних меню.
Не підходить для: точного візуального вибору (каталоги, таблиці), довгого введення структурованих даних без екрану.
2) Модель діалогу: інтенти, сутності та контекст
Інтент (мета): що хоче користувач: «Створити _ платіж», «Перевірити _ баланс».
Слоти/сутності: параметри мети: сума, валюта, адресат, дата.
Контекст/діалог-стейт: що вже відомо, що уточнюємо, де розгалуженим.
Правила підтвердження: що підтверджуємо явно (гроші, персональні дані).
json
{
"intent": "MakeDeposit",
"slots": {
"amount": {"type": "number", "required": true, "confirm": "sensitive"},
"currency": {"type": "currency", "required": true, "default": "UAH"},
"method": {"type": "payment_method", "required": false}
}
}
3) Патерни діалогу
1. Команда однією фразою: «Поповни рахунок на 500 гривень Apple Pay». → підтвердження → дію.
2. Уточнюючий діалог: «Кому перекласти?» → «На яку суму?» → підтвердження.
3. Покроковий майстер: складні сценарії з перевіркою даних і зворотним кроком.
4. Розпізнавання наміру + NLU-перефраз: підтримка варіативних формулювань.
5. Швидкі довідки: «Які ліміти на виведення?» - коротка відповідь + «Показати на екрані».
4) Формулювання: голос і тон
Голос бренду: впевнений, спокійний, доброзичливий; без зменшувальних і «жартів» у критичних кроках (платежі, безпека).
Макс. довжина репліки асистента: 1-2 пропозиції; довгі відповіді - розбивати і пропонувати «Продовжити?»
Питання - конкретні: «На яку суму поповнити?» замість «Що робимо далі?»
5) Підтвердження, безпека та етика
Жорстке підтвердження чутливих дій: проговорювати ключові параметри ("Поповнити на 500 гривень карткою... 4581? »)
Подвійне підтвердження для незворотних операцій.
Без озвучування повних персональних даних.
Можливість скасування/відкату: «Скасування», «Стоп», «Скасувати останній крок».
6) Помилки і нерозуміння
Типи збоїв і відповіді:- ASR-помилка (не розчув): "Не розчула суму. Повторіть, будь ласка"
- NLU-незрозуміло: "Я не зрозуміла запит. Можу поповнити рахунок або показати баланс. Що виберете?"
- Немає даних/обмеження: "Цей метод недоступний у вашому регіоні. Назвати інші варіанти?"
- Мережа/сервіс: "Зараз немає зв'язку з платіжним сервісом. Повторити через хвилину?"
Правило: максимум 2 спроби перепитування → запропонувати альтернативу (на екран/людину).
7) Швидкість і бардж-ін (перебивання)
Латентність TTFB: цільова <300-500 мс; якщо довше - короткий «ем-мм» -сигнал/earcon.
Barge-in: користувач може перебити асистента в будь-який момент; обробляємо переривання коректно.
Стрімінг відповіді: починаємо говорити раніше, ніж готовий весь текст, але без обриву сенсу.
8) TTS/ASR и SSML: Як говорити «людяно»
Вимова чисел/валют/дат: локальні формати («п'ятсот гривень», «15 листопада»).
Паузи та наголоси: SSML `<break time="300ms"/>`, `<emphasis level="moderate">`.
Читання абревіатур/кодів: `<say-as interpret-as="characters">IBAN</say-as>`.
Швидкість і тембр: не швидше 0. 9 × базовою, щоб було розбірливо.
xml
<speak>
Top up on <say-as interpret-as = "cardinal"> 500 </say-as>
<sub alias = "hryvnia"> UAH </sub>?
<break time="300ms"/>
Please confirm.
</speak>
9) Мультимодальність: голос + екран
Візуальні підказки: картка підтвердження, список методів, прогрес.
Hand-off на екран: "Я відправила варіанти на екран. Виберіть метод"
Синхронізація стану: голос ініціює, екран завершує (і навпаки).
10) Багатомовність і локалізація
Автовизначення мови по сесії/налаштуванню, а не по одній фразі.
Глосарій термінів: єдина термінологія для RU/UA/TR/EN.
Регіональні формати чисел/валют/дат, вимова імен/топонімів.
Перемикання у діалоговому вікні: «Перейти на українську» - явна команда.
11) Доступність (A11y) у голосі
Підтвердження дій - чітке і коротке.
Повтор за запитом: «Повторити» озвучує останню репліку.
Гучність/швидкість: «Говори повільніше/тихіше/голосніше».
Для слабочуючих: субтитри/транскрипт на екрані, вібро-сигнали.
Для порушень мовлення: альтернативні способи введення (кнопка, пресети).
12) Конфіденційність, логування та комплаєнс
Wake-word і індикатор запису: явний стан «слухаю».
Локальна обробка, якщо можливо; інакше - мінімізація даних.
Маскування чутливих фрагментів в логах (PAN, IBAN, адреса) і авто-редакція аудіо.
Терміни зберігання і право на видалення за запитом; параметри «Не зберігати історію».
Вікові обмеження/батьківський контроль (дитячі голоси/команди).
Прозорість: "Я записую цю команду, щоб поліпшити розпізнавання. Можна відключити в налаштуваннях"
13) Персона асистента
Ім'я/персона: коротка біографія, область компетенцій, що вміє/не вміє.
Тон щодо ситуацій: звичайний (доброзичливий), критичний (нейтральний), навчальний (підтримуючий).
Межі: «Я не даю фінансових порад, але можу показати довідку».
14) Метрики якості VUI
Intent recognition rate (точність NLU).
Slot fill rate и avg. turns to fill.
ASR WER/CER (помилка розпізнавання слів/символів).
Task Success / Completion rate и Time-to-Complete.
Escalation rate (на оператора/екран).
Barge-in usage и Latency p95.
User Satisfaction/CSAT після сценарію.
Abandonment на кроці.
15) Тестування і QA голосу
Набори тестових фраз: синоніми, розмовні форми, акценти, помилки.
Шуми оточення: вулиця/авто/кухня, різні мікрофони.
Діалог-реплеї: відтворювані сценарії, golden-set для регресії.
Wizard-of-Oz на ранніх етапах.
Юридичні сценарії: як асистент реагує на потенційно небезпечні запити.
16) Інтеграція з продуктом (iGaming-кейси)
Баланс/депозит/висновок: "Який баланс? ", "Поповнити на 200 UAH"..., "Статус виведення".
Бонуси/місії: "Які бонуси доступні? ", "Активуй тижневий кешбек".
Відповідальна гра: «Установи ліміт депозиту 1000 UAH на тиждень».
Статус систем: «Чи є зараз техроботи?»
17) Анти-патерни
Довгі монологи асистента без можливості перебити.
Неявні підтвердження грошових операцій.
Безальтернативне «не зрозуміла» без підказки варіантів.
Надлишкові звуки/джингли, що заважають сприйняттю.
Спроба «голосом» вирішувати завдання, де потрібен детальний візуальний вибір.
18) Шаблони промтів і відповідей
Уточнення слота (сума):- Асистент: «На яку суму поповнити рахунок?»
- Користувач: «П'ятсот».
- Асистент: "Поповнити на 500 гривень? Підтвердіть, будь ласка"
- "Підтвердіть поповнення на 500 гривень карткою... 4581. Сказати «підтверджую» або «скасування»
- "Я не розчула метод оплати. Можу запропонувати: Apple Pay, карта, криптогаманець. Що виберете?"
- "Відправила доступні методи на екран. Виберіть і скажіть "готово", щоб продовжити"
19) Приклади SSML-патернів
Числа/валюта і пауза:xml
<speak>
Your current balance is
<say-as interpret-as="cardinal">1250</say-as>
<sub alias = "hryvnia"> UAH </sub>.
<break time="250ms"/>
Shall we continue?
</speak>
Акцент на важливому слові:
xml
<speak>
<emphasis level = "moderate "> Caution </emphasis>: Verification is required for output.
</speak>
Вимова абревіатури:
xml
<speak>
Recharge with <say-as interpret-as = "characters"> IBAN </say-as>?
</speak>
20) Чек-листи
Діалог/контент перед релізом
- На кожен інтент - список синонімів/варіантів фраз.
- На кожен обов'язковий слот - одне чітке питання.
- Чутливі дії - з явним підтвердженням.
- Є коротка альтернатива «на екран «/« оператор ».
- Репліки ≤ 2 пропозицій; довгі - з "Продовжити? ».
Техніка та якість
- Підтриманий barge-in і повернення в діалог після перебивання.
- Латентність p95 в нормі; є earcons при затримці.
- SSML налаштований: паузи, числа, наголоси.
- Логи знеособлені/замасковані; управління історією є.
- Багатомовність і локальні формати перевірені.
A11y та безпека
- «Повторити/Говори повільніше/Голосніше» працюють.
- Не озвучуються повні персональні/платіжні дані.
- Є скасування/відкат дії голосом.
- Вікові та регіональні обмеження перевірені.
21) Каркас специфікації діалогу (шаблон)
Мета сценарію: (наприклад, «Депозит ≤ 90 сек»)
Інтенти та синоніми: список прикладів фраз.
Слоти: `amount` (req, confirm), `currency` (default=UAH), `method` (enum).
Правила підтверджень: для яких значень/порогів потрібен повтор.
Варіанти помилок: ASR, NLU, немає сервісу - тексти + гілки.
Мультимодальні виходи: які картки/екрани показуємо.
Логи і приватність: що і як маскуємо, TTL зберігання.
Підсумкова шпаргалка
Спочатку інтенти/слоти/правила підтверджень, потім тексти.
Говоріть коротко, дозволяйте перебивати і скасовувати.
Налаштуйте SSML, локальні формати та тон за контекстом.
Тримайте приватність і логування під контролем.
Вимірюйте Intent/Slot/ASR-метрики, Task Success і латентність.
Завжди майте альтернативу на екран і шлях до людини.