Voice Cleaner cleans up speech recordings. It reduces background noise in speech; Jantaris runs it at moderate strength (level 1 of 2), which keeps the voice natural. It is meant for podcasts, voiceovers and cleanup before transcription, where hum or traffic makes a take hard to use. You pass a public audio URL and get the cleaned file back. Choosing the strength, dereverb and output format is not available in Jantaris yet. It fits transcription and dubbing workflows that start from imperfect field recordings.
Best for
- Podcast episodes recorded outside a studio
- Voiceovers recorded on a laptop microphone
- Interviews and field recordings before transcription
- Lecture and webinar audio
Prompting tips
- Test a short excerpt first and check the result before processing the full file.
- Record close to the microphone; the tool removes noise but cannot rescue a distant, quiet voice.
- Process the raw recording, not a file that has already been compressed or denoised elsewhere.
- Trim silence at the start and end, since billing is per started minute.
FAQ
How much does the Voice Cleaner API cost?
Voice Cleaner costs $0.50 per minute. You see the estimated cost first, and failed jobs are not charged.
Can Voice Cleaner remove echo?
The engine has a dereverb option, but Jantaris does not expose it yet, so room echo is not targeted.
Does Voice Cleaner work on music?
It is built for speech. To separate music from a voice, use Music Extractor or Vocal Remover.
How to call Voice Cleaner via API
curl https://jantaris.com/v1/generate?wait=60 \
-H "Authorization: Bearer $JANTARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "voice-cleaner",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}'import os, time, requests
API = "https://jantaris.com/v1"
H = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}
task = requests.post(f"{API}/generate", headers=H, json={
"model": "voice-cleaner",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}).json()
while task["status"] in ("queued", "running"):
time.sleep(3)
task = requests.get(f"{API}/tasks/{task['id']}", headers=H).json()
print(task["status"], task["cost"], [o["url"] for o in task["output"]])const API = "https://jantaris.com/v1";
const headers = { Authorization: `Bearer ${process.env.JANTARIS_API_KEY}`, "Content-Type": "application/json" };
let task = await (await fetch(`${API}/generate`, {
method: "POST",
headers,
body: JSON.stringify({
"model": "voice-cleaner",
"input": {
"audio_url": "https://example.com/input.mp3"
}
}),
})).json();
while (task.status === "queued" || task.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
task = await (await fetch(`${API}/tasks/${task.id}`, { headers })).json();
}
console.log(task.status, task.cost, task.output.map((o) => o.url));
Parameters
| Parameter | Type | Allowed | Default |
|---|---|---|---|
audio_url * | string |
The same schema is available from GET /v1/models/voice-cleaner.









