0d3cb498a3
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled
provider-elevenlabs/isolation (ElevenLabs Audio Isolation)
Remove background noise from audio files to extract clean speech using ElevenLabs audio isolation.
Quick Start
npx promptfoo@latest init --example provider-elevenlabs/isolation
cd provider-elevenlabs/isolation
export ELEVENLABS_API_KEY=your_api_key_here
npx promptfoo@latest eval
What this tests
- Noise removal: Extract clean speech from noisy audio
- Audio quality: Compare original vs isolated audio size/quality
- Output formats: MP3 at different bitrates (128kbps, 192kbps)
- Cost tracking: Monitor per-file processing costs
How it works
Audio isolation takes a noisy audio file and returns a cleaned version with:
- Background noise removed
- Speech preserved and enhanced
- Consistent audio quality
- Reduced file size (noise-free)
Use Cases
- Podcast cleanup: Remove background noise from recordings
- Interview enhancement: Clean up phone/video call audio
- STT preprocessing: Improve transcription accuracy
- Voiceover repair: Fix audio recorded in noisy environments
- Call center QA: Enhance customer service call recordings
Supported Formats
Input formats: MP3, WAV, FLAC, OGG, M4A, OPUS, WebM
Output formats:
mp3_44100_128- Standard quality (128kbps)mp3_44100_192- High quality (192kbps)pcm_44100- Uncompressed PCM
Configuration
Basic isolation (MP3)
providers:
- id: elevenlabs:isolation:basic
label: Audio Isolation (MP3)
config:
outputFormat: mp3_44100_128
tests:
- vars:
audioFile: path/to/noisy-audio.mp3
High quality output
providers:
- id: elevenlabs:isolation:hq
label: Audio Isolation (HQ)
config:
outputFormat: mp3_44100_192
Testing Assertions
tests:
- description: Verify isolation succeeds
vars:
audioFile: examples/provider-elevenlabs/stt/audio/sample1.mp3
assert:
- type: javascript
value: output.includes('isolated successfully')
- type: not-contains
value: error
- type: cost
threshold: 1.00 # Max $1.00 per file
What to look for in results
The response includes:
- Isolated audio: Base64-encoded cleaned audio file
- Original size: Size of input audio file
- Isolated size: Size of cleaned audio (typically smaller)
- Format: Output audio format (mp3, pcm, etc.)
- Latency: Processing time in milliseconds
- Cost: Estimated processing cost
Best Practices
- Source quality: Use highest quality source audio available
- Noise type: Works best with constant background noise (AC, fan, hum)
- Multiple speakers: Preserves all speech, removes only noise
- Pre-processing: For music removal, consider manual editing first
Audio Quality Comparison
Isolation typically provides:
- Signal-to-Noise Ratio (SNR): 15-25 dB improvement
- File size reduction: 10-30% smaller (noise-free)
- Speech clarity: Enhanced intelligibility
- Frequency response: Preserved natural voice tones
Cost Information
Audio isolation pricing is based on audio duration:
- ~$0.10 per minute of audio
- Free tier: Varies by plan
The provider automatically tracks costs in evaluation results.
Common Issues
"Audio isolated successfully" but quality unchanged
Possible causes:
- Source audio already very clean
- Noise level too low to detect
- Music/speech mixed with background (try manual editing)
Solution: Check original audio quality - isolation works best with noisy recordings.
Large file processing timeout
Solution: Increase timeout in config:
config:
timeout: 180000 # 3 minutes
Unsupported audio format
Solution: Convert to supported format using ffmpeg:
ffmpeg -i input.video -vn -acodec mp3 output.mp3
Pipeline Integration
Isolation → Transcription
# Step 1: Isolate noisy audio
providers:
- id: elevenlabs:isolation
# Step 2: Transcribe cleaned audio
providers:
- id: elevenlabs:stt
config:
audioFile: '{{previousOutput.audio}}'
Isolation → Alignment
# Step 1: Clean audio
providers:
- id: elevenlabs:isolation
# Step 2: Generate subtitles from clean audio
providers:
- id: elevenlabs:alignment
config:
audioFile: '{{previousOutput.audio}}'
transcript: 'Your transcript here'
Related Examples
- ElevenLabs STT - Transcribe audio to text
- ElevenLabs Alignment - Generate subtitles