Інтеграція Voximplant для голосового AI

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Інтеграція Voximplant для голосового AI
Середній
від 1 тижня до 3 місяців
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Інтеграція Voximplant для голосового AI Voximplant - російська хмарна платформа для телефонії з вбудованим JavaScript-движком (VoxEngine) для керування дзвінками. Перевага: інфраструктура в РФ, відмінна інтеграція з російськими операторами, немає проблем із транскордонною передачею даних. ### Архітектура з VoxEngine Voximplant запускає сценарій на JavaScript при кожному дзвінку. Зі сценарію комунікуємо з AI-бекендом через WebSocket:```javascript

// 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 бекенд для обробки аудіо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()

### Вихідний дзвінок через Voximplantpython 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"] } )