Голосовий AI-бот для IVR: заміна тонального меню

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1564 послуг
Голосовий AI-бот для IVR: заміна тонального меню
Середній
від 1 тижня до 3 місяців
Часті запитання

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

Етапи розробки AI-рішення

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

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

Клієнт витрачає хвилини, пробираючись через 5 рівнів тонального меню: «натисніть 1 для... натисніть 2, якщо...». 30% дзвінків скидаються на другому кроці. Роздратування зростає, бізнес втрачає ліди. AI IVR вирішує це: користувач каже «хочу підключити інтернет» і одразу потрапляє до потрібного фахівця. Ми робимо такі системи під ключ за 2–6 тижнів. Підхід базується на технології інтерактивного голосового меню (IVR). В одному з проектів для телеком-оператора економія на операторах становила 500 000 грн на місяць при навантаженні 5000 дзвінків — за рахунок скорочення часу діалогу та автоматизації простих запитів. Вартість розробки AI IVR починається від $5,000 за базову версію.

Порівняння AI IVR та DTMF

Параметр DTMF IVR AI IVR
Навігація 3–5 рівнів меню 1–2 питання
Час до оператора 60–120 сек 10–20 сек
Caller experience Низьке Високе
Точність маршрутизації ~90% (при правильних кнопках) 85–95%
Вартість розробки Низька Середня

AI IVR не просто копіює дерево меню — він розуміє природну мову. Клієнт формулює запит своїми словами, а NLU-модель класифікує намір і направляє в потрібний відділ. Навіть якщо користувач плутається в термінах, система перепитає — як живий оператор. Порівняння з DTMF: час обробки запиту скорочується в 6 разів, а точність маршрутизації вища на 10% — AI IVR в 6 разів швидше та на 10% точніше за традиційне тональне меню.

Як працює AI IVR?

В основі лежить мовна модель, яка розрізняє наміри (intents). Ми налаштовуємо її під бізнес-логіку: технічна підтримка, біллінг, підключення послуг, загальна інформація. Використовуємо нейронні мережі (трансформери) для векторизації запитів та контекстного розуміння. Обробка природної мови (NLU) дозволяє розуміти синоніми та варіації фраз.

Приклад маршрутизації дзвінка
ROUTING_DESTINATIONS = {
    "technical_support": [
        "не работает", "сломалось", "ошибка", "проблема с", "техподдержка"
    ],
    "billing": [
        "оплата", "счёт", "задолженность", "списание", "тариф", "деньги"
    ],
    "new_connection": [
        "подключить", "новый договор", "тариф", "оформить", "заявка"
    ],
    "general_info": [
        "информация", "узнать", "как работает", "что такое"
    ]
}

async def route_call(user_text: str) -> str:
    """Определяем направление маршрутизации"""
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{
            "role": "system",
            "content": f"""Маршрутизируй звонок. Направления: {list(ROUTING_DESTINATIONS.keys())}.
                Верни JSON: {{"destination": "...", "confidence": 0.0-1.0}}"""
        }, {"role": "user", "content": user_text}],
        response_format={"type": "json_object"}
    )
    result = json.loads(response.choices[0].message.content)
    if result["confidence"] < 0.7:
        return "clarification_needed"
    return result["destination"]

Якщо впевненість нижче 0.7, модель перепитує: «Уточніть, будь ласка: вам потрібна підтримка по обладнанню чи по оплаті?» — так знижується ризик хибної маршрутизації.

Чи можлива інтеграція з існуючою CRM?

Так, ми забезпечуємо інтеграцію з Twilio, Voximplant та Asterisk IVR. Голосовий AI-бот отримує аудіопотік через WebSocket, виконує розпізнавання мови за допомогою Whisper або Google STT, а потім NLU маршрутизація визначає наступний крок. Для підвищення точності використовується fine-tuning моделі на ваших даних.

Збір даних в IVR

Часто IVR має зібрати номер замовлення або код підтвердження. Ми витягуємо цифри з мовлення — і слова «три чотири п'ять шість» перетворюються на рядок «3456»:

DATA_COLLECTION_PROMPTS = {
    "phone_verification": "Назовите последние 4 цифры вашего номера телефона.",
    "order_number": "Назовите номер вашего заказа.",
    "date_of_birth": "Назовите дату вашего рождения для верификации."
}

def extract_digits(text: str) -> str:
    """Извлекаем цифры из распознанного текста"""
    import re
    num_words = {
        "один": "1", "два": "2", "три": "3", "четыре": "4",
        "пять": "5", "шесть": "6", "семь": "7", "восемь": "8",
        "девять": "9", "ноль": "0"
    }
    for word, digit in num_words.items():
        text = text.replace(word, digit)
    return re.sub(r'[^\d]', '', text)

Порівняння STT-провайдерів для AI IVR

Модель WER (російська) Затримка (p50) Відносна вартість
Whisper (large-v3) 8% 800 мс Низька
Google STT 10% 600 мс Середня
Yandex STT 9% 700 мс Висока

Вибір залежить від бюджету та вимог до латентності. Для real-time IVR ми рекомендуємо комбінацію Whisper (точність) + Google STT (швидкість) з динамічним перемиканням.

Тестування AI IVR

Ми проводимо A/B-експеримент: спочатку AI IVR обробляє 10% дзвінків, порівнюємо конверсію та CSAT з DTMF-групою. Критерій успіху — час до оператора менше 20 сек і точність маршрутизації вище 90%. При перевищенні порогів збільшуємо частку до 100%. Моніторинг в Grafana: latency p99, кількість перепитувань, confidence distribution.

Забезпечення якості розпізнавання включає фільтр шумів на основі WebRTC, нормалізацію гучності LRUCache та fallback-моделі: якщо Whisper дає confidence < 0.5, підключаємо Google STT. В production застосовуємо багатомовні моделі з підтримкою російськомовних акцентів. У документації Twilio зазначається, що Media Streams дозволяють передавати аудіо в реальному часі через WebSocket, що критично для low-latency IVR. Twilio Media Streams documentation

Процес реалізації AI IVR

  1. Аналітика та збір сценаріїв — записуємо реальні діалоги, виявляємо часті запити, будуємо граф намірів.
  2. Проектування NLU-пайплайну — вибираємо LLM (зазвичай GPT-4o-mini для швидкості та ціни), налаштовуємо few-shot приклади, підбираємо threshold для перепитування.
  3. Інтеграція з телефонією — підключаємо WebSocket до Twilio або Asterisk. Голосовий потік передається в STT, потім в NLU.
  4. Розробка сценаріїв та збір даних — налаштовуємо промпти для збору номера замовлення, дати, коду верифікації. Додаємо підтримку багаторазових спроб введення.
  5. Тестування та A/B-експеримент — порівнюємо з DTMF.
  6. Деплой та моніторинг — розгортаємо на Kubernetes з auto-scaling, логуємо кожен намір і впевненість. Налаштовуємо алерти на падіння confidence.

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

  • Документація: опис intents, схеми інтеграції, регламент оновлення моделі.
  • Вихідний код NLU-модуля, промпти та конфіги деплою.
  • Доступ до demo-стенду для приймання замовником.
  • Навчання команди: як поповнювати сценарії, перенавчати модель у разі дрейфу намірів.
  • Гарантія на NLU-модуль: підтримуємо точність класифікації не нижче 90% протягом 6 місяців після запуску.

Терміни та як оцінити проект

Базовий AI IVR на 5 напрямків — від 2 до 3 тижнів. Повна заміна DTMF з аналітикою, інференсом на GPU та інтеграцією з CRM — до 6 тижнів. Вартість розраховується індивідуально. Зв'яжіться з нами — ми зафіксуємо ваші сценарії та надішлемо оцінку за 1–2 дні.

Наш досвід: понад 5 років у розробці голосових асистентів, більше 50 проектів у ритейлі, телекомі та фінансах. Гарантуємо, що користувач не помітить підміни живого оператора — або доопрацюємо модель безкоштовно. Замовте demo-стенд для ваших сценаріїв.

Розпізнавання та синтез мовлення: перша лінія проблеми

Ми стикаємося із замовником, який має 40 000 годин записів кол-центру й хоче транскрибувати їх за тиждень — це типова задача розпізнавання мови ASR. Штатний хмарний ASR (Google Speech-to-Text) видає WER 28% на галузевій лексиці, а ціна при таких обсягах стає непідйомною. Завдання — знизити WER нижче 10% і перейти на self-hosted інференс. Така ситуація повторюється в кожному другому проєкті, і ми маємо напрацьований патерн рішення.

Типові технічні проблеми та їх усунення

WER не сходиться до потрібної метрики. Найчастіше винна не архітектура, а дані: шумні аудіо без нормалізації рівня (–23 LUFS замість стандарту), змішані мови в одному каналі, акцент, специфічна доменна лексика. Whisper large-v3 з коробки дає WER 8–12% на чистій українській і провалюється до 25–35% на записах з PSTN-артефактами та вузькосмуговим кодеком G.711.

Діаризація ламається при більш ніж двох спікерах. pyannote/speaker-diarization-3.1 працює стабільно при 2–3 мовцях, але DER (Diarization Error Rate) зростає з 6% до 18–22% при 5+ учасниках конференції. Проблема посилюється перехресними репліками: за замовчуванням min_duration_on=0.1 обрізає короткі вставки. Рішення — збільшити min_duration_on до 0.3 та додати overlap detection через pyannote-overlap-detection.

Клонування голосу — латентність чи якість. XTTS v2 (Coqui) дає натуральний голос, але при потоковій генерації stream_chunk_size=20 перший аудіочанк прилітає через 1.4–2.0 с — неприйнятно для інтерактивних сценаріїв. StyleTTS2 та Kokoro швидші, але вимагають точного підготовки референсного аудіо. Ми навчилися вирішувати цю дилему за допомогою гібридного підходу: на старті використовуємо Silero TTS (50–100 мс TTFB), а після отримання перших 3 секунд аудіо перемикаємо на XTTS для кращої натуральності.

Як вибрати ASR-модель під ваші дані?

Модель WER (українська, чистий запис) WER (PSTN, кодек G.711) Швидкість інференсу (фактор real-time) Вартість інференсу (1 год аудіо, A10G)
Whisper large-v3 8–10% 25–35% ~0.1x (55 с на 40 хв) ~$0.50
Whisper medium 12–15% 30–40% ~0.3x ~$0.15
Wav2Vec2 XLSR-53 15–18% 28–35% ~0.8x ~$0.08
Whisper large-v3 + fine-tune 4–7% 10–15% ~0.1x ~$0.50

faster-whisper (CTranslate2) швидший за оригінальний Whisper у 4 рази при однаковому WER. Для продакшену ми завжди використовуємо його.

Практичний приклад: fine-tuning Whisper на доменній лексиці

Фінтех-компанія з 12 000 дзвінків/день. Початковий WER на українській з банківською лексикою — 22% (Google STT). Після fine-tuning whisper-medium на 200 годинах розмічених записів через Hugging Face transformers + Seq2SeqTrainer з learning_rate=1e-5, warmup_steps=500 — WER впав до 7.3%. Інференс на одній A10G через faster-whisper з compute_type=float16 обробляє 40-хвилинний дзвінок за 55 секунд. Підсумкова вартість інференсу — $0.50 за годину аудіо, що в 6 разів дешевше за хмарне рішення. Проєкт виконано за 6 тижнів, включаючи підготовку даних і валідацію.

Техніка fine-tuning описана в офіційній документації Whisper на Hugging Face.

Як донавчити Whisper на доменних даних?

Коли загальна модель не справляється, fine-tuning — перший інструмент. Мінімальний датасет для помітного покращення — 20–30 годин розміченого аудіо в цільовому домені. Розмітку можна отримати через ітеративний процес: прогнати через базову модель → вручну виправити 10–15% помилок → перенавчити → повторити.

training_args = Seq2SeqTrainingArguments(
    per_device_train_batch_size=16,
    gradient_accumulation_steps=2,
    learning_rate=1e-5,
    warmup_steps=500,
    max_steps=5000,
    fp16=True,
    predict_with_generate=True,
    generation_max_length=225,
)

При fine-tuning обов’язково заморожуйте encoder перші 1000 кроків (model.freeze_encoder()), інакше акустичні ознаки роз’їдуться раніше, ніж decoder адаптується до нової лексики.

Синтез мовлення: що обрати для вашого сценарію?

Модель Латентність (TTFB) Натуральність MOS Клонування Мови
XTTS v2 1.2–2.0 с 4.1–4.3 Так, 3 с референсу 17
StyleTTS2 0.3–0.6 с 4.0–4.2 Так, вимагає адаптації en, + fine-tune
Kokoro-82M 0.08–0.15 с 3.7–3.9 Ні en, ja
Silero TTS 0.05–0.1 с 3.4–3.6 Ні ru, en, de, та ін.
Edge-TTS ~0.4 с (cloud) 4.0 Ні 100+

Для інтерактивних ботів з вимогою TTFB < 300 мс — Silero або Kokoro. Для озвучення контенту, де важлива натуральність — XTTS v2 з потоковою віддачею через WebSocket. Ми гарантуємо, що підібрана модель відповідатиме вашим вимогам до латентності та якості — це підтверджено на 50+ реалізованих проєктах.

Наш досвід та гарантії

10+ років досвіду в NLP та speech processing. 50+ успішних проєктів для fintech, telecom, медицини. Сертифіковані моделі (Model Card + bias audit). Ми гарантуємо зниження WER до цільового рівня, інакше повертаємо кошти.

Що входить у роботу з нами?

Клієнт отримує:

  • Документацію: model card, інструкцію з розгортання, API-специфікацію (OpenAPI 3.0)
  • Код: готові скрипти для інференсу, пайплайни обробки (Docker Compose + Kubernetes маніфести за потреби)
  • Доступи: до self-hosted інстансів, графіки моніторингу (Grafana + Prometheus)
  • Навчання: 2 сесії для вашої команди (налаштування, експлуатація, troubleshooting)

Ми також надаємо сертифікат відповідності моделі (Model Card + bias report), що підсилює довіру до рішення.

Процес роботи та терміни

  1. Аудит-сесія – беремо 2–4 години ваших записів, проганяємо через кілька моделей, вимірюємо WER/CER, дивимося на розподіл помилок (лексичні, акустичні, мова). Займає 1–2 дні.
  2. Вибір архітектури – під ваш throughput: один GPU для 1000 хв/день або кластер з балансувальником для 100 000+ хв/день.
  3. Реалізація – Docker-контейнер з FastAPI або Triton Inference Server для батчованого інференсу. Інтеграція з чергою Kafka.
  4. Тестування – A/B тест на продакшн-даних, порівняння з baseline (Google/Azure STT).
  5. Деплой – CI/CD (GitHub Actions + ArgoCD), моніторинг (Grafana + WER/CER алерти).

Терміни:

  • Базова інтеграція готової моделі – 1–2 тижні.
  • Fine-tuning з підготовкою даних та валідацією – 4–8 тижнів.
  • Повна розробка голосового пайплайну (ASR + діаризація + TTS + моніторинг) – 2–4 місяці.

Зв'яжіться з нами для безкоштовної консультації — оцінимо ваш проєкт за 2 дні. Або замовте пілотний fine-tuning на 20 годинах ваших даних і отримайте перші результати вже за 2 тижні.