# Pika H3 Flex Audio Stems

> Run Pika H3 Flex Audio Stems by pika online or via API. $0.001/stem-sec (3 stems: dialogue, music, effect), no setup.

**URL:** https://inference.sh/apps/pika/pika-h3-flex-audio-stems
**Last updated:** 2026-11-08

---

Split the soundtrack of an audio or video file (up to 120s) into Dialogue, Music and Effect WAV stems with Pika's H3 Flex separator. Billed per stem second.

- app: `pika/pika-h3-flex-audio-stems`
- maker: [pika](https://inference.sh/apps/pika.md)
- category: [audio](https://inference.sh/apps/category/audio.md)
- input → output: audio → audio
- tasks: [audio separation](https://inference.sh/apps/tag/audio-separation.md), [stems](https://inference.sh/apps/tag/stems.md), [audio to audio](https://inference.sh/apps/tag/audio-to-audio.md)
- price: $0.001/stem-sec (3 stems: dialogue, music, effect)
- runs via: api, javascript and python sdk, belt cli, mcp

## pika-h3-flex-audio-stems API Guide

### About
split the soundtrack of an audio or video file (up to 120s) into dialogue, music and effect wav stems with pika's h3 flex separator. billed per stem second.

### 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 @52n2qrfh pinned
result = client.run({
        "app": "pika/pika-h3-flex-audio-stems@52n2qrfh",
        "input": {
            "audio": "https://example.com/file.png"
        }
    })

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 @52n2qrfh pinned
## stream=True yields updates as they arrive
for update in client.run({
        "app": "pika/pika-h3-flex-audio-stems@52n2qrfh",
        "input": {
            "audio": "https://example.com/file.png"
        }
    }, 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": "pika/pika-h3-flex-audio-stems@52n2qrfh",
        "input": {
            "audio": "https://example.com/file.png"
        }
    }, 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": "pika/pika-h3-flex-audio-stems@52n2qrfh",
    "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*: Audio file, or a video with sound, up to 120 seconds.
- **channel_mode** (string): mono downmixes before separation; stereo keeps both channels in every stem. Both bill the sum of stem seconds.

#### Output
- **archive** (string): ZIP with every stem and the manifest, when Pika returns one.
- **stems** (array): Dialogue, Music and Effect WAV files.

## 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 Pika H3 Flex Audio Stems cost?

$0.001/stem-sec (3 stems: dialogue, music, effect). you pay per run from your inference shell credits. no subscription is required.

### how do I run Pika H3 Flex Audio Stems via api?

call pika/pika-h3-flex-audio-stems with the javascript or python sdk, the rest api, or `belt app run pika/pika-h3-flex-audio-stems` from a terminal. the api reference on this page lists every input.

### who makes Pika H3 Flex Audio Stems?

Pika H3 Flex Audio Stems is made by pika and runs on inference shell. every pika app is listed at https://inference.sh/apps/pika.

### can my agent use Pika H3 Flex Audio Stems?

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 Pika H3 Flex Audio Stems?

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.
