# AI use cases for Openspline (openspline/openspline)

Repo: [openspline/openspline](https://github.com/openspline/openspline) | Use cases: 4 | Page: https://dedupedai.com/use-cases/openspline-openspline/

OpenSpline is a Python and Node SDK that turns a portrait and generated audio into a synchronized talking avatar video, on OpenSpline Cloud or a self-hosted NVIDIA GPU.

This file holds every use case of this repo. Each one starts with a "## " heading and ends with its URL.

- Add a live talking face to a Python voice agent: https://dedupedai.com/use-cases/openspline-openspline/add-live-face-to-python-voice-agent/
- Run a local avatar demo on your own NVIDIA GPU: https://dedupedai.com/use-cases/openspline-openspline/run-avatar-demo-on-own-nvidia-gpu/
- Put a face on an OpenAI Realtime agent: https://dedupedai.com/use-cases/openspline-openspline/put-face-on-openai-realtime-agent/
- Add an avatar to a LiveKit voice agent: https://dedupedai.com/use-cases/openspline-openspline/add-avatar-to-livekit-agent/

## How to add a live talking face to a Python voice agent with Openspline

Repo: [openspline/openspline](https://github.com/openspline/openspline) | Difficulty: Intermediate | Time: 30 minutes | Basis: From the README

Stream your agent's generated audio into a portrait to show a synced avatar.

**Who it is for:** A developer with a working Python voice agent who wants a visible face for demos or customer-facing sessions.

**The problem:** Voice agents are audio-only, so users have no face to read or connect with during a conversation.

**The outcome:** A viewer URL that shows a portrait speaking the agent's audio in sync.

### Steps

1. Run `pip install openspline`.
2. Set `OPENSPLINE_API_KEY` on your backend, or run a local service as described in the Self Host section.
3. Create the client and open the avatar with `async with client.avatar("portrait.jpg", quality="low") as avatar:`, then print `avatar.viewer_url`.
4. Call `await avatar.stream(agent.audio_stream(), sample_rate=24000)` with your agent's PCM audio.
5. Open the viewer URL in a browser while the agent speaks.

### Prompt to paste into your agent

```text
Use the openspline repo (github.com/openspline/openspline) to add an avatar to the Python voice agent at <path-to-agent>. Use portrait <path-to-portrait.jpg> and pass the agent's PCM audio to avatar.stream with sample_rate=24000. Output the viewer URL and confirm the agent's audio plays once, not twice.
```

### Caveat

The README says the GPU stays active during a connected session and smooth motion requires inference to keep up with playback.

Risk, credentials: Keep the OpenSpline API key and any provider credentials on your backend, not in browser code.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/openspline-openspline/add-live-face-to-python-voice-agent/

## How to run a local avatar demo on your own NVIDIA GPU with Openspline

Repo: [openspline/openspline](https://github.com/openspline/openspline) | Difficulty: Intermediate | Time: 60 minutes | Basis: From the README

Install the GPU service and open a local demo at localhost:7860.

**Who it is for:** A developer with a Linux or WSL2 machine and an NVIDIA GPU who wants to avoid cloud costs and keep generation local.

**The problem:** Cloud avatar generation may be unavailable or unwanted, so the developer needs to run the models locally.

**The outcome:** A working local demo at http://localhost:7860 that generates avatar video on the local GPU.

### Steps

1. Confirm you are on a Linux device or WSL2 with an NVIDIA GPU. AMD and Apple GPUs are not supported.
2. Run `curl -fsSL https://raw.githubusercontent.com/openspline/openspline/main/install.sh | sh`.
3. Run `sh ~/.local/share/openspline/run.sh`.
4. Open http://localhost:7860 in a browser.
5. Check the GPU service health at `/readyz` on the local address before connecting an SDK client. (inferred, check the README)

### Prompt to paste into your agent

```text
Use the openspline repo (github.com/openspline/openspline) to set up the local GPU service on <target-machine>. Run the install script and launch the demo, then confirm the demo answers at http://localhost:7860. Report the GPU model and whether the demo page loads.
```

### Caveat

The README says Blackwell and pre-Ampere inference still need hardware validation, and pre-Ampere cards use FP32 with more VRAM needed.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/openspline-openspline/run-avatar-demo-on-own-nvidia-gpu/

## How to put a face on an OpenAI Realtime agent with Openspline

Repo: [openspline/openspline](https://github.com/openspline/openspline) | Difficulty: Advanced | Time: 60 minutes | Basis: From the README

Wrap an existing OpenAI Realtime connection so the avatar speaks its replies.

**Who it is for:** A developer whose agent already uses the OpenAI Realtime API and needs a visual avatar without rewriting event handling.

**The problem:** A Realtime agent plays audio only, and wiring audio to a video avatar by hand is error prone.

**The outcome:** The existing Realtime event handler keeps working while the avatar speaks the agent's audio.

### Steps

1. Run `pip install openai==2.54.0`.
2. Set `OPENAI_API_KEY` in your backend environment.
3. Open the avatar with `async with Openspline().avatar("portrait.jpg") as avatar:` and wait with `await avatar.wait_for_viewer()`.
4. Create `adapter = OpenAIRealtime(avatar, connection)` and loop over `adapter.wrap(connection)`, passing each event to your handler.
5. Disable your previous speaker output so audio does not play twice, then run `OPENAI_API_KEY=... python examples/python/openai_realtime.py portrait.jpg`.

### Prompt to paste into your agent

```text
Use the openspline repo (github.com/openspline/openspline) to add the OpenAIRealtime adapter to the agent in <path-to-agent>, keeping its existing event handler. Use portrait <path-to-portrait.jpg>. Confirm the speaker output is disabled so audio plays once, and report the viewer URL.
```

### Caveat

The README pins openai==2.54.0 for this connector, so newer SDK versions may not match the example.

Risk, credentials: Keep OPENAI_API_KEY on the backend and never expose it to the browser.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/openspline-openspline/put-face-on-openai-realtime-agent/

## How to add an avatar to a LiveKit voice agent with Openspline

Repo: [openspline/openspline](https://github.com/openspline/openspline) | Difficulty: Advanced | Time: 90 minutes | Basis: From the README

Attach an avatar to your AgentSession so it plays in your normal LiveKit frontend.

**Who it is for:** A team running a LiveKit voice agent that needs a face shown inside its existing room frontend.

**The problem:** LiveKit rooms carry audio only, so the agent has no visible presence for participants.

**The outcome:** The avatar appears in the same LiveKit room as the agent, driven by its audio.

### Steps

1. Run `pip install 'livekit-agents[openai]==1.8.3'`.
2. Set `OPENAI_API_KEY`, `LIVEKIT_URL`, `LIVEKIT_API_KEY`, and `LIVEKIT_API_SECRET`.
3. Create `avatar = AvatarSession("portrait.jpg", client=Openspline(quality="low"))` and call `await avatar.start(agent_session, room=ctx.room)` before your existing session starts.
4. Run `PORTRAIT=portrait.jpg python examples/python/livekit_agent.py dev`.
5. Join the room from your normal LiveKit frontend and confirm the avatar speaks.

### Prompt to paste into your agent

```text
Use the openspline repo (github.com/openspline/openspline) to attach an AvatarSession to the LiveKit agent in <path-to-agent>, using portrait <path-to-portrait.jpg>. Start the avatar before agent_session.start and confirm the avatar is visible in the room.
```

### Caveat

The README says the native service includes LiveKit support, so check that your setup uses that service before relying on this connector.

Risk, credentials: LiveKit API secret and OpenAI key must stay on the server side of the agent.

Dual-use notice: only use this on software, sites and systems you own or are authorized to test.

Disclaimer: Third-party repos we don't own or vouch for. AI-generated use cases can be wrong: review everything and run at your own risk. Full text: https://dedupedai.com/disclaimer/

URL: https://dedupedai.com/use-cases/openspline-openspline/add-avatar-to-livekit-agent/
