---
title: "Voice Cloning Portability (ElevenLabs): CallSphere vs Vapi Lock-In"
description: "Voice cloning lock-in matters when you switch platforms. CallSphere uses ElevenLabs (portable assets); Vapi mixes providers. How to keep voice IP yours."
canonical: https://callsphere.ai/blog/voice-cloning-portability-elevenlabs-callsphere-vs-vapi-lock-in
category: "Technical Guides"
tags: ["Voice Cloning", "ElevenLabs", "CallSphere", "Vapi", "Vendor Lock-In", "TTS", "Portability"]
author: "CallSphere Team"
published: 2026-04-21T00:00:00.000Z
updated: 2026-05-03T08:28:05.455Z
---

# Voice Cloning Portability (ElevenLabs): CallSphere vs Vapi Lock-In

> Voice cloning lock-in matters when you switch platforms. CallSphere uses ElevenLabs (portable assets); Vapi mixes providers. How to keep voice IP yours.

## TL;DR

A voice clone is a brand asset. If you cannot move it, you do not really own it. **CallSphere** uses **ElevenLabs Conversational AI** (the "Sarah" voice in Sales) and **ElevenLabs TTS/STT** in Salon, with the cloned voice ID owned by your ElevenLabs account, fully portable. **Vapi** layers TTS providers (ElevenLabs, PlayHT, Azure, OpenAI), but the clone metadata, prompt-bound voice configs, and IVR-style audio cues are locked to Vapi's assistant config — moving them is a manual reconstruct.

This post is the asset-lifecycle deep dive: how to keep your voice clone portable, how the lifecycle differs between platforms, and the migration playbook if you are leaving a platform.

## What Is Actually Locked In

When you "clone a voice" on a voice AI platform, you accumulate three artifacts:

1. **The clone itself** — model weights or voice ID at the TTS provider
2. **The platform binding** — assistant config that references the voice with provider-specific settings (stability, similarity_boost, style, speaker_boost)
3. **Production-tuned prompts** — system prompts crafted to sound natural with that specific voice

Lock-in shows up at layer 2 and 3. The clone itself usually is portable; the surrounding config is not.

## Vapi Voice Cloning Approach

Vapi supports multiple TTS providers and lets you reference an ElevenLabs voice ID directly:

```json
{
  "voice": {
    "provider": "11labs",
    "voiceId": "your_eleven_voice_id",
    "stability": 0.5,
    "similarityBoost": 0.75,
    "style": 0.0,
    "useSpeakerBoost": true,
    "model": "eleven_turbo_v2_5"
  }
}
```

You retain the underlying ElevenLabs voice ID — that is portable. What is **not portable**:

- The Vapi assistant config that references it
- Vapi-specific tuning that compensates for their pipeline
- Squad members built around that voice
- Custom audio cues stored in Vapi's CDN
- Function-call flows wired to that assistant

If you migrate to another platform, you re-reference the voice ID and rebuild everything else.

## CallSphere Voice Cloning Approach

CallSphere uses ElevenLabs for both Conversational AI ("Sarah" in the Sales platform) and TTS/STT in the Salon vertical. The integration is intentionally thin so the voice asset stays yours.

### Asset Ownership Model

The cloned voice lives in your ElevenLabs account, not CallSphere's. CallSphere holds:

- Your ElevenLabs API key (encrypted, per-tenant)
- The voice ID
- Tuning parameters (stability, similarity, style)
- Prompt-voice bindings

When you offboard, you take the API key, the voice ID, and the tuning JSON. Replication on another platform is mechanical.

### Salon Voice Configuration Example

```typescript
// shipped in the Salon backend
export const salonVoiceConfig = {
  provider: 'elevenlabs',
  voice_id: process.env.ELEVENLABS_SALON_VOICE_ID,
  model: 'eleven_turbo_v2_5',
  output_format: 'pcm_24000',
  voice_settings: {
    stability: 0.55,
    similarity_boost: 0.8,
    style: 0.15,
    use_speaker_boost: true,
  },
  // Bindings live in source control, not vendor-side
  prompt_bindings: {
    greeting: 'salon-warm-greeting-v3',
    confirm: 'salon-confirm-tone-v2',
    farewell: 'salon-farewell-v1',
  },
};
```

The `prompt_bindings` are pointers to system-prompt templates in our git repo. Migration = copy the JSON, copy the prompts, point a new platform at your ElevenLabs account.

### Sales "Sarah" Conversational AI

Sales uses ElevenLabs **Conversational AI**, which is a higher-level construct than raw TTS — it owns the turn-taking and interruption logic. CallSphere stores the conv-AI agent ID alongside the voice ID; both live in your ElevenLabs account.

```typescript
const sarahConfig = {
  conv_ai_agent_id: process.env.ELEVENLABS_SARAH_AGENT_ID,
  voice_id: process.env.ELEVENLABS_SARAH_VOICE_ID,
  // CallSphere-side overrides (orchestration, tools)
  hand_off_targets: ['booking_specialist', 'human_sales'],
  outbound_concurrency: 5,
};
```

When you leave CallSphere, you keep both ElevenLabs IDs and the orchestration overrides; you re-host the orchestration on whatever platform you choose.

### Voice Asset Versioning

A subtle lock-in trap: when you tweak a voice (re-clone with new samples, adjust style), do you remember which prompts were tuned for which version?

CallSphere stores voice version + prompt version pairs in Postgres:

```sql
CREATE TABLE voice_asset_versions (
  id UUID PRIMARY KEY,
  voice_id TEXT NOT NULL,
  voice_version TEXT NOT NULL,
  prompt_template_id TEXT NOT NULL,
  prompt_version TEXT NOT NULL,
  paired_at TIMESTAMPTZ DEFAULT NOW(),
  retired_at TIMESTAMPTZ
);
```

Migrations ship the active row only. Old versions stay archived for audit.

## Vapi vs CallSphere Voice Portability Comparison

| Dimension | Vapi | CallSphere |
| --- | --- | --- |
| ElevenLabs voice ID owned by | You (your ELabs account) | You (your ELabs account) |
| Tuning config location | Vapi assistant | Source control in your repo |
| Prompt-voice binding | Vapi UI | Source control |
| Audio cue assets | Vapi CDN | Your S3 bucket |
| Multi-tenant ELabs key | Shared possible | Per-tenant key |
| Rebuild on migration | Manual reconstruct | Copy JSON + prompts |
| Versioning of pairings | Limited | Postgres-tracked |
| Time to migrate (estimated) | 2-5 days | 4-8 hours |

## Voice Asset Lifecycle

```mermaid
graph LR
    A[Sample collection
5-10 min audio] --> B[Upload to ElevenLabs]
    B --> C[Generate voice_id]
    C --> D[Tune voice_settings]
    D --> E[Bind to prompt template]
    E --> F[Pair version in Postgres]
    F --> G[Deploy to production]
    G --> H{Tune needed?}
    H -->|yes| D
    H -->|no| I[Archive old pairing]
    G --> J[Migration to new platform?]
    J -->|yes| K[Export voice_id + tuning + prompts]
    K --> L[Re-host on new platform]
    L --> G
```

## Migration Playbook (CallSphere → Anywhere)

1. **Export the voice IDs** from the platform config (a single `pnpm exec voice-export` command in CallSphere).
2. **Export tuning JSON** — voice_settings + prompt_bindings.
3. **Export system prompts** — already in git, just copy the relevant directory.
4. **Re-bind on the new platform** — most platforms accept ElevenLabs voice IDs directly.
5. **Run a parallel-call test** for 50 calls to compare pre/post quality before cutover.

The migration is engineering-driven, not vendor-blocked. That is the whole point.

## Anti-Patterns We Avoid

- **Storing audio cues on the platform's CDN.** Always store in your own S3 bucket, reference by URL.
- **Embedding the API key in assistant configs.** Always inject from secrets manager at runtime.
- **Hard-coding voice IDs in prompts.** Always parameterize.
- **Skipping version pairing.** A voice tweak six months ago that was paired with a now-deleted prompt is a silent quality regression.

## FAQ

### Can I clone a voice on CallSphere directly?

We do not host the cloning UI — you clone in your ElevenLabs account, then paste the voice ID into CallSphere config. This is by design: the asset stays in your account.

### What if ElevenLabs raises prices?

Both platforms expose the price pass-through. Switching to PlayHT or Azure neural voices is a config change, not a re-clone.

### How long does a voice clone take to make?

ElevenLabs Instant clone: ~1 minute, requires 1-3 minute sample. Professional clone: ~24 hours, requires 30+ minute sample.

### Are there legal concerns with voice cloning?

Yes — written consent from the voice owner is mandatory. CallSphere requires uploaded consent forms before activating any clone in a production tenant.

### Does Vapi support custom voices the same way?

Vapi supports ElevenLabs voice IDs and PlayHT cloned voices. Portability of the IDs themselves is similar; portability of the surrounding config is where Vapi adds friction.

## Talk to a Human About Voice Strategy

The [/features](/features) page documents the voice provider matrix per vertical, and [/demo](/demo) lets you hear the production "Sarah" voice on a live call.

---

Source: https://callsphere.ai/blog/voice-cloning-portability-elevenlabs-callsphere-vs-vapi-lock-in
