Skip to content
audo

Noise Removal & Audio Cleanup API

Clean up speech in audio and video files with one HTTP request. Audo provides two endpoints for speech clean-up and noise reduction:

EndpointTool IDWeb pageWhat it doesPriceFree tier
POST /api/try/remove-noiseremove_noiseRemove noiseFilters out background noise, hiss, hum, wind, and music behind speech while keeping the speaker's natural voice as recorded; sets loudness to -16 LUFS$0.03/min ($1.80/hr)First minute free, 3x/day, no API key
POST /api/try/enhance-voiceenhance_voiceAudio enhancer (enhance-audio)Regenerates speech to remove room echo, reverb, background noise, and distortion while restoring muffled, phone, or distant microphones; sets loudness to -16 LUFS$0.03/min ($1.80/hr)First minute free, 3x/day, no API key

One-call free API (no API key required)

Send a local file with multipart/form-data or a public HTTPS link as JSON. Without an Authorization header, Audo processes the first minute of each file for free (3 times a day per tool):

Terminal
# Non-generative noise removal (keeps the speaker's exact voice):
curl -F file=@interview.wav https://audo.ai/api/try/remove-noise -D response.headers -o response.body

# Generative voice enhancement & echo removal (fixes muffled mics and room reverb):
curl -F file=@voice-note.m4a https://audo.ai/api/try/enhance-voice -D response.headers -o response.body

# Or pass a public HTTPS URL as JSON:
curl -X POST https://audo.ai/api/try/remove-noise \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/interview.wav", "noise_reduction": 100, "auto_volume": true}' \
  -D response.headers -o response.body

Inspect response.headers for the HTTP status and Content-Type before naming response.body: a 200 media response is the cleaned audio or video file itself, whereas a 202 JSON response gives a statusUrl to poll for longer jobs (see Responses).

Options

  • noise_reduction: integer from 10 to 100 (default 100). On remove-noise, controls how far background noise is turned down (100 removes all it can; lower values leave a natural bed of room tone). On enhance-voice, sets the blend of the regenerated studio voice (100 full studio voice; lower values mix back more of the original recording).
  • auto_volume: boolean (default true). Normalizes the output to -16 LUFS with a -1 dBTP true-peak ceiling.
  • output_format: same (default), wav, mp3, m4a, or flac.

Whole files with an API key

Add an API key from the API page with free=false and an approved positive max_credits cap (1 credit = 1 US cent, so $0.03/min is 3 credits per minute). You are charged only when the job succeeds:

Terminal
curl -H "Authorization: Bearer $AUDO_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -F file=@interview.wav \
  -F noise_reduction=100 \
  -F free=false \
  -F max_credits="$APPROVED_MAX_CREDITS" \
  https://audo.ai/api/try/remove-noise -D response.headers -o response.body

Video pass-through (picture copied untouched)

Both /api/try/remove-noise and /api/try/enhance-voice accept video files directly (MP4, MOV, MKV, WebM, and AVI, up to 10 GB and 10 hours). When output_format is same (the default), Audo cleans the audio track and copies the original video stream bit-for-bit without re-encoding the picture—so there is zero visual quality loss and no need to demux and remux audio in your own pipeline:

Terminal
curl -F file=@lecture.mp4 -F noise_reduction=100 https://audo.ai/api/try/remove-noise -D response.headers -o response.body

Authenticated REST API (/api/v1/jobs)

For server backends and files up to 10 GB (uploaded in parts over 16 MB), use the REST API:

  1. POST https://audo.ai/api/v1/files with {"filename": "episode.wav", "sizeBytes": 52428800} and upload the bytes to upload.url (or multipart).
  2. GET https://audo.ai/api/v1/files/<file_id>?wait=30 until status is ready.
  3. POST https://audo.ai/api/v1/jobs to start remove_noise or enhance_voice:
Terminal
curl -X POST https://audo.ai/api/v1/jobs \
  -H "Authorization: Bearer $AUDO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool": "remove_noise",
    "file_id": "file_8Kc2QmP4",
    "noise_reduction": 100,
    "auto_volume": true,
    "output_format": "same",
    "free": false,
    "max_credits": 300,
    "idempotency_key": "550e8400-e29b-41d4-a716-446655440000"
  }'
  1. Poll GET https://audo.ai/api/v1/jobs/<job_id> until status is succeeded, then fetch a signed download URL from GET https://audo.ai/api/v1/files/<output_file_id>/download.

Batch-clean a folder of files

To clean a folder of recordings safely, download and inspect the Python client (free-api.py), which checks HTTP statuses, follows 202 job links on audo.ai, verifies downloaded media with ffprobe, and writes each result into a separate directory:

Terminal
python3 free-api.py remove-noise interview.wav ./cleaned/interview '{"noise_reduction":100,"auto_volume":true}'

for file in ./raw-recordings/*.{wav,mp3,m4a,mp4}; do
  [ -e "$file" ] || continue
  name="$(basename "${file%.*}")"
  python3 free-api.py remove-noise "$file" "./cleaned/$name" '{"noise_reduction":100,"auto_volume":true}'
done

Without an API key, one address can stream 2 uploads at once (an account with an API key, 4 at once, and up to 3 running jobs in parallel).

Command-line afftdn and arnndn filters vs. Audo for speech

Developers building audio pipelines often start with local command-line filters such as afftdn (FFT spectral denoiser), arnndn (RNNoise recurrent network filter), or anlmdn (non-local means denoiser). Here is how they compare with Audo's speech endpoints:

Capabilityafftdn / anlmdnarnndn (RNNoise)Audo remove_noiseAudo enhance_voice
Steady hiss and fan humGood when noise floor (nf) is tuned or sampledGoodAutomatic, no manual profileAutomatic
Non-stationary noise (café chatter, traffic, keyboard clicks, music)Leaves chatter behind or causes watery "musical noise"Partial; can clip fast consonant onsetsSeparates speech from complex background noise and musicStrips background noise, chatter, and music
Room echo and hollow reverbNoneNoneKeeps room acousticsRemoves room echo and reverb
Muffled, distant, or phone microphonesCannot restore missing frequenciesCannot restore missing frequenciesPreserves original mic toneRebuilds close, studio-quality vocal presence
EBU R 128 loudness (-16 LUFS, -1 dBTP)Requires a separate two-pass ebur128 / loudnorm chainRequires a separate passBuilt in (auto_volume=true)Built in (auto_volume=true)
  • When `afftdn` or `arnndn` is enough: You have a clean close-mic recording with only light, steady preamp hiss and want zero external network calls.
  • When to call `remove_noise`: You have variable background noise (air conditioning, street traffic, café clatter, or background music) and want the speaker's natural vocal timbre preserved without tuning filter thresholds per file.
  • When to call `enhance_voice`: The speaker was recorded in an echoey conference room, on a laptop or phone mic, or across a table and needs both reverb removal and vocal restoration.

This page as Markdown