Интеграция Voximplant для голосового AI

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Интеграция Voximplant для голосового AI
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Интеграция Voximplant для голосового AI

Voximplant — российская облачная платформа для телефонии с встроенным JavaScript-движком (VoxEngine) для управления звонками. Преимущество: инфраструктура в РФ, отличная интеграция с российскими операторами, нет проблем с трансграничной передачей данных.

Архитектура с VoxEngine

Voximplant запускает сценарий на JavaScript при каждом звонке. Из сценария коммуницируем с AI-бэкендом через WebSocket:

// 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();
    });
});

Python бэкенд для обработки аудио

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()

Исходящий обзвон через Voximplant

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"]
            }
        )

Сроки: базовая интеграция с Voximplant — 1–2 недели. Full production — 1.5–2 месяца.