Voice Cleaner API
Clean speech, reduce noise, and optionally reduce room reverb from a public audio URL.
Voice Cleaner API
Use audio-voice-clean for speech cleanup before publishing, transcription,
voiceover preparation, or downstream editing. It reduces background noise at
three selectable strengths and can additionally reduce room reverb.
Endpoint
POST /api/v1/audio/generationsPoll completion with:
GET /api/v1/tasks/{id}Example
curl https://reapi.ai/api/v1/audio/generations \
-H "Authorization: Bearer $REAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "audio-voice-clean",
"audio_url": "https://cdn.example.com/podcast.wav",
"noise_cancelling_level": 1,
"encoder_format": "mp3"
}'import requests
resp = requests.post(
"https://reapi.ai/api/v1/audio/generations",
headers={
"Authorization": "Bearer rk_live_xxx",
"Content-Type": "application/json",
},
json={
"model": "audio-voice-clean",
"audio_url": "https://cdn.example.com/podcast.wav",
"noise_cancelling_level": 1,
"encoder_format": "mp3",
},
timeout=30,
)
print(resp.json())const r = await fetch("https://reapi.ai/api/v1/audio/generations", {
method: "POST",
headers: {
Authorization: "Bearer rk_live_xxx",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "audio-voice-clean",
audio_url: "https://cdn.example.com/podcast.wav",
noise_cancelling_level: 1,
encoder_format: "mp3",
}),
});
console.log(await r.json());package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]any{
"model": "audio-voice-clean",
"audio_url": "https://cdn.example.com/podcast.wav",
"noise_cancelling_level": 1,
"encoder_format": "mp3",
})
req, _ := http.NewRequest("POST",
"https://reapi.ai/api/v1/audio/generations", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer rk_live_xxx")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
model | string | yes | Use audio-voice-clean. |
audio_url | URL | yes | Public HTTP(S) source audio URL. Base64 / data: URIs are rejected platform-wide. |
noise_cancelling_level | integer | no | 0, 1, or 2 — off, moderate, strongest. Defaults to 0. |
splitter | enum | no | auto, andromeda, perseus, orion, phoenix, lyra, or lynx. auto is omitted upstream so the default engine is used. |
dereverb_enabled | boolean | no | Additionally reduce room reverb. |
encoder_format | enum | no | mp3, wav, flac, aac, or ogg. |
Requests are strictly validated: unknown fields are rejected with 400
rather than ignored.
Output
Completed tasks return output.audio_urls and, when available, labeled
output.tracks:
{
"id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
"status": "completed",
"output": {
"audio_urls": ["https://cdn.reapi.ai/.../clean.mp3"]
}
}Billing
Audio jobs are billed per rounded-up source minute — a 2:30 source bills as 3 minutes. Failed jobs refund automatically. See the current per-minute rate on the Voice Cleaner model page.
Which audio model do I need?
| Goal | Model | Docs |
|---|---|---|
| Denoise / de-reverb speech | audio-voice-clean | this page |
| Keep the vocals, drop the music | audio-stem-separator with stem: "vocals" | Vocal Remover |
| Keep the music, drop the vocals | audio-music-extractor | Music Extractor |
| Split several instruments at once | audio-multistem | Multistem Splitter |
| Convert vocals to another voice | audio-voice-change | Voice Changer |