Developer comparison · Sources checked October 21, 2026
Speech Enhancement API Comparison: Diffio vs ElevenLabs, Krisp, Auphonic & Cleanvoice
The largest quality gain of any speech enhancement API we tested, from $5 an hour.
Our verdict
Diffio is the pick for a speech enhancement API that restores recorded speech: in our 59-clip test, Diffio 4.6 Pro raised the SCOREQ speech quality score by 2.31 on average, against 1.89 for Cleanvoice, 0.82 for Auphonic, 0.79 for ElevenLabs and 0.46 for Descript Studio Sound. Pick ElevenLabs if you want one synchronous call that returns the audio, Auphonic or Cleanvoice for the lowest price per hour, and Krisp for live calls and voice agents rather than files.
Asynchronous
Diffio 4.6 Pro
Diffio API, model diffio-4.6-pro
$10/h
+2.31 quality gain
- SDKs
- Python and JavaScript
- Webhooks
- Yes
Asynchronous
Diffio 4.6 Flash
Diffio API, model diffio-4.6-flash
$5/h
+2.26 quality gain
- SDKs
- Python and JavaScript
- Webhooks
- Yes
Synchronous
ElevenLabs
Audio isolation API
From $7.20/h
+0.79 quality gain
- SDKs
- Python and JavaScript, plus a CLI
- Webhooks
- No
Real-time stream
Krisp
Voice Isolation API and VIVA SDK
No published hourly price
Not in our test
- SDKs
- VIVA SDK for Python, Node.js, Go, Rust, C++ and C
- Webhooks
- No
Asynchronous
Auphonic
Auphonic API (Simple and JSON)
From $1.36/h
+0.82 quality gain
- SDKs
- No language SDKs; Simple API, JSON API, CLI and an OpenAPI spec
- Webhooks
- Yes
Asynchronous
Cleanvoice
Cleanvoice API v2
From $0.90/h
+1.89 quality gain
- SDKs
- Python and JavaScript
- Webhooks
- No
Asynchronous
Descript
Descript API
No published hourly price
+0.46 quality gain
- SDKs
- No language SDKs; an OpenAPI spec, a CLI and an MCP server
- Webhooks
- Yes
No API
Adobe Podcast
None listed
No API
Not in our test
- SDKs
- None
- Webhooks
- Not applicable
Quality gain is the average SCOREQ gain over the original in our 59-clip test. "From" prices are each vendor's lowest published hourly rate, usually on its largest plan. Diffio is not affiliated with or endorsed by Adobe, Descript, Auphonic, ElevenLabs, Cleanvoice or Krisp. Product names are trademarks of their owners.
The APIs side by side
How each API cleans a recorded file, what it accepts, what an hour costs, and how long it keeps your audio. Prices in US dollars before tax.
| Tool | How it works | Input limits | Price per hour | SDKs | Webhooks | Data retention |
|---|---|---|---|---|---|---|
| DiffioDiffio API | Asynchronous. Upload a file to create a project, start a generation for each model, then poll its progress or receive a webhook and download the result | Audio or video files up to 2 GB each | $5/h for Diffio 4.6 Flash, $10/h for Diffio 4.6 Pro, billed per second with a 60-second minimum per request; a one-time $5 starting credit | Python and JavaScript | Yes, signed webhooks per API key, with a test-event endpoint | Kept in your account until you delete it; deleted project content is not kept in backups |
| ElevenLabsAudio isolation API | Synchronous. POST /v1/audio-isolation with the file as multipart form data; cleaned audio comes back in the response (a /stream variant streams it) | Up to 500 MB and 1 hour per file; common audio and video formats | From $7.20/h. $0.12 per minute of audio on API pricing, billed in US dollars | Python and JavaScript, plus a CLI | None for audio isolation (the call returns the audio) | Retained under the privacy policy by default; Voice Isolator is not listed under Zero Retention Mode |
| KrispVoice Isolation API and VIVA SDK | Real-time stream. WebSocket stream (wss://streaming.krisp.ai/voice-isolation) of 30 ms audio frames at real-time pace, or the on-device VIVA SDK; no file upload endpoint | 16-bit mono PCM at 8 or 16 kHz, streamed in real time; session tokens last up to 5 hours | Not published; developer plans are by application, with volume pricing | VIVA SDK for Python, Node.js, Go, Rust, C++ and C | None (live stream) | The SDK processes audio on your side and Krisp does not store it; no retention period published for the cloud API |
| AuphonicAuphonic API (Simple and JSON) | Asynchronous. POST /api/simple/productions.json to create and start a production (denoisemethod=speech_isolation for Speech Isolation), then poll its status or wait for the webhook | Many audio and video formats; no file size or duration limit published | From $1.36/h. The same credits as the web app, from 2 free hours a month; each production is charged at least 3 minutes | No language SDKs; Simple API, JSON API, CLI and an OpenAPI spec | Yes, a webhook URL per production or preset (HTTP POST when processing ends) | API productions deleted after 7 days; a DELETE endpoint removes them sooner |
| CleanvoiceCleanvoice API v2 | Asynchronous. POST /v2/edits with a file URL and config (remove_noise, studio_sound), then poll GET /v2/edits/{id} for the download URL | Up to 3 GB per file; audio and video formats; no duration limit published | From $0.90/h. The same credits as the web app; billed per minute of audio, rounded up, with a 1-minute minimum | Python and JavaScript | None published (the SDKs poll; output can be written to your own signed URL) | Uploaded and edited files kept for 7 days, then removed; a DELETE endpoint removes them sooner; processed in the EU |
| DescriptDescript API | Asynchronous. Three jobs: import media, an Underlord agent edit that applies Studio Sound from a prompt, then a publish job that returns a signed download URL | File size by plan, up to 50 GB on Business; no duration limit published | No per-hour API price; imports use plan media minutes and the agent edit uses AI credits | No language SDKs; an OpenAPI spec, a CLI and an MCP server | Yes, a callback_url per job | Job history kept 30 days; projects stay in your Drive until deleted, with no API delete for media |
| Adobe PodcastNone listed | No API. No public Enhance Speech API listed; Adobe's Firefly Services Audio/Video API covers speech generation, transcription, dubbing and reframing | Not applicable | Not applicable | None | Not applicable | Not applicable |
"From" prices are the lowest published hourly rate, usually on the largest plan; small one-time purchases cost more per hour. Diffio facts come from our API pricing, quick start, webhooks guide and privacy policy.
How the APIs sounded on the same 59 recordings
Diffio ran each file API below on the same 59 real recordings, through the API where one exists, in its strongest speech cleanup mode at default amounts. Krisp was not tested because it has no file API, and Adobe Podcast lists no API. Scores are model predictions, not a human listening study. Of the 6 API runs, Diffio 4.6 Pro had the largest average quality gain (+2.31) and the lowest word error rate (10.5%); the untouched recordings had a word error rate of 13.2%. Of the other vendors, Cleanvoice came closest on quality (+1.89).
All 59 recordings, API tools only
Bars are averages over 59 clips; the thin lines show 95% intervals. SCOREQ (no-reference speech quality model; higher is better). Gain = output minus the original clip. Word error rate of a small speech recognizer (faster-whisper small.en) on each output, against MAI-Transcribe-2 on the original; lower is better. On the word error rate view, the dashed line is the untouched original recording.
Show the numbers
| Tool | Quality gain (SCOREQ) | Word error rate | Similarity to the original recording |
|---|---|---|---|
| Diffio 4.6 Pro | +2.3195% interval 2.15 to 2.47 | 10.5%95% interval 7.8% to 13.7% | 0.58 |
| Diffio 4.6 Flash | +2.2695% interval 2.09 to 2.44 | 10.9%95% interval 7.6% to 15.1% | 0.56 |
| ElevenLabs | +0.7995% interval 0.60 to 0.98 | 18.1%95% interval 13.0% to 23.6% | 0.83 |
| Auphonic | +0.8295% interval 0.65 to 1.00 | 13.3%95% interval 10.0% to 16.8% | 0.84 |
| Cleanvoice | +1.8995% interval 1.73 to 2.05 | 16.4%95% interval 11.8% to 21.3% | 0.58 |
| Descript Studio Sound | +0.4695% interval 0.39 to 0.53 | 22.6%95% interval 16.6% to 28.9% | 0.72 |
| Original recording | No processing (average SCOREQ 2.31) | 13.2%95% interval 9.6% to 17.3% | 1.00 |
Averages over 59 clips of real recordings, run October 22, 2026. A higher SCOREQ gain and a lower word error rate are better. Similarity to the original recording is measured against the noisy original, so a tool that changes less scores higher; it is not a measure of voice quality.
One typical clip per recording type (Diffio 4.6 Pro's median result). Pick any of the 8.
Sermon 17. Decades-old church recordings with tape hiss, hum and room sound.
Archived sermon recording, used with permission. Excerpts are loudness-matched for fair listening.
| Version | SCOREQ | Word error rate | Similarity to the original |
|---|---|---|---|
| Diffio 4.6 Pro | 4.86 | 6.7% | 0.55 |
| Diffio 4.6 Flash | 4.85 | 2.7% | 0.55 |
| ElevenLabs | 2.95 | 6.7% | 0.92 |
| Auphonic | 2.87 | 6.7% | 0.86 |
| Cleanvoice | 4.62 | 12.0% | 0.58 |
| Descript Studio Sound | 3.36 | 12.0% | 0.69 |
| Original recording | 2.40 | 5.3% | 1.00 |
Price per hour
Lowest first: Cleanvoice (from $0.90/h), Auphonic (from $1.36/h), Diffio 4.6 Flash ($5/h), ElevenLabs (from $7.20/h) and Diffio 4.6 Pro ($10/h). Every API priced below Diffio 4.6 Flash had a smaller quality gain in the test: +1.89 for Cleanvoice and +0.82 for Auphonic, against +2.26.
Published API price per hour
Diffio bills each model per second at one rate for every API account. Other prices are each vendor's lowest published hourly rate, usually on its largest plan, so smaller purchases cost more per hour. Not charted: Krisp (no published hourly price), Descript (no published hourly price), Adobe Podcast (no API).
What a request looks like
Short examples from each vendor's documented request shape. Keys come from environment variables; never put them in code.
Request examples
import os
from diffio import DiffioClient
client = DiffioClient(apiKey=os.getenv("DIFFIO_API_KEY"))
project = client.create_project(filePath="interview.wav")
generation = client.create_generation(
apiProjectId=project.apiProjectId, model="diffio-4.6-pro"
)
# Poll client.generations.get_progress(...) or wait for the webhook, then:
client.generations.download(
generationId=generation.generationId, apiProjectId=project.apiProjectId,
downloadFilePath="restored.mp3", downloadType="mp3",
)The quick start shows the full polling loop and transcript download.
import { DiffioClient } from "diffio"
const client = new DiffioClient({ apiKey: process.env.DIFFIO_API_KEY })
const project = await client.createProject({ filePath: "./interview.wav" })
const generation = await client.createGeneration({
apiProjectId: project.apiProjectId, model: "diffio-4.6-pro"
})
// Poll client.generations.getProgress(...) or wait for the webhook, then:
const download = await client.generations.getDownload({
generationId: generation.generationId, apiProjectId: project.apiProjectId, downloadType: "audio"
})download.downloadUrl is a signed link to the restored audio.
curl -X POST https://api.elevenlabs.io/v1/audio-isolation \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-F "audio=@interview.wav" \
--output isolated.mp3The cleaned audio comes back in the response.
curl -X POST https://auphonic.com/api/simple/productions.json \
-H "Authorization: bearer $AUPHONIC_API_KEY" \
-F "input_file=@interview.wav" \
-F "denoise=true" -F "denoisemethod=speech_isolation" \
-F "action=start"Poll the production status or set a webhook, then download from output_files.
curl -X POST https://api.cleanvoice.ai/v2/edits \
-H "X-API-Key: $CLEANVOICE_API_KEY" -H "Content-Type: application/json" \
-d '{"input": {"files": ["https://example.com/interview.wav"],
"config": {"remove_noise": true, "studio_sound": true}}}'Poll GET /v2/edits/{id} until result.download_url is ready.
# Every call sends: Authorization: Bearer $DESCRIPT_API_TOKEN
POST https://descriptapi.com/v1/jobs/import/project_media # import the file
POST https://descriptapi.com/v1/jobs/agent {"project_id": "...", "prompt": "add studio sound to every clip"}
POST https://descriptapi.com/v1/jobs/publish {"project_id": "...", "media_type": "Audio"}
GET https://descriptapi.com/v1/jobs/{job_id} # poll each job; publish returns download_urlEach job also accepts a callback_url instead of polling.
Krisp streams 30 ms audio frames over a WebSocket after you exchange an API key for a session token; see its Voice Isolation API overview. Adobe Podcast has no API to call.
Start with the Diffio quick start, then manage keys and usage on the developer dashboard.
Pick by job
Restore damaged recordings in your product
Diffio
Asynchronous jobs with webhooks, Python and JavaScript SDKs, and per-second billing.
One call, audio back in the response
ElevenLabs
Audio isolation returns the cleaned file in the response, for files up to an hour.
Lowest price per hour, plus leveling or filler-word cuts
Auphonic or Cleanvoice
Check the test results for your kind of recording.
Live calls and voice agents
Krisp
Its real-time SDK or streaming API, rather than a file API.
Transcript editing with an API
Descript
Studio Sound runs as an agent edit inside a project.
FAQ
Does Adobe Podcast have an API?
No public Enhance Speech API is listed. Adobe's Firefly Services Audio/Video API covers speech generation, transcription, dubbing and reframing, but not Enhance Speech, so Enhance runs only in the Adobe Podcast web app.
Does Auphonic have an API?
Yes, on every plan, including the free tier. POST /api/simple/productions.json to create and start a production (denoisemethod=speech_isolation for Speech Isolation), then poll its status or wait for the webhook. It uses the same credits as the web app and supports webhooks.
Which speech enhancement API is cheapest?
By published price per hour, Auphonic (from $1.36/h on its largest plan) and Cleanvoice (from $0.90/h on its largest plan) cost less than Diffio 4.6 Flash ($5/h). ElevenLabs charges $7.20/h. Krisp does not publish a price.
Which API returns the cleaned audio in one call?
ElevenLabs: POST /v1/audio-isolation with the file as multipart form data; cleaned audio comes back in the response (a /stream variant streams it). Diffio, Auphonic, Cleanvoice and Descript run as jobs that you poll or get a webhook or callback for, which suits longer files.
Can I use Krisp on recorded files?
Not through a file API. Krisp's Voice Isolation API takes a live WebSocket stream at real-time pace, and its VIVA SDK runs inside your app, so it fits calls and voice agents rather than batches of recordings.
How do I apply Descript Studio Sound through the API?
With an Underlord agent edit: import the media, run an agent job with a prompt such as "add studio sound to every clip", then publish the project as audio to get a download link. There is no dedicated Studio Sound endpoint, and agent edits use AI credits.
How long do these APIs keep my files?
It varies. Cleanvoice: uploaded and edited files kept for 7 days, then removed; a DELETE endpoint removes them sooner; processed in the EU. Auphonic: API productions deleted after 7 days; a DELETE endpoint removes them sooner. ElevenLabs: retained under the privacy policy by default; Voice Isolator is not listed under Zero Retention Mode. Diffio keeps projects in your account until you delete them, and deleted project content is not kept in backups.
Sources checked October 21, 2026
- ElevenLabs: Audio isolation API reference, Voice Isolator documentation, ElevenLabs API pricing, Zero Retention Mode
- Krisp: Krisp SDK or API, Voice Isolation API overview, Krisp developer pricing, Krisp SDK security
- Auphonic: Auphonic API documentation, Auphonic Simple API, Auphonic webhooks, Auphonic privacy policy, Auphonic pricing
- Cleanvoice: Cleanvoice API v2 documentation, Create an edit, Cleanvoice pricing
- Descript: Descript API help, Descript developer docs, Media minutes and AI credits guide
- Adobe Podcast: Adobe Podcast Enhance Speech, Adobe Firefly Services Audio/Video API
- Diffio: API overview, API pricing, quick start, webhooks, privacy policy
Diffio is not affiliated with or endorsed by Adobe, Descript, Auphonic, ElevenLabs, Cleanvoice or Krisp. Product names are trademarks of their owners.
Try the Diffio API on your own files
Every API account starts with a one-time usage credit and needs no payment method to begin. See API pricing.
Get a Diffio API key →