Transform your mixed content into clean, isolated components with our powerful audio separation system. This innovative endpoint enables you to extract distinct foreground elements (such as vocals or lead instruments) from background elements (like accompaniment or ambient sounds). Whether you’re producing music, cleaning up recordings, creating remixes, or developing audio-focused applications, this capability allows you to deconstruct complex media files into their fundamental components for enhanced control and creative flexibility.
For optimal separation quality, we recommend using media files with minimal compression and clear distinction between foreground and background elements. Higher quality input files generally produce better separation results.
When you submit an audio separation request, our system begins a sophisticated workflow:
1
Task Creation
The system registers your request and establishes a dedicated processing task, returning a unique task identifier (task_id) that you’ll use to track and retrieve your separated audio components.
2
Audio Analysis
Our advanced audio processing algorithms analyze the spectral and temporal characteristics of your audio file, identifying patterns that distinguish foreground from background elements.
3
Component Separation
Using specialized neural networks, the system carefully separates the audio into distinct foreground and background stems while preserving the acoustic quality of each component.
Throughout this process, you can monitor the status of your separation task by polling the /audio-separation/{task_id} endpoint with the task_id provided in your initial response.
Let’s examine how to initiate an audio separation task using Python:
Copy
import requests# Your API authenticationheaders = { "x-api-key": "your-api-key", # Replace with your actual API key}def create_audio_separation(media_file_path): """ Submits a new audio separation task and returns the task ID for tracking. Parameters: - media_file_path: Path to the audio file you want to separate """ try: # Prepare the multipart form data with the audio file files = { "media_file": (media_file_path.split('/')[-1], open(media_file_path, "rb")) } # Submit the separation request response = requests.post( "https://client.camb.ai/apis/audio-separation", headers=headers, files=files ) # Verify the request was successful response.raise_for_status() # Extract the task ID from the response result = response.json() task_id = result.get("task_id") print(f"Audio separation task submitted successfully! Task ID: {task_id}") return task_id except requests.exceptions.RequestException as e: print(f"Error submitting audio separation task: {e}") if hasattr(e, 'response') and e.response is not None: print(f"Response content: {e.response.text}") return None# Example usageaudio_path = "path/to/your/audio/file.mp3"task_id = create_audio_separation(audio_path)
After submission, your audio separation task enters our processing pipeline. You can monitor the progress by polling the status endpoint:
Copy
def check_separation_status(task_id): """ Checks the status of an audio separation task. Returns the current status and any available result information. Parameters: - task_id: The ID of the separation task to check """ if not task_id: print("No task ID provided.") return None try: response = requests.get( f"https://client.camb.ai/apis/audio-separation/{task_id}", headers=headers ) # Verify the request was successful response.raise_for_status() # Parse the status information status_data = response.json() print(f"Current status: {status_data['status']}") # If the separation is complete, display the results if status_data['status'] == "SUCCESS": print("Audio separation completed successfully!") print(f"Foreground audio URL: {status_data.get('foreground_url')}") print(f"Background audio URL: {status_data.get('background_url')}") return status_data except requests.exceptions.RequestException as e: print(f"Error checking separation status: {e}") return None# Check the status of your separation taskstatus_info = check_separation_status(task_id)
The x-api-key is a custom header required for authenticating requests to our API. Include this header in your request with the appropriate API key value to securely access our endpoints. You can find your API key(s) in the 'API' section of our studio website.
Enter a distinctive name for your project that reflects its purpose or content. This name will be displayed in your CAMB.AI workspace dashboard and used to organize related assets, transcriptions, etc.. . Choose something memorable that helps you quickly identify this specific project among your other voice, audio and localization tasks.
Provide details about your project's goals and specifications. Include information such as the target languages for translation or dubbing, desired voice characteristics, emotional tones to capture, or specific audio processing requirements, outlining the workflow here can serve as valuable documentation for organizational purposes.
Specify the organizational folder within your CAMB.AI workspace where this task should be created and stored. The folder must already exist in your workspace and be accessible through your current API key authentication. This helps maintain project organization by grouping related tasks together, making it easier to manage and locate your projects.
Required range: x >= 1
Response
Successful Response
A JSON that contains unique identifier for the task. This is used to query the status of the audio separation task that is running. It is returned when a create request is made to separate audio into background and foreground.