JavaScript SDK
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
| Option | Type | Default | Description |
|---|---|---|---|
remove_noise | boolean | true | Reduce hiss, hum, fan noise, and background sounds. On by default; pass false to disable it. |
studio_sound | boolean | string | false | Aggressive enhancement for studio-quality output. |
normalize | boolean | false | Balance volume levels throughout the file |
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. |
studio_sound options:
| Value | Behavior |
|---|---|
true | Recommended. Applies aggressive studio-quality enhancement. |
"nightly" | Advanced/experimental variant. Currently behaves similarly to true. |
false | Disabled (default). |
studio_sound is more aggressive than remove_noise. For most recordings, remove_noise alone is sufficient.
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 | -16 | Target integrated loudness in LUFS. -16 is the standard for podcasts |
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 |
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. If you need automatic level balancing for a merged multi-track job, use automix as the companion option. |
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,
studio_sound: true,
normalize: true,
fillers: true,
long_silences: true,
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);
}