Skip to main content
rikorose avatar

DeepFilterNet 3 API

rikorose/deepfilternet3

Clean up a noisy speech recording by removing background noise and upsampling it to studio-quality 48 kHz audio.

refine
0.001 per second of output video

Model Input

Input

URL of the audio file to enhance (mp3, ogg, wav, m4a, aac). Background noise is removed and the speech is upsampled to 48 kHz.

Additional Settings

Customize your input with more control.

Container format of the enhanced output audio.

Bitrate of the output audio (e.g. 192k). Ignored for lossless formats.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Loading
Generated in 2.08 seconds
Logs (1 lines)

Model Example Requests

Examples

DeepFilterNet 3 API

DeepFilterNet 3 is a audio-to-audio AI model by rikorose. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.001 per second of audio.

POST https://queue.modelrunner.run/rikorose/deepfilternet3

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/rikorose/deepfilternet3 \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "bitrate": "192k",
    "audio_url": "https://media.modelrunner.ai/s1Y2kEzwGHm7moYnw76EP.mp3",
    "audio_format": "mp3",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/rikorose/deepfilternet3/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/rikorose/deepfilternet3/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("rikorose/deepfilternet3", {
  input: {
    "bitrate": "192k",
    "audio_url": "https://media.modelrunner.ai/s1Y2kEzwGHm7moYnw76EP.mp3",
    "audio_format": "mp3"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/rikorose/deepfilternet3",
    headers=headers,
    json={
      "bitrate": "192k",
      "audio_url": "https://media.modelrunner.ai/s1Y2kEzwGHm7moYnw76EP.mp3",
      "audio_format": "mp3"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
audio_urlstring (uri)yesURL of the audio file to enhance (mp3, ogg, wav, m4a, aac). Background noise is removed and the speech is upsampled to 48 kHz.
audio_formatenumnoContainer format of the enhanced output audio. Default: "mp3".
bitratestringnoBitrate of the output audio (e.g. 192k). Ignored for lossless formats. Default: "192k".

Machine-readable: OpenAPI schema · llms.txt

Use DeepFilterNet 3 from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and DeepFilterNet 3 becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint rikorose/deepfilternet3.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run rikorose/deepfilternet3 on ModelRunner to generate audio”. MCP setup guide.

Model Details

Model Details

DeepFilterNet 3 is a real-time speech-enhancement model that cleans up a noisy voice recording and upsamples it to studio-quality 48 kHz mono. Pass a URL to an audio file (mp3, ogg, wav, m4a, aac) and it removes broadband background noise from the speech signal while keeping the recording intact, then returns a higher-fidelity file at the container format and bitrate you choose. Unlike voice isolation or source separation, it does not strip out other tracks — it improves the perceptual quality of the speech you already have, which makes it ideal for salvaging real-world recordings.\n\n## Best for\n- Cleaning up noisy phone or video calls, voice memos, and field recordings\n- Restoring low-bitrate or old speech recordings to a cleaner, higher-fidelity 48 kHz version\n- Podcast and voiceover cleanup where the speaker is already the only source but the room or mic is noisy\n- Preprocessing dialogue before transcription or further editing so speech-to-text sees a cleaner signal\n\n## Choose another model when\n- You need to pull a voice out of a mix that also contains music or other speakers — use a voice-isolation model (elevenlabs/audio-isolation)\n- You want to extract one specific described sound (an instrument, an effect) from a layered mixture — use an audio source-separation model (meta/sam-audio)\n- Your recording is already clean and you only need a transcript — send it straight to a speech-to-text model\n\n## Advanced Configuration\n- `audio_format` selects the output container: `mp3`, `aac`, `m4a`, `ogg`, `opus`, `flac`, or `wav` (default `mp3`). Pick `flac` or `wav` for a lossless result, `opus`/`aac` for small streaming files.\n- `bitrate` sets the encoded output bitrate as a string like `192k` (default). Raise it for higher-quality lossy output; it is ignored for lossless formats.\n\nOutput is always mono at a 48 kHz sample rate regardless of the input, and the enhanced audio keeps the same duration as the source.\n\nTo run via the ModelRunner JavaScript client:\n```js\nimport { modelrunner } from \"@modelrunner/client\";\n\nconst result = await modelrunner.subscribe(\"rikorose/deepfilternet3\", {\n input: {\n audio_url: \"https://media.modelrunner.ai/9tAgozhatuqrDkuBmANeS.mp3\",\n audio_format: \"mp3\",\n bitrate: \"192k\",\n },\n});\n```