Пример из практики: голосовой ИИ-агент

Вокал

Оператор, который отвечает на звонки по телефонной линии компании, находит ответ в собственных документах компании и открывает заявку в службу поддержки еще до того, как звонящий повесит трубку — на номерах, которые уже принадлежат компании, и на её оборудовании, если компания этого пожелает.

  • ПромышленностьInbound support and telephony
  • ПользователиSupport teams on a Yeastar or SIP PBX
  • Объем освещенияEvery call, around the clock
  • УслугиProduct Design, Development, AI
Vocale: платформа голосовых ИИ-агентов

Обзор

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

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

Решающим фактором для экономической эффективности является место работы моделей, поэтому платформа предоставляет два варианта работы одного продукта. На хостинговом уровне обработка речи, логическое мышление и голосовое взаимодействие осуществляются через сторонний API, а время использования тарифицируется по минутам. На уровне самостоятельного хостинга все три компонента работают на графическом процессоре (GPU) под контролем самой компании, ни аудиозаписи, ни документы не покидают пределы здания, а стоимость звонка сводится к затратам на электроэнергию. Переключение между этими уровнями осуществляется на уровне конфигурации; поведение агента остается неизменным в любом случае.

  • Next.js 15
  • TypeScript
  • Tailwind CSS
  • Supabase
  • PostgreSQL
  • LiveKit
  • WebRTC
  • SIP telephony
  • Python
  • vLLM + Qwen3-8B
  • Faster-Whisper
  • Coqui XTTS-v2
  • Pinecone

Видео проекта

вокалПодключите телефонную линию. Телефон отвечает.

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

Ключевые возможности

  • Отвечает на звонок

    Подключается к системе Yeastar или SIP, уже используемой в компании, благодаря чему звонки поступают оператору по тем номерам, которые клиенты привыкли набирать.

  • На основании ваших документов

    Руководства, политики и прайс-листы загружаются, индексируются и просматриваются в момент постановки вопроса — таким образом, ответ формируется на основе собственных материалов компании, а не на основе знаний модели.

  • Открывает заявки в ходе разговора

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

  • Знает, кто звонит

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

  • Два двигателя — один продукт

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

Задача

В семь вечера звонит телефон. Ответ находится в файле PDF на общем диске. Но читать его некому.

Эффективность линии поддержки зависит исключительно от людей, отвечающих на звонки, а поступающие вопросы в подавляющем большинстве сводятся к нескольким стандартным: «Каковы часы работы?», «Покрывается ли это страховкой?», «Как сбросить настройки?». Ответы уже записаны — в руководстве, в правилах, в прайс-листе, — просто они находятся не там, где их мог бы найти звонящий и оператор, пока кто-то ждет на линии. Внедрение ИИ на линии решает половину проблемы доступности. Аренда ИИ с поминутной оплатой незаметно заменяет эту проблему проблемой затрат, ведь чем лучше он работает, тем чаще его используют, и тем больше растут ежемесячные расходы.

  • Звонки вне рабочего времени

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

  • Ответы, недоступные никому

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

  • Оплата по минутам

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

Наше решение

Один агент — на линии, с которым вы уже разговариваете.

Vocale располагается между телефонной системой компании и её базой знаний. Подключение к АТС осуществляется через форму, а маршрутизация настраивается на заднем плане. Документы загружаются и индексируются. Поведение агента настраивается простым языком, а не с помощью кода, и всю систему можно протестировать в браузере до того, как к ней поступит реальный звонок. После запуска в рабочий режим все его действия фиксируются — стенограмма, выполненные поиски, открытые заявки — чтобы команда могла оценить, справляется ли он с задачей, прежде чем поручить ему больше работы.

Подключается к АТС, а не обходит её

Регистрация устройств Yeastar и совместимых SIP-систем осуществляется через форму, при этом компания сохраняет своего провайдера, номера и тарифный план.

Поиск до того, как оно заговорит

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

На хостинге или на собственном сервере — поведение одинаковое

Функции речи, языка и голоса работают либо через сторонний API, либо на частном графическом процессоре. Переключение между ними осуществляется путем настройки, а не пересборки.

Как это работает

Протестируйте это до того, как это сделает клиент

A sandbox that runs the whole pipeline in the browser. Pick a caller, start the call, and the transcript arrives live beside it as the agent hears and answers. Every session it has ever handled — browser or phone, inbound or outbound — is one click away in the rail on the left.

Консоль голосового агента Vocale: большое окно в режиме ожидания, рядом с которым расположена панель с текстовой транскрипцией текущего разговора, ниже — окно выбора абонента и кнопка «Начать звонок», а также боковая панель с историей последних звонков, в которой номера зачеркнуты.

Документы, на которые он дает ответы

Files are dropped straight onto the page, then parsed, split and indexed. Each row reports how many pages went in and how many searchable pieces came out, so it is obvious at a glance when a document is ready to be quoted on a call and when it is still being worked on.

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

То, на что не удалось ответить, превращается в заявку

The agent collects the subject, the customer and the urgency while the caller is still on the line and files the ticket itself, transcript attached. Support opens the queue to a list of real problems in the caller's own words instead of a column of missed calls.

Страница «Заявки»: таблица заявок в службу поддержки с указанием номера, темы, клиента, статуса, приоритета и даты создания; большинство из них открываются автоматически во время звонков.

Оно знает, кто звонит

An existing customer database connects read-only, with a mapping step for whichever columns hold the name and the number. From then on an inbound call is matched against it before the agent speaks — and the records stay where they are. Vocale reads them; it does not become the place they live.

Страница «Клиенты», на которой отображается синхронизированная внешняя база данных, содержащая 14 039 записей, с элементами управления «Редактировать сопоставления» и «Редактировать подключение». Колонки «Имя» и «Телефон» замазаны.

Номера, назначаемые с консоли

Telephony is the one part a business should not have to get right alone, so provisioning is an operator job rather than a self-service form. Each number is registered, pointed at an organisation and switched on from here — which doubles as the fastest way to see which tenants are actually taking calls.

Экран «Номера SIP» в админке: счетчики общего количества номеров, а также активных и неактивных номеров, а также таблица, в которой каждый номер соотносится с именем, организацией и арендатором с переключателем «Активен».

Сколько стоит каждая минута

Spend is metered the way the models bill it — caller speech, agent speech and replayed history, broken out per model and per organisation. It is what turns the choice between a hosted API and a private GPU into a decision with a number attached rather than an argument.

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

Эффект и результаты

Ответили с первого звонка, а цена — как у программного обеспечения.

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

Обслуживание звонков без графика дежурств и очереди
Стоимость за минуту звонка с тарификацией по минутам, хостинг-уровень
Языки, на которые можно переключить агент
Варианты запуска: хостируемый API или частный графический процессор

Архитектура

Что компания может сделать с помощью панели управления

Блок-схема. Пользователь, имеющий АТС Yeastar или аналогичную систему, входит в систему и попадает на главную панель управления, которая разветвляется на семь разделов: «Настройка телефонии и АТС»; «База знаний» с возможностью загрузки, просмотра и удаления документов; «Настройка голосового агента» с настройкой системных подсказок, а также тестовым чатом и голосовым интерфейсом; «Операции в режиме реального времени и мониторинг» с историей разговоров и активностью агентов; «Интеграция системы тикетов» с возможностью подключения, создания, просмотра, редактирования и удаления; «Управление информацией о клиентах» с подключением к базе данных клиентов и созданием новых клиентов; а также «Управление учётной записью» с возможностью редактирования профиля, скачивания данных и удаления учётной записи.
Семь направлений деятельности — один вход в систему. Настройка телефонной связи и базы знаний осуществляется один раз; операционная деятельность, обработка заявок и ведение базы данных клиентов — это повседневная работа.

Анатомия отдельного речевого хода

Диаграмма последовательности одного диалогового хода. Аудиосигнал пользователя по WebRTC поступает на сервер LiveKit, который передает аудиофреймы агенту. Функция обнаружения голосовой активности распознаёт речь, буфер передаётся в Faster-Whisper, который возвращает транскрипт, ход пользователя сохраняется в PostgreSQL, контекст и история чата передаются в языковую модель Qwen3-8B, обслуживаемую vLLM, которая потоком возвращает токены, текст нормализуется и агрегируется в предложения, после чего XTTS-v2 преобразует его в аудиофреймы, ход помощника сохраняется, а аудиосигнал возвращается пользователю через WebRTC.
Ввод речи, вывод речи — за один проход, причем обе части записываются в режиме реального времени. На уровне самостоятельного хостинга каждый блок внутри агента представляет собой модель, работающую на собственном графическом процессоре компании.

Что нужно было решить

Когда тебя прерывают на полуслове

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

Тишина, пока оно думает

Solution: Поиск документов занимает столько времени, что его можно принять за обрыв связи. Оператор через полсекунды произносит короткую, естественную фразу-заполнитель и прерывает её, если поиск завершается раньше, что позволяет выиграть время на поиск, не допуская возникновения паузы в разговоре.

Текст, который не читается вслух

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

Один графический процессор, несколько диалогов

Solution: Сессия обработки речи в реальном времени хранит свои модели в видеопамяти, поэтому её производительность ограничивается объёмом VRAM, а не чистой вычислительной мощностью. Сессии распределяются по картам, а рабочая нагрузка явно привязывается к конкретным картам — если оставить настройки по умолчанию, задачи обработки речи и языка попадают на один и тот же графический процессор, что приводит к взаимному ограничению их производительности.

Вопросы

Нет. Vocale подключается к той телефонной системе, которую вы уже используете — Yeastar и совместимым SIP-платформам, — и звонки по-прежнему поступают на номера, которые уже есть у ваших клиентов. Подключение осуществляется один раз через панель управления, после чего автоматически настраиваются транки и маршрутизация.

Пропускаете звонки после пяти часов?

Давайте соединим вас с одним из наших консультантов.