27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
# Audio Denoise Worker (RNNoise / arnndn)
|
|
|
|
RunPod Serverless CPU worker that removes background noise from audio using
|
|
ffmpeg's RNNoise filter (`arnndn`), with a built-in FFT denoiser (`afftdn`)
|
|
as an automatic fallback.
|
|
|
|
## Contract
|
|
- Input: `{"audio": "<base64>"}` — any format/sample rate. A `data:...;base64,`
|
|
prefix is stripped automatically.
|
|
- Output: `{"audio": "<base64 WAV>"}` — denoised, 48 kHz mono WAV.
|
|
- Error: `{"error": "<message>"}`.
|
|
|
|
## Pipeline
|
|
decode base64 -> temp input file -> `ffmpeg -i in -af arnndn=m=/app/models/rnnoise.rnnn -ar 48000 -ac 1 out.wav` -> read -> base64.
|
|
|
|
## Deploy
|
|
- Dockerfile path: `/workers/audio-denoise/Dockerfile`
|
|
- Build context: repo root (`docker build -f workers/audio-denoise/Dockerfile .`)
|
|
- GPU: none (CPU-only worker)
|
|
- App env var to set: `RUNPOD_AUDIO_DENOISE_URL` (your deployed endpoint URL)
|
|
|
|
## Model
|
|
The Dockerfile downloads the `beguiling-drafts` RNNoise model from
|
|
`GregorR/rnnoise-models` to `/app/models/rnnoise.rnnn`. If that download
|
|
fails at build time, the handler transparently falls back to ffmpeg's
|
|
built-in `afftdn` FFT denoiser (no model file needed).
|