🚀 Introducing MARS8 Series — Four Powerful Variants | Available on All Major Clouds | Learn about the model here
🚀 Introducing MARS8 Series — Four Powerful Variants | Available on All Major Clouds | Learn about the model here
Creates a task to separate an audio file into distinct background and foreground components
curl --request POST \
--url https://client.camb.ai/apis/audio-separation \
--header 'Content-Type: multipart/form-data' \
--header 'x-api-key: <api-key>' \
--form 'project_name=<string>' \
--form 'project_description=<string>' \
--form folder_id=2 \
--form media_file='@example-file'{
"task_id": "<string>"
}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.Documentation Index
Fetch the complete documentation index at: https://docs.camb.ai/llms.txt
Use this file to discover all available pages before exploring further.
Task Creation
task_id) that you’ll use to track and retrieve your separated audio components.Audio Analysis
/audio-separation/{task_id} endpoint with the task_id provided in your initial response.
import requests
# Your API authentication
headers = {
"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 usage
audio_path = "path/to/your/audio/file.mp3"
task_id = create_audio_separation(audio_path)
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 task
status_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.
3 - 255Provide 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.
3 - 5000Specify 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.
x >= 1Media file to processed. AAC, FLAC, MP3 and WAV formats are supported.
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.
curl --request POST \
--url https://client.camb.ai/apis/audio-separation \
--header 'Content-Type: multipart/form-data' \
--header 'x-api-key: <api-key>' \
--form 'project_name=<string>' \
--form 'project_description=<string>' \
--form folder_id=2 \
--form media_file='@example-file'{
"task_id": "<string>"
}