Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user