Skip to main content
Glama

Clone Voice

lab_voice_clone

Clone a voice from real audio or video material into a project (provider you choose: minimax via fal.ai, or fish_audio) — the source for lab_voice_tts and for lab_dub's voice_id+dub_text path. SYNCHRONOUS: the clone runs inside the request and can take a while to return; there is no job_id to poll. The source needs a clean speech track of workable length — too short or silent material is rejected before anything is spent. Voice cloning from real material is consent-sensitive: every path requires einwilligung: true — it is your own voice, or the person whose voice it is has explicitly agreed. Without it the backend refuses before anything is charged. You must choose the provider explicitly (provider: minimax or fish_audio): there is no default, because both houses process the voice outside the EU. Without it the backend refuses with stimmklon_anbieter_fehlt before anything is charged.

Input Schema

NameRequiredDescriptionDefault
nameYesA label for this cloned voice, shown in lab_list_voices — needed to tell several clones of one project apart later.
get_costNo`true` reports the price and your balance WITHOUT cloning anything and without spending quota. A clone is billed per clone (a MiniMax clone costs far more than a Fish clone — ask with get_cost) — the length of the source material does not change it, and the clone is then reusable for as many readings as you like. Not drawn from the lab_list_models catalog (that covers image and video models only); there is no model to pick here.
providerYesWhich voice house clones it. REQUIRED — there is no default: neither house has a documented legal basis for the transfer, so you name the one that receives the voice. A request without it is refused before anything is charged (stimmklon_anbieter_fehlt). The choice sticks to the voice: whichever house made it is the one that later speaks with it, so lab_voice_tts has no say in this. What each house can do and what it charges is not stated here — lab_list_models carries that.
project_idYesProject id (from lab_list_projects) — positive integer as string
einwilligungNoConsent of the person whose voice is being uploaded (or confirmation that it is your own voice). Required on every path — the backend refuses without it before anything is charged. This is not the moderation gate: that one reads the label for abuse, this one asserts you are allowed to use this person's voice at all. Do not set it to be rid of the error — set it because the consent exists. Provider capabilities and prices: lab_list_models.
likeness_refNoConsent id from the Likeness Register (LK-XXXXX-XXXXX-XXXXX-XXXXX) for the person whose voice this is. When set, the register is checked live (active, purpose voice_synthesis, the project's target markets) and the clone is refused if the consent does not hold. Needed for a real person's voice in a project for children or young people.
nur_eigene_datenNoOnly for a model that sends inputs to China or a US recipient without a documented basis, when the step carries images, clips, voices or faces. Means: this material shows or contains no real person other than the human using this account. Set it ONLY after the human has said exactly that for THIS step; never assume it, never reuse it for the next step. Not needed when the human has declared this material in the FilmLab app: the backend reads that declaration, also for material derived from it; only the app can store one. An LK reference, a licensed likeness or another person's agreement does not replace it. Without it the backend refuses with drittland_dritte_gesperrt before any charge; then use a non-gated model or text only.
sample_audio_urlYesURL of the source audio or video the voice is cloned from. Needs a real, sufficiently long speech track — material without one is rejected before anything is spent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / nur_eigene_daten / description
      Previous value: -"Only for a model that sends inputs to China or a US recipient without a documented basis, when the step carries images, clips, voices or faces. Means: this material shows or contains no real person other than the human using this account. Set it ONLY after the human has said exactly that for THIS step; never assume it, never reuse it for the next step. An LK reference, a licensed likeness or another person's agreement does not replace it. Without it the backend refuses with drittland_dritte_gesperrt before any charge; then use a non-gated model or text only."New value: +"Only for a model that sends inputs to China or a US recipient without a documented basis, when the step carries images, clips, voices or faces. Means: this material shows or contains no real person other than the human using this account. Set it ONLY after the human has said exactly that for THIS step; never assume it, never reuse it for the next step. Not needed when the human has declared this material in the FilmLab app: the backend reads that declaration, also for material derived from it; only the app can store one. An LK reference, a licensed likeness or another person's agreement does not replace it. Without it the backend refuses with drittland_dritte_gesperrt before any charge; then use a non-gated model or text only."
  2. Changed2 schema fields changed
    • changedInput schema / properties / provider / description
      Previous value: -"Which voice house clones it. Omit to stay on the default path — an existing workflow does not change vendor just because another one exists. The choice sticks to the voice: whichever house made it is the one that later speaks with it, so lab_voice_tts has no say in this. What each house can do and what it charges is not stated here — lab_list_models carries that."New value: +"Which voice house clones it. REQUIRED — there is no default: neither house has a documented legal basis for the transfer, so you name the one that receives the voice. A request without it is refused before anything is charged (stimmklon_anbieter_fehlt). The choice sticks to the voice: whichever house made it is the one that later speaks with it, so lab_voice_tts has no say in this. What each house can do and what it charges is not stated here — lab_list_models carries that."
    • changedInput schema / required
      Previous value: -[
      -  "project_id",
      -  "name",
      -  "sample_audio_url"
      -]New value: +[
      +  "project_id",
      +  "name",
      +  "sample_audio_url",
      +  "provider"
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / nur_eigene_daten
      Added value: +{
      +  "description": "Only for a model that sends inputs to China or a US recipient without a documented basis, when the step carries images, clips, voices or faces. Means: this material shows or contains no real person other than the human using this account. Set it ONLY after the human has said exactly that for THIS step; never assume it, never reuse it for the next step. An LK reference, a licensed likeness or another person's agreement does not replace it. Without it the backend refuses with drittland_dritte_gesperrt before any charge; then use a non-gated model or text only.",
      +  "type": "boolean"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / einwilligung / description
      Previous value: -"Consent of the person whose voice is being uploaded. Required on the fish_audio path, which refuses without it before anything is charged. This is not the moderation gate: that one reads the label for abuse, this one asserts you are allowed to use this person's voice at all. Do not set it to be rid of the error — set it because the consent exists. Provider capabilities and prices: lab_list_models."New value: +"Consent of the person whose voice is being uploaded (or confirmation that it is your own voice). Required on every path — the backend refuses without it before anything is charged. This is not the moderation gate: that one reads the label for abuse, this one asserts you are allowed to use this person's voice at all. Do not set it to be rid of the error — set it because the consent exists. Provider capabilities and prices: lab_list_models."
  5. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  6. Changed1 schema field changed
    • addedInput schema / properties / likeness_ref
      Added value: +{
      +  "description": "Consent id from the Likeness Register (LK-XXXXX-XXXXX-XXXXX-XXXXX) for the person whose voice this is. When set, the register is checked live (active, purpose voice_synthesis, the project's target markets) and the clone is refused if the consent does not hold. Needed for a real person's voice in a project for children or young people.",
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the annotations: it declares the call SYNCHRONOUS with no job_id to poll, warns the clone can take a while, states that bad material is rejected before anything is spent, and describes the consent and third-country gates with their specific error codes (stimmklon_anbieter_fehlt). It also discloses the billing model (per clone, not per source length, reusable afterwards), which the readOnlyHint/destructiveHint pair cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the SYNCHRONOUS warning are front-loaded well, but the text repeats 'refuses before anything is charged' in three separate places and ends on a dangling fragment ('Without it the backend refuses with stimmklon_anbieter_fehlt before anything is charged'). The consent point and the provider point restate the same gate twice, padding an otherwise informative paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex, multi-gate mutation with no output schema, the description covers cost, latency model, consent, provider choice and rejection behavior thoroughly. The one remaining gap is what comes back on success — there is no output schema and the description never says a voice_id is returned, leaving the agent to infer it from lab_voice_tts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, including provider, einwilligung, likeness_ref and nur_eigene_daten. The description largely restates those points (provider has no default, consent is required, source needs a real speech track) rather than adding new semantics. Baseline 3 is appropriate when the schema carries the parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (clone a voice from real audio/video material into a project) and names the two providers inline. It also positions the output downstream ('the source for lab_voice_tts and for lab_dub's voice_id+dub_text path'), so an agent knows exactly where this sits relative to sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly says what triggers a working call: clean, sufficiently long speech track, explicit provider, and consent on every path. It points to get_cost for pricing and to lab_list_models for provider capabilities, which is real routing guidance. It stops short of an explicit 'do not use this when…' exclusion, so it is clear context rather than a full when/when-not map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources