ММООЗЗГГ.ru

Как создать ИИ-агента

Голосовой ИИ-агент: из чего собирается и почему это не уровень новичка

Михаил Мозг4 минуты чтения

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

Нужен разработчик

Цепочка голосового агента

Голосовой агент это текстовый агент, к которому добавили слух и голос. Распознавание речи превращает слова клиента в текст, модель решает, что ответить и какой инструмент вызвать, синтез речи превращает ответ в голос.

Каждый блок есть в открытом виде. Whisper, модель распознавания речи от OpenAI, работает со многими языками, русский в их числе; ее код и веса открыты по лицензии MIT.

Связывает блоки фреймворк, то есть готовый каркас программы. Pipecat, открытый фреймворк на Python для голосовых агентов в реальном времени, распространяется по лицензии BSD-2: он обрабатывает звук, вызывает модель и генерирует речь в одном конвейере.

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

Модель внутри та же, что у текстового агента: с инструкцией, инструментами и, если нужно, базой знаний. Что умеет услуга под ключ, описано на странице голосового ИИ-агента для входящих звонков.

Задержка и качество голоса

Главная трудность голоса это время. Stivers и соавторы (PNAS, июнь 2009) изучили разговоры на 10 языках: чаще всего следующая реплика начинается через 0-200 миллисекунд после предыдущей.

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

Отдельная задача это очередность реплик: отличить конец фразы от паузы, когда клиент задумался, и замолчать, если он перебил. В LiveKit Agents, открытом фреймворке на Apache 2.0, для этого есть определение конца реплики.

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

Телефония и запись разговоров

Чтобы агент принимал звонки, его подключают к телефонии. Обычно это SIP, протокол интернет-телефонии: АТС передает звонок агенту, как еще одному сотруднику.

LiveKit Agents принимает и совершает звонки через интеграцию с SIP. Если АТС своя, можно использовать Asterisk, открытую АТС и набор средств телефонии на лицензии GPL-2.0.

Перевод на человека делают так же, как опытный администратор: агент переключает звонок и коротко передает суть, чтобы сотрудник не начинал разговор заново. Для этого АТС должна уметь переводить звонок по команде агента.

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

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

Персональные данные в звонках

В звонке почти всегда есть персональные данные: номер телефона, имя, а в клинике еще и сведения о здоровье. Запись разговора и ее расшифровка их тоже содержат.

По 152-ФЗ запись, систематизация и хранение данных граждан России в базах за пределами страны не допускаются (ч. 5 ст. 18). С 1 марта 2023 года до передачи данных за рубеж оператор подает уведомление в Роскомнадзор.

Для голосового агента это значит: распознавание, модель, синтез и записи разговоров работают на серверах в России, если через них идут данные клиентов. Облачное распознавание речи за рубежом под такие звонки не подходит.

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

Как мы храним данные и доступы, описано на странице о безопасности данных.

Собрать или заказать

Для пробы своими силами есть открытые фреймворки: Pipecat на BSD-2 и LiveKit Agents на Apache 2.0. Разработчик на Python соберет на них разговор в браузере и покажет, как агент слышит и отвечает.

До рабочей линии далеко: подключение к АТС, задержка в реальной сети, распознавание по телефону, перевод звонка на сотрудника, запись в CRM, хранение по 152-ФЗ. Это уровень команды, а не новичка.

Наш пилот голосового агента на входящих звонках: 14 дней, от 150 000 ₽, метрика в договоре: доля звонков, принятых агентом без человека, и число пропущенных звонков.

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

Как сравнить сборку своими силами и заказ на любом типе агента, разобрано в таблице решений.

Источники и даты

Собрать просто. Решить, что собирать, сложнее

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

Пилот ИИ-агента за 14 дней

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

Михаил Мозг

Михаил Мозг

Основатель MMOOZZGG, ИИ-директор

Подробнее о Михаиле@mmoozzggru

Контакты

Посчитаем, сколько звонков вы теряете

Разбор 30 минут бесплатно в Telegram: звонки, телефония и метрика пилота.

Написать в Telegram