# HeyGen Instant Voice Clone

> Run HeyGen Instant Voice Clone by heygen online or via API. $0.0007/sec audio (clone-only runs: free), no setup.

**URL:** https://inference.sh/apps/heygen/voice-clone
**Last updated:** 2026-09-12

---

Clone a voice from a single short recording with HeyGen Instant Clone, and speak any text in it in the same call. The cloned voice ID also works with heygen/text-to-speech and avatar videos.

- app: `heygen/voice-clone`
- maker: [heygen](https://inference.sh/apps/heygen.md)
- category: [audio](https://inference.sh/apps/category/audio.md)
- input → output: text → speech
- tasks: [text to speech](https://inference.sh/apps/tag/text-to-speech.md), [voice cloning](https://inference.sh/apps/tag/voice-cloning.md)
- price: $0.0007/sec audio (clone-only runs: free)
- runs via: api, javascript and python sdk, belt cli, mcp

## voice-clone API Guide

### About
clone a voice from a single short recording with heygen instant clone, and speak any text in it in the same call. the cloned voice id also works with heygen/text-to-speech and avatar videos.

### Get an API Key
Create one in [settings → api keys](https://app.inference.sh/settings/keys). The examples read it from `INFERENCE_API_KEY`.

```bash
export INFERENCE_API_KEY="inf_your_key"
```

### 1. Calling the API

#### Install the Client

```bash
pip install inferencesh
```

#### Run and Get Result
Submit a request and wait for the final result.

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## version @7vwkxqcc pinned
result = client.run({
        "app": "heygen/voice-clone@7vwkxqcc",
        "input": {
            "audio": "https://example.com/file.png",
            "text": "Merhaba, bu benim klonlanmış sesim. Nasıl duyuluyor?"
        }
    })

print(result["output"])
```

#### Stream Live Updates
Get real-time progress updates as the task runs.

```python
import os
from inferencesh import inference

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## version @7vwkxqcc pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "heygen/voice-clone@7vwkxqcc",
        "input": {
            "audio": "https://example.com/file.png",
            "text": "Merhaba, bu benim klonlanmış sesim. Nasıl duyuluyor?"
        }
    }, stream=True):
    if update.get("progress"):
        print(f"progress: {update['progress']}%")
    if update.get("output"):
        print(f"output: {update['output']}")
```

#### Run in the Background
Start the task and get its id back right away, then check on it with `GET /tasks/{id}`. It is done when `status` is 10 (completed), 11 (failed) or 12 (cancelled).

```python
import os
from inferencesh import inference, TaskStatus

client = inference(api_key=os.environ["INFERENCE_API_KEY"])

## returns as soon as the task is created
task = client.run({
        "app": "heygen/voice-clone@7vwkxqcc",
        "input": {
            "audio": "https://example.com/file.png",
            "text": "Merhaba, bu benim klonlanmış sesim. Nasıl duyuluyor?"
        }
    }, wait=False)

## later: read its current state
state = client.tasks.get(task["id"]).data
if state["status"] == TaskStatus.COMPLETED:
    print(state["output"])
```

### 2. Files

#### Automatic Upload

```python
## local file paths are automatically uploaded
result = client.run({
    "app": "heygen/voice-clone@7vwkxqcc",
    "input": {
        "image": "/path/to/local/image.png",  # detected & uploaded
        "audio": "https://example.com/audio.mp3",  # url passed through
    }
})
```

#### Manual Upload

```python
## upload and get a hosted URL
file = client.files.upload("/path/to/file.png")
print(file.uri)  # https://cloud.inference.sh/...
```

### 3. Schema

#### Input
- **audio** (string) *required*: Reference recording of the voice to clone. 30-60 seconds of clean, single-speaker speech works best.
- **text** (string): Text to speak in the cloned voice. Leave empty to only create the voice and return its ID.
- **voice_name** (string): Display name for the cloned voice.
- **language** (string): Language hint for the clone (e.g. 'tr', 'en'). Auto-detected if omitted.
- **speed** (number): Speech speed multiplier for the generated audio (0.5-2.0).
- **remove_background_noise** (boolean): Clean background noise out of the reference recording before cloning.
- **keep_voice** (boolean): Keep the cloned voice in the workspace so its ID can be reused later. Off by default: the clone is deleted after the audio is generated, because the HeyGen account holds a limited number of clone slots. Forced on when no text is given.

#### Output
- **audio** (string): Speech generated in the cloned voice (if text was supplied).
- **kept** (boolean): Whether the voice still exists in the workspace. False means the clone was deleted after generation and the ID is no longer usable.
- **preview_audio_url** (string): HeyGen's own short preview clip of the cloned voice.
- **voice_id** (string): Cloned voice ID. Usable with heygen/text-to-speech and avatar videos while the voice is kept.
- **voice_name** (string): Display name of the cloned voice.

## other audio apps

- [Fish Audio Drama 3](https://inference.sh/apps/fish-audio/drama-3.md): $50.00/1M UTF-8 bytes
- [Eleven Flash v2.5](https://inference.sh/apps/elevenlabs/eleven-flash-v2-5.md): $0.04/1K characters
- [Eleven Multilingual v2](https://inference.sh/apps/elevenlabs/eleven-multilingual-v2.md): $0.08/1K characters
- [Eleven v3](https://inference.sh/apps/elevenlabs/eleven-v3.md): $0.08/1K characters
- [Eleven v4 Turbo](https://inference.sh/apps/elevenlabs/eleven-v4-turbo.md): $0.04/1K characters

## faq

### how much does HeyGen Instant Voice Clone cost?

$0.0007/sec audio (clone-only runs: free). you pay per run from your inference shell credits. no subscription is required.

### how do I run HeyGen Instant Voice Clone via api?

call heygen/voice-clone with the javascript or python sdk, the rest api, or `belt app run heygen/voice-clone` from a terminal. the api reference on this page lists every input.

### who makes HeyGen Instant Voice Clone?

HeyGen Instant Voice Clone is made by heygen and runs on inference shell. every heygen app is listed at https://inference.sh/apps/heygen.

### can my agent use HeyGen Instant Voice Clone?

yes. agents call it as a tool through the inference shell mcp server (https://api.inference.sh/mcp), the belt cli or the sdk, and pay per run like you do.

### what are the alternatives to HeyGen Instant Voice Clone?

other audio apps on inference shell include Fish Audio Drama 3, Eleven Flash v2.5, Eleven Multilingual v2, Eleven v3. they run through the same api, so switching is a one-line change.
