Configuration Reference
Interactive builder and full reference for every option in the JavaScript SDK.
Every parameter maps directly to client.process().
Option reference
Audio cleaning
| Option | Type | Default | Description |
|---|---|---|---|
fillers | boolean | false | Remove "um", "uh", "like", and similar filler words |
long_silences | boolean | false | Trim long pauses and gaps between sentences |
mouth_sounds | boolean | false | Remove clicks, lip smacks, and tongue sounds |
breath | boolean | string | false | Remove audible breathing between sentences |
stutters | boolean | false | Remove repeated word fragments ("I— I— I think") |
hesitations | boolean | false | Remove short hesitation sounds that aren't full filler words |
muted | boolean | false | Silence edits instead of cutting — preserves original timing |
Filler and hesitation detection is language-aware. English, German, and Romanian have the most accurate models. See supported languages.
breath options:
| Value | Behavior |
|---|---|
true | Recommended for most audio. Best default for challenging recordings. |
"legacy" | Conservative removal. Safer choice for already-clean recordings. |
"natural" | Lighter touch — preserves more of the original breathing feel. |
false | Disabled (default). |
Audio enhancement
Recommended default: remove_noise: true and normalize: true. true, and omitting remove_noise, runs Noise v2. 'legacy' pins the previous engine (DeepFilterNet). 'v2' is still accepted and means the same as true. normalize: true is Normalize v2 (a boolean; there is no 'v2' string). Filler, silence, and breath options stay off unless you ask for them.
const result = await client.process('episode.mp3', {
remove_noise: true,
normalize: true,
});| Option | Type | Default | Description |
|---|---|---|---|
remove_noise | boolean | string | true (Noise v2) | true is Noise v2 (recommended). Omitting it is the same as true. 'legacy' pins the previous engine (DeepFilterNet). 'v2' is still accepted. false turns it off. |
studio_sound | boolean | string | false | Optional, more aggressive enhancement. |
normalize | boolean | false | Normalize v2 when true. Levels loudness. Off when omitted. |
keep_music | boolean | false | Preserve music sections during noise reduction |
autoeq | boolean | false | Legacy automatic EQ option. Prefer studio_sound; autoeq will be removed in a future release. |
remove_noise values:
| Value | Behavior |
|---|---|
true | Recommended. Noise v2. This is also the default when the option is omitted. |
'legacy' | Previous engine (DeepFilterNet), pinned so it stays on that model. |
'v2' | Still accepted. Same as true (Noise v2). |
false | Off. |
studio_sound options:
| Value | Behavior |
|---|---|
true | Aggressive studio-quality enhancement. Optional, and stronger than Remove Noise v2. |
'nightly' | Advanced/experimental variant. Currently behaves similarly to true. |
false | Disabled (default). |
Output
| Option | Type | Default | Description |
|---|---|---|---|
export_format | string | 'auto' | Audio-only output format: 'mp3', 'wav', 'flac', 'm4a', or 'auto' (matches input). Video jobs keep the original video container format. |
target_lufs | number | omitted (-16 with Normalize v2) | Integrated loudness when normalize is true. Accepted range is -36 to -6. -16 is the podcast target and the value Normalize v2 uses when this option is omitted. |
mute_lufs | number | -120 | Gate level for LUFS measurement. Default -120 disables gating. |
export_timestamps | boolean | false | Return a JSON file with edit markers for use in a DAW or NLE |
The typed SDK surface guarantees 'auto', 'mp3', 'wav', 'flac', and 'm4a' for export_format. The backend can support additional values such as opus and aac, but those are not part of the current TypeScript type definition.
Content generation
| Option | Type | Default | Description |
|---|---|---|---|
transcription | boolean | false | Full word-by-word transcript. Language auto-detected. |
summarize | boolean | false | Chapter markers, key learnings, and episode summary. Enables transcription automatically. |
social_content | boolean | false | Generate tweets, LinkedIn posts, and show notes. Enables summarize automatically. |
Delivery
| Option | Type | Default | Description |
|---|---|---|---|
signed_url | string | undefined | Pre-signed PUT URL. Cleanvoice uploads directly to your storage instead of hosting the file. |
Advanced
| Option | Type | Default | Description |
|---|---|---|---|
merge | boolean | false | Multi-track only. Merge all tracks into a single output file. |
audio_for_edl | boolean | false | Video workflows only. Return additional uncut enhanced audio alongside the edited video for EDL/NLE work. |
video | boolean | false | Process the input as video. The SDK auto-detects common video filenames and URLs, but explicit video: true is safest for ambiguous or extensionless URLs. |
For raw REST requests, video must be set to true for actual video editing. Otherwise the file is treated as audio-only. In the SDK, common video paths are auto-detected, but being explicit is still safest.
Full example
import { Cleanvoice } from '@cleanvoice/cleanvoice-sdk';
const client = Cleanvoice.fromEnv();
const result = await client.process('episode.mp3', {
remove_noise: true,
normalize: true,
fillers: true, // optional edit
long_silences: true, // optional edit
export_format: 'mp3',
transcription: true,
});
console.log('Cleaned audio:', result.audio.url);
await result.audio.download('cleaned.mp3');
if (result.transcript) {
console.log('Transcript:', result.transcript.text);
}