CleanvoiceDocs
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

OptionTypeDefaultDescription
fillersbooleanfalseRemove "um", "uh", "like", and similar filler words
long_silencesbooleanfalseTrim long pauses and gaps between sentences
mouth_soundsbooleanfalseRemove clicks, lip smacks, and tongue sounds
breathboolean | stringfalseRemove audible breathing between sentences
stuttersbooleanfalseRemove repeated word fragments ("I— I— I think")
hesitationsbooleanfalseRemove short hesitation sounds that aren't full filler words
mutedbooleanfalseSilence 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:

ValueBehavior
trueRecommended 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.
falseDisabled (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,
});
OptionTypeDefaultDescription
remove_noiseboolean | stringtrue (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_soundboolean | stringfalseOptional, more aggressive enhancement.
normalizebooleanfalseNormalize v2 when true. Levels loudness. Off when omitted.
keep_musicbooleanfalsePreserve music sections during noise reduction
autoeqbooleanfalseLegacy automatic EQ option. Prefer studio_sound; autoeq will be removed in a future release.

remove_noise values:

ValueBehavior
trueRecommended. 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).
falseOff.

studio_sound options:

ValueBehavior
trueAggressive studio-quality enhancement. Optional, and stronger than Remove Noise v2.
'nightly'Advanced/experimental variant. Currently behaves similarly to true.
falseDisabled (default).

Output

OptionTypeDefaultDescription
export_formatstring'auto'Audio-only output format: 'mp3', 'wav', 'flac', 'm4a', or 'auto' (matches input). Video jobs keep the original video container format.
target_lufsnumberomitted (-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_lufsnumber-120Gate level for LUFS measurement. Default -120 disables gating.
export_timestampsbooleanfalseReturn 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

OptionTypeDefaultDescription
transcriptionbooleanfalseFull word-by-word transcript. Language auto-detected.
summarizebooleanfalseChapter markers, key learnings, and episode summary. Enables transcription automatically.
social_contentbooleanfalseGenerate tweets, LinkedIn posts, and show notes. Enables summarize automatically.

Delivery

OptionTypeDefaultDescription
signed_urlstringundefinedPre-signed PUT URL. Cleanvoice uploads directly to your storage instead of hosting the file.

Advanced

OptionTypeDefaultDescription
mergebooleanfalseMulti-track only. Merge all tracks into a single output file.
audio_for_edlbooleanfalseVideo workflows only. Return additional uncut enhanced audio alongside the edited video for EDL/NLE work.
videobooleanfalseProcess 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);
}