Audio Isolation¶
Extract vocals and speech from audio, removing background noise and music.
Basic Usage¶
file, _ := os.Open("mixed_audio.mp3")
defer file.Close()
isolated, err := client.AudioIsolation().IsolateFile(ctx, file, "mixed_audio.mp3")
if err != nil {
log.Fatal(err)
}
// Save isolated vocals
output, _ := os.Create("vocals_only.mp3")
io.Copy(output, isolated)
Streaming Isolation¶
For real-time processing:
isolated, err := client.AudioIsolation().IsolateStream(ctx, &elevenlabs.AudioIsolationRequest{
Audio: audioReader,
Filename: "audio.mp3",
})
Full Options¶
isolated, err := client.AudioIsolation().Isolate(ctx, &elevenlabs.AudioIsolationRequest{
Audio: audioFile,
Filename: "podcast_with_music.mp3",
})
Use Cases¶
Podcast Cleanup¶
Remove background music and enhance speech clarity:
// Original podcast has background music
podcastFile, _ := os.Open("podcast_episode.mp3")
// Extract just the voices
cleanAudio, err := client.AudioIsolation().IsolateFile(ctx,
podcastFile, "podcast_episode.mp3")
// Save clean version
output, _ := os.Create("podcast_clean.mp3")
io.Copy(output, cleanAudio)
Interview Processing¶
Extract speech from noisy interview recordings:
// Field interview with ambient noise
interviewFile, _ := os.Open("street_interview.mp3")
// Isolate speaker voices
voices, err := client.AudioIsolation().IsolateFile(ctx,
interviewFile, "street_interview.mp3")
// Use clean audio for transcription
result, _ := client.SpeechToText().Transcribe(ctx, &elevenlabs.TranscriptionRequest{
File: voices,
Filename: "clean_interview.mp3",
})
Music Vocal Extraction¶
Extract vocals from songs:
songFile, _ := os.Open("song.mp3")
vocals, err := client.AudioIsolation().IsolateFile(ctx, songFile, "song.mp3")
// Save isolated vocals
vocalFile, _ := os.Create("vocals.mp3")
io.Copy(vocalFile, vocals)
Video Audio Cleanup¶
Clean up audio tracks from video:
// Extract audio from video (using ffmpeg externally)
// ffmpeg -i video.mp4 -vn audio.mp3
audioFile, _ := os.Open("audio.mp3")
cleanAudio, err := client.AudioIsolation().IsolateFile(ctx, audioFile, "audio.mp3")
// Save and remix back into video
cleanFile, _ := os.Create("clean_audio.mp3")
io.Copy(cleanFile, cleanAudio)
Pre-processing for Voice Cloning¶
Get clean voice samples for cloning:
// Sample may have background noise
sampleFile, _ := os.Open("voice_sample.mp3")
// Clean it up
cleanSample, err := client.AudioIsolation().IsolateFile(ctx,
sampleFile, "voice_sample.mp3")
// Use clean sample for voice training
// (Professional Voice Cloning API)
Pipeline Example¶
Combine with other services:
// 1. Isolate vocals from noisy audio
file, _ := os.Open("noisy_recording.mp3")
clean, _ := client.AudioIsolation().IsolateFile(ctx, file, "noisy_recording.mp3")
// 2. Save to temp file for transcription
tmpFile, _ := os.CreateTemp("", "clean-*.mp3")
io.Copy(tmpFile, clean)
tmpFile.Seek(0, 0)
// 3. Transcribe the clean audio
transcript, _ := client.SpeechToText().Transcribe(ctx, &elevenlabs.TranscriptionRequest{
File: tmpFile,
Filename: "clean.mp3",
})
// 4. Get word-level timestamps
tmpFile.Seek(0, 0)
alignment, _ := client.ForcedAlignment().AlignFile(ctx, tmpFile, "clean.mp3", transcript.Text)
Supported Audio Formats¶
- MP3
- WAV
- M4A
- FLAC
- OGG
- WEBM
Best Practices¶
- Use for noisy recordings - Most effective when there's clear separation between voice and background
- Chain with transcription - Clean audio produces better transcription results
- Save original files - Keep originals as isolation is lossy
- Test on samples first - Results vary based on audio content