Розробка AI-системи голосової біометрії для верифікації клієнта

Клієнти банків ненавидять PIN-коди та секретні питання. Ми допомогли одному банку впровадити **голосову біометрію** — тепер клієнт підтверджує переказ однією фразою. <cite>За даними ЦБ, 68% користувачів віддають перевагу голосовому введенню замість цифр.</cite> Наша система аналізує спектр, тембр та

Напрямки 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
    714
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1006

Клієнти банків ненавидять PIN-коди та секретні питання. Ми допомогли одному банку впровадити голосову біометрію — тепер клієнт підтверджує переказ однією фразою. За даними ЦБ, 68% користувачів віддають перевагу голосовому введенню замість цифр. Наша система аналізує спектр, тембр та інтонації, порівнюючи голос з еталоном. Безпека та зручність без зайвих дій.

Стек моделей постійно оновлюється: на зміну ResNet прийшли ECAPA-TDNN та WavLM, що дають приріст точності на 15–20%. Ми відстежуємо State-of-the-Art і впроваджуємо найкращі практики. Окрім EER, використовуємо метрики F1-score, precision/recall та latency p99. Для продакшену цільова latency < 200 мс на GPU T4.

Маємо досвід понад 5 років, більше 20 впроваджень у банках та кол-центрах. Використовуємо передові моделі: SpeechBrain для виділення 512-вимірних ембеддингів та AASIST для anti-spoofing. Гарантуємо точність 99% та повну відповідність 152-ФЗ. Один наш проєкт скоротив кількість фрод-транзакцій на 65% за квартал, що забезпечило клієнту значну економію.

Архітектура системи голосової біометрії

from dataclasses import dataclass import torch from speechbrain.pretrained import SpeakerRecognition @dataclass class BiometricProfile: customer_id: str voice_embeddings: list # декілька записів для надійності enrollment_date: str last_updated: str enrollment_quality: float # 0-1 class VoiceBiometricSystem: def __init__(self): self.model = SpeakerRecognition.from_hparams( source="speechbrain/spkrec-ecapa-voxceleb", savedir="tmp_biometric" ) self.db = BiometricDatabase() self.anti_spoofing = AntiSpoofingModel() async def enroll_customer( self, customer_id: str, audio_samples: list[bytes] # 3–5 записів по 5–15 сек ) -> BiometricProfile: """Реєструємо голосовий профіль клієнта""" embeddings = [] quality_scores = [] for audio in audio_samples: # Перевірка якості запису quality = self.assess_audio_quality(audio) if quality < 0.5: raise ValueError(f"Низька якість запису: SNR={quality:.2f}") embedding = self.extract_embedding(audio) embeddings.append(embedding) quality_scores.append(quality) profile = BiometricProfile( customer_id=customer_id, voice_embeddings=embeddings, enrollment_date=datetime.utcnow().isoformat(), last_updated=datetime.utcnow().isoformat(), enrollment_quality=sum(quality_scores) / len(quality_scores) ) await self.db.save_profile(profile) return profile async def verify_customer( self, customer_id: str, audio: bytes, threshold: float = 0.75 ) -> dict: """Верифікуємо клієнта за голосом""" # 1. Anti-spoofing перевірка is_genuine = await self.anti_spoofing.check(audio) if not is_genuine: return { "verified": False, "reason": "synthetic_voice_detected", "score": 0 } # 2. Завантажуємо профіль profile = await self.db.get_profile(customer_id) if not profile: return {"verified": False, "reason": "no_profile", "score": 0} # 3. Порівнюємо з кожним зразком у профілі test_embedding = self.extract_embedding(audio) scores = [] for enrolled_embedding in profile.voice_embeddings: score = self.cosine_similarity(test_embedding, enrolled_embedding) scores.append(score) max_score = max(scores) avg_score = sum(scores) / len(scores) final_score = max_score * 0.6 + avg_score * 0.4 return { "verified": final_score >= threshold, "score": round(final_score, 4), "threshold": threshold, "confidence": "high" if final_score > 0.85 else "medium" if final_score > 0.75 else "low" } 

Чому пасивна біометрія зручніша за активну?

Пасивна біометрія не вимагає від клієнта вимовляти кодову фразу. Він просто розмовляє з оператором або голосовим помічником — система аналізує його природне мовлення. Активна біометрія дає EER 0.5–1.5%, але користувач має запам'ятати фразу. Пасивна — EER 2–5%, але зручність вища. Ми обираємо режим під задачу: для фінансових транзакцій рекомендуємо активну, для кол-центрів — пасивну.

Параметр Активна біометрія Пасивна біометрія
EER 0.5–1.5% 2–5%
Зручність для клієнта Нижча (потрібна фраза) Вища (мовлення без сценарію)
Час верифікації 3–5 секунд 8–15 секунд
Стійкість до шуму Вища Нижча (потрібен чистий звук)

Як anti-spoofing захищає від дипфейків?

Сучасні дипфейки синтезують голос, не відмінний на слух. Ми використовуємо модель anti-spoofing на основі AASIST (графова нейромережа). Вона аналізує фазові спектрограми та виявляє артефакти, не чутні людиною. Наш anti-spoofing дає EER 0.8% на стандартному датасеті ASVspoof 2021. Без такого захисту система вразлива до атак. За оцінками, впровадження anti-spoofing знижує втрати від дипфейк-атак на 90%, що для великого банку означає значну економію.

Як ми забезпечуємо відповідність 152-ФЗ?

Збираємо та обробляємо біометричні дані відповідно до вимог закону. Використовуємо шифрування AES-256 при передачі та зберіганні ембеддингів. Система логує всі операції доступу до профілів. Надаємо механізми відкликання згоди — при видаленні клієнта його ембеддинги стираються через 30 днів.

Модель EER (%) FAR (%) FRR (%) Вимоги до GPU
ECAPA-TDNN 1.2 0.5 2.5 1x T4
ResNet (baseline) 2.8 1.5 5.0 1x T4

Процес розробки та впровадження

  1. Аудит вимог: обговорюємо сценарії (верифікація за PIN, ідентифікація в кол-центрі).
  2. Збір та розмітка даних: запис голосів 100–500 клієнтів (згода згідно 152-ФЗ).
  3. Вибір моделі: ECAPA-TDNN для ембеддингів (512-D), AASIST для anti-spoofing.
  4. Інтеграція: підключаємо API вашої CRM, налаштовуємо PostgreSQL з pgvector для зберігання ембеддингів.
  5. Тестування: A/B тест на реальних клієнтах, вимірюємо FAR/FRR.
  6. Деплой: контейнеризація Docker, навантажувальне тестування (500 RPS).

Терміни: базова система — 6–8 тижнів. З anti-spoofing та compliance — 3–4 місяці. Вартість розраховується індивідуально після аудиту.

Чек-лист впровадження
  • [ ] Визначення сценарію використання (активна/пасивна)
  • [ ] Збір аудіозаписів для реєстрації (мінімум 100 клієнтів)
  • [ ] Розгортання моделі ECAPA-TDNN та anti-spoofing
  • [ ] Інтеграція з CRM через REST API
  • [ ] Налаштування pgvector для швидкого пошуку
  • [ ] Тестування в пісочниці з імітацією атак
  • [ ] Запуск A/B-тесту на 10% трафіку

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

  • Розробка модуля реєстрації голосового профілю
  • API для верифікації (REST/gRPC)
  • Модель anti-spoofing (AASIST або аналог)
  • Модуль перевірки якості аудіо
  • Інтеграція з CRM (1С, Bitrix24, AmoCRM)
  • Документація (архітектура, API, інструкція для адміністратора)
  • Тестування (unit, integration, load)
  • Навчання команди замовника
  • Гарантія 6 місяців на код

Отримайте консультацію щодо впровадження — оцінимо ваш сценарій та підготуємо КП. Зв'яжіться з нами, щоб запустити пілот на ваших даних. Досвід — понад 5 років, більше 20 успішних впроваджень.