Разработка 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% за квартал, что сэкономило клиенту $22k–32k в год.

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

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%, что для крупного банка означает экономию до $27k–39k в год.

Как мы обеспечиваем соответствие 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 успешных внедрений.