CleanvoiceDocs
Python SDK

Configuration Reference

Interactive builder and full reference for every option in the Python SDK.

Every parameter maps directly to client.process().

Cleanvoice resamples all audio to 44.1 kHz or 48 kHz before processing. Your original file is not modified — the cleaned output uses the resampled rate.


Option reference

Audio cleaning

OptionTypeDefaultDescription
fillersboolFalseRemove "um", "uh", "like", and similar filler words
long_silencesboolFalseTrim long pauses and gaps between sentences
mouth_soundsboolFalseRemove clicks, lip smacks, and tongue sounds
breathbool | strFalseRemove audible breathing between sentences
stuttersboolFalseRemove repeated word fragments ("I— I— I think")
hesitationsboolFalseRemove short hesitation sounds that aren't full filler words
mutedboolFalseSilence 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

OptionTypeDefaultDescription
remove_noiseboolTrueReduce hiss, hum, fan noise, and background sounds. On by default; pass False to disable it.
studio_soundbool | strFalseAggressive enhancement for studio-quality output.
normalizeboolFalseBalance volume levels throughout the file
keep_musicboolFalsePreserve music sections during noise reduction
autoeqboolFalseLegacy automatic EQ option. Prefer studio_sound; autoeq will be removed in a future release.

studio_sound options:

ValueBehavior
TrueRecommended. Applies aggressive studio-quality enhancement.
"nightly"Advanced/experimental variant. Currently behaves similarly to True.
FalseDisabled (default).

studio_sound is more aggressive than remove_noise. For most recordings, remove_noise alone is sufficient. Use studio_sound for challenging recordings in noisy environments.

Output

OptionTypeDefaultDescription
export_formatstr"auto"Audio-only output format: mp3, wav, flac, m4a, or auto (matches input). Video jobs keep the original video container format.
target_lufsfloat-16.0Target integrated loudness in LUFS. -16 is the standard for podcasts
mute_lufsfloat-120Gate level for LUFS measurement. Default -120 disables gating.
export_timestampsboolFalseReturn a JSON file with edit markers for use in a DAW or NLE

To set a loudness target, pass target_lufs to the value you want:

result = client.process("episode.mp3", target_lufs=-16.0)

Content generation

OptionTypeDefaultDescription
transcriptionboolFalseFull word-by-word transcript. Language auto-detected.
summarizeboolFalseChapter markers, key learnings, and episode summary. Requires transcription=True.
social_contentboolFalseGenerate tweets, LinkedIn posts, and show notes. Enables summarize automatically.

Advanced

OptionTypeDefaultDescription
signed_urlstrNonePre-signed PUT URL. Cleanvoice uploads directly to your storage instead of hosting the file.
mergeboolFalseMulti-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_edlboolFalseVideo workflows only. Return additional uncut enhanced audio alongside the edited video for EDL/NLE work.
videoboolFalseProcess 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 Python SDK, common video paths are auto-detected, but being explicit is still safest.

SDK-only options

OptionTypeDefaultDescription
output_pathstrNoneSave the cleaned audio to this path automatically
progress_callbackcallableNoneCalled with status updates during polling
def on_progress(status):
    print(f"Status: {status}")

result = client.process(
    "episode.mp3",
    remove_noise=True,
    studio_sound=True,
    normalize=True,
    progress_callback=on_progress,
    output_path="cleaned.mp3",
)