Исходящий обзвон на 500 контактов — бот отвечает с задержкой 4 секунды, клиенты сбрасывают звонок. Мы столкнулись с этим, когда клиент-риелторская компания теряла 30% лидов из-за пауз. После интеграции Voximplant с AI-бэкендом latency снизили до 600 мс, конверсия в разговор выросла на 40%. Один из проектов принёс заказчику экономию 1,2 млн рублей в год за счёт сокращения штата операторов.
Российская платформа Voximplant с VoxEngine даёт полный контроль над звонком, но её интеграция с AI-моделями требует тонкой настройки потокового аудио, VAD и управления очередями. За 5 лет работы мы реализовали более 30 голосовых AI-решений на Voximplant. Наши инженеры сертифицированы Voximplant Developer и знают, как выжать минимум 200 мс latency на этапе STT.
Какие проблемы решаем
Высокая задержка ответа — главная боль. При последовательной обработке аудио (звонок → запись → распознавание → ответ) latency достигает 3–5 секунд. Пауза в 1.5 секунды уже заметна пользователю. Решение — потоковая обработка через WebSocket: аудио передаётся фреймами по 30 мс, параллельно запускается голосовой VAD.
Нестабильное распознавание при фоновых шумах или быстром говорящем. Мы используем модели с адаптивным шумоподавлением (например, Silero VAD) и настраиваем чувствительность для каждого канала.
Проблемы масштабирования — VoxEngine сценарии работают в одном потоке, а при 100+ одновременных звонках легко упереться в лимиты. Мы проектируем архитектуру с очередью сообщений (RabbitMQ/NATS) и пулом AI-воркеров, распределяя нагрузку.
Как устроена интеграция Voximplant с AI?
Основной паттерн — VoxEngine открывает WebSocket-соединение с нашим Python-бэкендом при каждом звонке. Весь аудиопоток идёт через него, управляемый событиями.
// VoxEngine сценарий (JavaScript)
VoxEngine.addEventListener(AppEvents.CallAlerting, (e) => {
const call = e.call;
call.answer();
// Создаём WebSocket соединение с нашим AI-бэкендом
const wsConn = VoxEngine.createWSClient(`wss://api.yourapp.com/voxi-stream`);
// Привязываем аудио звонка к WebSocket
call.sendMediaTo(wsConn);
wsConn.sendMediaTo(call);
wsConn.addEventListener(WSClientEvents.ConnectionClosed, () => {
call.hangup();
});
call.addEventListener(CallEvents.Disconnected, () => {
wsConn.close();
});
});
На бэкенде FastAPI принимает поток, накапливает аудио в буфер, обнаруживает конец фразы (VAD) и отправляет в ASR-модель. Результат — в TTS, синтезированная речь возвращается обратно.
from fastapi import FastAPI, WebSocket
import asyncio
@app.websocket("/voxi-stream")
async def voximplant_stream(websocket: WebSocket):
await websocket.accept()
session = VoiceSession()
# Отправляем приветствие
greeting_audio = await tts.synthesize("Здравствуйте! Чем могу помочь?")
await websocket.send_bytes(greeting_audio)
audio_buffer = bytearray()
silence_frames = 0
async for chunk in websocket.iter_bytes():
audio_buffer.extend(chunk)
silence_frames = 0 # сбрасываем при получении аудио
# Обрабатываем каждые 1.5 секунды накопленного аудио
if len(audio_buffer) >= 24000 * 2: # 1.5 sec @ 16kHz 16-bit
response = await process_utterance(bytes(audio_buffer), session)
if response:
audio_response = await tts.synthesize(response)
await websocket.send_bytes(audio_response)
audio_buffer = bytearray()
Подробнее о протоколе WebSocket. Свяжитесь с нами, чтобы обсудить ваш сценарий и получить демонстрацию потоковой обработки.
Что даёт использование VoxEngine?
VoxEngine — это не прокси, а полноценный JavaScript-движок внутри звонка. Он позволяет гибко управлять медиа-потоком: микшировать аудио, переключать каналы, добавлять тоновый набор. Для AI-сценариев это значит, что мы можем воспроизводить пререкорды (например, «Ожидайте, пожалуйста»), пока AI-модель обрабатывает запрос, — без задержки.
| Сравнение подходов | VoxEngine + WebSocket | REST API (вызов-ответ) |
|---|---|---|
| Latency (p99) | 400–800 мс | 2–5 с |
| Масштабирование | 500+ одновременных звонков | 50–100 звонков |
| Стоимость инфраструктуры | Умеренная (один WebSocket-сервер) | Высокая (зависит от числа HTTP-воркеров) |
| Гибкость диалога | Режим реального времени, прерывание | Только последовательные запросы |
Из таблицы видно, что VoxEngine + WebSocket обеспечивает latency в 400–800 мс, что в 5–10 раз быстрее, чем REST API.
Сравнение популярных моделей ASR/TTS
| Модель | Latency (p50) | Точность (WER) | Языки |
|---|---|---|---|
| Whisper (large) | 300 мс | 5% | 99 |
| Silero | 150 мс | 8% | 2 |
| Google STT | 200 мс | 6% | 125 |
| Yandex SpeechKit | 250 мс | 7% | ru/en |
Выбор модели зависит от требуемой точности и бюджета. Для русского языка часто рекомендуем Yandex SpeechKit или Whisper.
Почему Voximplant лучше для голосового AI?
Документация Voximplant подтверждает: платформа изначально проектировалась для real-time коммуникаций. В отличие от обычных SIP-транков, VoxEngine позволяет обрабатывать аудио на уровне JavaScript, что даёт sub-секундные задержки при правильной интеграции.
Как снизить latency до 200 мс?
Достичь 200 мс на этапе STT можно только при комплексном подходе:
- Использовать VAD с низким порогом (Silero VAD с threshold 0.3)
- Предзагружать ASR-модель в GPU-память
- Применять streaming ASR (например, Whisper cpp в real-time режиме)
- Оптимизировать размер аудиофреймов (30–50 мс)
Подробнее о настройке VAD
VAD (Voice Activity Detection) критичен для снижения latency. Рекомендуем использовать Silero VAD с параметром threshold 0.3 и min_silence_duration_ms 150. Это позволяет отсекать паузы и не тратить время на передачу тишины.Исходящий обзвон: как автоматизировать массовые кампании
Для исходящих звонков Voximplant предоставляет API StartScenarios. Мы запускаем кампании с персонализацией: передаём в сценарий имя клиента, контекст предыдущих обращений.
import requests
def start_outbound_campaign(contacts: list[dict]):
"""Запускаем массовый обзвон через Voximplant API"""
for contact in contacts:
response = requests.post(
"https://api.voximplant.com/platform_api/StartScenarios/",
data={
"account_name": VOXI_ACCOUNT,
"api_key": VOXI_API_KEY,
"rule_name": "outbound_bot",
"script_custom_data": json.dumps({
"phone": contact["phone"],
"customer_name": contact["name"],
"context": contact.get("context", {})
}),
"reference_to_call_id": contact["phone"]
}
)
Типичные ошибки: не обрабатывать занятые линии/недоступность — мы добавляем повторный дозвон с экспоненциальной задержкой и логированием причин сброса.
Что входит в работу
- Аудит текущей телефонии и требований к AI-сценарию.
- Проектирование архитектуры: выбор ASR/TTS, VAD, настройка WebSocket-соединений.
- Разработка VoxEngine-сценария и Python-бэкенда (FastAPI, asyncio).
- Интеграция с CRM и системами учета (при необходимости).
- Нагрузочное тестирование (1000+ виртуальных звонков).
- Документация по сценарию и API.
- Обучение операторов и поддержка 3 месяца после запуска.
Процесс работы
- Аналитика — изучаем ваши диалоги, определяем интенты и слоты.
- Прототип — за 5 дней делаем MVP на одном сценарии (например, ответы на частые вопросы).
- Разработка — пишем VoxEngine-код, подключаем выбранные ASR/TTS, настраиваем VAD.
- Тестирование — прогоняем 100+ тестовых звонков, замеряем latency и качество распознавания.
- Промышленный запуск — развёртываем продакшен-инфраструктуру, настраиваем мониторинг (grafana, alertmanager).
- Поддержка — мониторинг, дообучение моделей, доработка сценариев по статистике.
Сроки ориентировочно
- Базовая интеграция (один сценарий, ASR/TTS «из коробки») — от 1 до 2 недель.
- Полноценный production с исходящим обзвоном, 3+ интентами, интеграцией CRM — от 1.5 до 2 месяцев.
- Стоимость рассчитывается индивидуально, в зависимости от сложности диалогов и требований к latency.
Опишите задачу — за 1 день подготовим коммерческое предложение с архитектурой и сроками. Гарантируем SLA 99.9% и снижение времени ответа бота до 200 мс. Закажите консультацию прямо сейчас и получите анализ вашей текущей схемы телефонии. Для оперативного старта свяжитесь с нами через форму на сайте.







