Что такое OpenSpline
OpenSpline — это инструмент с открытым исходным кодом, который добавляет «живое лицо» к любым голосовым AI-агентам. Проект позволяет превратить статичный портрет и сгенерированный аудио в синхронизированное видео с речью. Ключевое преимущество — минимальный порог входа: базовая интеграция занимает всего 5 строк кода на Python.
Разработчики позиционируют проект как «Bring your agent» (принеси своего агента): вы сохраняете свои промпты, инструменты (tools), доступ к микрофону и провайдеров голоса. OpenSpline выступает только как визуальный слой, обрабатывающий аудио-поток и генерирующий видео.
Архитектура и развертывание
Проект поддерживает два основных режима работы, что критично для корпоративных внедрений:
- OpenSpline Cloud: Хостинг на GPU проекта. Не требует установки драйверов или настройки окружения. Идеально для быстрого старта и масштабирования.
- Self-Hosted (Локально): Запуск на собственных GPU. Поддерживается установка через скрипт
install.shдля Linux/WSL2. Модель работает локально, обеспечивая полный контроль над данными.
Технические требования и совместимость
Важно отметить специфические требования к GPU, так как проект активно использует новые архитектуры NVIDIA. Поддержка AMD и Apple Silicon (M-series) пока отсутствует.
| Компонент | Требование / Поддержка | Примечание |
|---|---|---|
| PyTorch / CUDA | CUDA 12.8 (Blackwell/RTX 50) или 12.6 (старые NVIDIA) | Для карт серии Blackwell требуется валидация |
| Pre-Ampere GPU | FP32 режим | Высокое потребление VRAM, возможное снижение скорости |
| Не поддерживаются | Планируется в будущих обновлениях | |
| Node.js SDK | Node 20+ | Полная поддержка через @openspline/node |
Интеграция с AI-агентами
OpenSpline предоставляет готовые коннекторы (connectors) для популярных платформ, что позволяет встраивать аватары в существующие пайплайны без переписывания логики агента. Поддерживаются следующие провайдеры:
- OpenAI Realtime API: Прямая обертка для подключения к Realtime API. Транскрипты и вызовы инструментов (tools) передаются в ваш обработчик событий.
- LiveKit: Интеграция через
livekit-agents. Аватар запускается как часть сессии, воспроизведение идет через стандартный фронтенд LiveKit. - Google Gemini Realtime: Поддержка потоковой передачи аудио, событий прерывания (interruption) и завершения хода (turn-end).
- ElevenLabs Agents: Поддержка WebSocket-соединений, обработка PCM и μ-law аудио, сохранение транскриптов и событий инструментов.
Пример кода (Python)
Базовая интеграция выглядит следующим образом. Вы передаете путь к портрету и поток аудио от вашего агента:
from openspline import Openspline
client = Openspline()
async with client.avatar("portrait.jpg", quality="low") as avatar:
print(avatar.viewer_url)
await avatar.stream(agent.audio_stream(), sample_rate=24000)
Для продвинутых сценариев доступны настройки качества (low / high), таймауты и кастомные коннекторы для любых TTS-систем, поддерживающих PCM16 аудио-поток.
Источник: Github ↗
