Архитектура AI-колл-центра

В этой статье мы рассмотрим основные принципы, архитектуру и технические препятствия при создании AI-колл-центра, который использует большие языковые модели. AI-оператор такого колл-центра умеет свободно общаться на любые темы и добиваться поставленного результата, аргументируя и работая с возражениями.

Основные модули системы

Архитектура AI-колл-центра

Основу системы будут составлять три модуля, которые будут управлять всем процессом:

  • транскриптор (speech-to-text),
  • большая языковая модель (LLM),
  • синтезатор голоса (text-to-speech).

Для каждого из этих модулей можно использовать любого из многочисленных провайдеров. Среди них OpenAI, Groq, Deepgram, ElevenLabs, PlayHT и другие. Также можно создать свою модель.

Выбор провайдера для этих трёх модулей существенно влияет на время задержки ответа нашего AI-оператора. В идеале весь процесс «голос — LLM — голос» должен завершаться менее чем за 500–700 миллисекунд.

1. Speech-to-text

Когда кто-то говорит по телефону, клиентское устройство (будь то ноутбук, телефон и т. д.) записывает сырые аудиоданные, которые представляют собой серию двоичных сигналов (единиц и нулей). Эти данные необходимо либо транскрибировать прямо на устройстве, либо отправить на удалённый сервер для преобразования в текст.

2. Большая языковая модель (LLM)

Транскрибированный текст вводится в промт и обрабатывается с помощью большой языковой модели (LLM). Именно LLM имитирует собеседника на другом конце провода.

3. Text-to-speech

LLM генерирует текст, который затем необходимо озвучить. Этот текст преобразуется обратно в аудиоданные — серию двоичных сигналов (единиц и нулей), — которые могут быть воспроизведены на устройстве пользователя. Это преобразование может происходить как на самом устройстве пользователя, так и на сервере.

Цель заключается в том, чтобы выполнить каждую фазу в реальном времени с задержками примерно 50–100 миллисекунд и обеспечить непрерывный обмен данными между каждым модулем. Как было сказано ранее, весь процесс «голос — LLM — голос» должен завершаться менее чем за 500–700 миллисекунд.

Вспомогательные модули

Теперь, когда мы поняли основные принципы, давайте рассмотрим архитектуру и составные части, необходимые для полноценной реализации этой системы.

Архитектура AI-колл-центра

Определение конца фразы

Определение конца фразы (endpointing) — это процесс определения того, когда пользователь закончил говорить. Традиционные методы полагаются на обнаружение паузы, за которой следует тайм-аут. К сожалению, если мы стремимся к реакциям в пределах секунды, этот метод не подходит.

Для этого требуется кастомная мультимодальная аудио-текстовая модель, которая определяет, когда пользователь завершил свою фразу. Она анализирует как тон, так и содержание речи пользователя, чтобы определить подходящую длину паузы перед активацией LLM. Это жизненно важно для того, чтобы пользователь не был прерван на полуслове, и одновременно обеспечиваются мгновенные реакции после того, как пользователь завершил свою мысль.

Перебивания (Barge-in)

Перебивки, также известные как barge-in, обозначают способность обнаруживать, когда пользователь хочет вмешаться и перебить речь оператора.

Для этого случая нам нужна модель, которая будет различать настоящие перебивания, такие как «стоп», «подожди» или «это не то, что я имел в виду», от неперебивающих междометий, таких как «ага», «а, понятно» или «окей».

Модель также должна отслеживать, где именно разговор был прерван, что позволит LLM понять, что именно не удалось донести ранее.

Фильтрация фонового шума

В реальных условиях посторонние звуки, такие как музыка и автомобильные гудки, могут мешать работе транскриптора speech-to-text.

Здесь тоже необходимо использовать модель для фильтрации шума в реальном времени, чтобы очистить аудио без увеличения задержки, прежде чем оно достигнет нашу основную LLM.

Фильтрация фонового голоса

Качественное распознавание голоса играет решающую роль в обработке перебиваний и определении конца фразы. Обычно модели транскрипции настроены на захват всех звуковых сигналов. Например, фоновые шумы, такие как работающий телевизор, разговаривающий рядом человек или эхо, могут сильно ухудшить способности системы к ведению диалога.

В то время как отмена фонового шума является хорошо изученной областью, отмена фонового голоса исследована значительно меньше. Чтобы решить эту проблему, нам также потребуется собственная модель аудиофильтрации, цель которой — изоляция голоса основного говорящего и устранение всех других фоновых шумов.

Междометия (Backchanneling)

Люди часто подтверждают во время разговора, что понимают друг друга, используя междометия типа «да», «ага», «окей», «понял» и другие. Они не являются перебиваниями, и поэтому очень важно отличать их друг от друга.

Однако использование междометий в неподходящий момент может смутить собеседника и прервать его.

Для эффективного управления этим тонким аспектом общения нужно использовать собственную мультимодальную аудио-текстовую модель для выявления оптимальных моментов для наиболее подходящих междометий. Анализируя как аудио, так и текстовый контекст, модель будет гарантировать, что междометия используются для поддержки разговора без перебивания или нарушения хода мысли собеседника.

Эта технология улучшает естественность и плавность диалогов, делая взаимодействие с AI-оператором более привычным для пользователей.

Эмоциональный интеллект

Понимание эмоционального контекста сказанного так же важно, как и содержание. Поэтому нужно использовать модель, специально обученную улавливать эмоциональные полутона в высказываниях пользователя. Эти эмоциональные данные затем интегрируются в промт основной LLM, что позволяет ей отвечать адекватно, если собеседник проявляет такие эмоции, как гнев, раздражение или замешательство.

Слова-паразиты

LLM часто выводит очень сухой текст, который не похож на разговорный. В повседневной речи часто встречаются слова-паразиты, такие как «ммм», «ну», «типа» и «и так».

Реализовать это можно двумя способами:

  • заставить LLM генерировать такие слова в тексте;
  • вставлять такие фразы сразу в аудиопоток через специальную модель.

Это гарантирует, что речь будет естественной, максимально имитируя человеческую.

Выполнение действий (Function Calling)

Во время разговоров могут выполняться различные действия, такие как извлечение данных из CRM или взаимодействие с вашими данными для выполнения пользовательских операций.

Вот некоторые из действий, которые важно уметь выполнять во время разговора:

  • завершить звонок;
  • набор на клавиатуре: ввод цифр в систему через интерфейс клавиатуры;
  • переадресация звонка: эта функция позволяет системе перенаправить входящий звонок на другой номер телефона, на котором, например, живой оператор;
  • забронировать встречу;
  • изменить интерфейс пользователя в зависимости от хода разговора;
  • прислать SMS, email или сообщение в чат.

Эти функции улучшают взаимодействие вашего AI-оператора, позволяя ему не только справляться с самим разговором, но и выполнять параллельные задачи.

Многоязыковая поддержка

Хотя большинство моделей speech-to-text, LLM и text-to-speech заявляют, что умеют общаться на более чем 100 языках, в каждом случае необходимо проверять это отдельно.

Для достижения хорошего результата в произношении и интонации конкретного языка необходимо тщательно выбирать провайдеров и библиотеки голосов. Реализация этой функции с нуля может занять много времени. Часто этот процесс занимает месяцы и требует постоянных ресурсов для поддержания и улучшения.

Ввод и вывод голоса через телефон или приложение

Существуют различные опции для реализации этой функции:

  • SIP Trunking — виртуальные телефонные линии, которые можно использовать для совершения звонков через интернет любому человеку с телефонным номером.
  • Twilio — платформа облачных коммуникаций, предоставляющая гибкий API для голосовых, текстовых и других взаимодействий через мобильные телефоны, стационарные телефоны и VoIP.
  • SDK — прямая интеграция в приложение.

Создание AI-колл-центра: вызовы и проблемы

Создание AI-приложений с голосовым взаимодействием может быть сложным процессом. Некоторые приложения могут быть относительно простыми, обеспечивая базовое взаимодействие с пользователями и допуская задержки или менее чувствительные к перебиваниям. Другие же стремятся быть неотличимыми от человека в беседе.

Определение проблемы

Написание приложения голосового ИИ с нуля — сложная задача. Более простые приложения могут работать на основе поочередного взаимодействия. Однако более сложные приложения стремятся к непрерывному потоку, который имитирует человеческую речь, работая в реальном времени с минимальной задержкой. Такой уровень сложности требует глубокого погружения как в лингвистику, так и в техническую часть.

Проблемы и вызовы при создании AI-колл-центра

  • Скорость реакции. Разговор в реальном времени требует мгновенной реакции, как при общении с человеком. LLM должны обрабатывать диалог и отвечать в течение миллисекунд, чтобы поддерживать естественный ритм диалога. Для достижения этого требуются не только мощные вычислительные ресурсы, но и эффективная архитектура для уменьшения времени обработки запросов.
  • Понимание контекста. LLM должны понимать и держать в памяти контекст на протяжении всего разговора. Это является значительной проблемой, поскольку в одном разговоре могут подниматься разные темы.
  • Обработка перебиваний и добавление междометий. Система, способная к разговору в реальном времени, должна уметь решать, когда сделать паузу, когда продолжать говорить или когда изменить ответ на основе интонации.
  • Эмоциональный интеллект. Помимо понимания слов, AI-оператор в реальном времени должен интерпретировать тон, эмоции и тонкости речи. Это включает не только лингвистический интеллект, но и эмоциональный интеллект, для чего текущие технологии пока не до конца развиты.
  • Защита персональных данных и этичность. Обеспечение безопасного и этичного обращения с личными данными добавляет ещё один уровень сложности.

Стоимость

Большинство переменных затрат будет связано с расходом на работу моделей. Подписка на модели Speech-to-Text, LLM и Text-to-Speech обычно приобретаются напрямую у провайдеров типа Deepgram, OpenAI, ElevenLabs и других. Одна минута разговора по нашему опыту выходит в среднем 0,3 $.

Вывод

Создание AI-колл-центра — сложная и трудоёмкая задача. Многие препятствия неочевидны, пока вы с ними не столкнётесь на практике — в технических проблемах можно закопаться на месяцы.

Если вам интересно создать AI-колл-центр, давайте свяжемся. Мы успешно реализовывали подобные проекты и можем быстро показать их возможности. Как насчёт живой демонстрации? Наш AI-оператор позвонит вам в удобное время, и вы сможете задать ему любые вопросы.

Пишите нам в Telegram на @fedor_mn, ответим на все вопросы.

Подписывайтесь на наш Telegram-канал «Софт с хэппи-эндом», там мы рассказываем о полезном софте, который помогает делать операционку в бизнесе быстрее и дешевле.

Начать дискуссию