Professional Audio Processing API Client for Python
Project description
AudioPod Python SDK
The official Python SDK for the AudioPod API - Professional Audio Processing powered by AI.
Features
- 🎵 Music Generation - Create music from text prompts, lyrics, or audio samples
- 🎤 Voice Cloning - Clone voices from audio samples and generate speech
- 📝 Transcription - Convert speech to text with speaker diarization
- 🌍 Translation - Translate audio and video content between languages
- 🎬 Karaoke Generation - Create karaoke videos with synchronized lyrics
- 🔊 Audio Enhancement - Denoise and improve audio quality
- 👥 Speaker Analysis - Identify and separate speakers in audio
- 💰 Credit Management - Track usage and manage API credits
Installation
pip install audiopod
Quick Start
Authentication
Get your API key from the AudioPod Dashboard and set it as an environment variable:
export AUDIOPOD_API_KEY="ap_your_api_key_here"
Or pass it directly to the client:
import audiopod
client = audiopod.Client(api_key="ap_your_api_key_here")
Basic Usage
Voice Cloning
import audiopod
# Initialize client
client = audiopod.Client()
# Clone a voice and generate speech
job = client.voice.clone_voice(
voice_file="path/to/voice_sample.wav",
text="Hello! This is a cloned voice speaking.",
language="en",
wait_for_completion=True
)
print(f"Generated audio URL: {job['output_url']}")
Music Generation
# Generate music from text
music_job = client.music.generate_music(
prompt="upbeat electronic dance music with heavy bass",
duration=120.0, # 2 minutes
wait_for_completion=True
)
print(f"Generated music URL: {music_job.output_url}")
Audio Transcription
# Transcribe audio with speaker diarization
transcript = client.transcription.transcribe_audio(
audio_file="path/to/audio.mp3",
language="en",
enable_speaker_diarization=True,
wait_for_completion=True
)
print(f"Transcript: {transcript.transcript}")
print(f"Detected {len(transcript.segments)} speakers")
Audio Translation
# Translate audio to another language
translation = client.translation.translate_audio(
audio_file="path/to/english_audio.wav",
target_language="es", # Spanish
wait_for_completion=True
)
print(f"Translated audio URL: {translation.audio_output_url}")
Async Support
The SDK supports async/await for better performance:
import asyncio
import audiopod
async def main():
async with audiopod.AsyncClient() as client:
# All the same methods are available with async support
job = await client.voice.clone_voice(
voice_file="voice.wav",
text="Async voice cloning!",
wait_for_completion=True
)
print(f"Async result: {job['output_url']}")
asyncio.run(main())
Advanced Examples
Create Voice Profile for Reuse
# Create a reusable voice profile
voice_profile = client.voice.create_voice_profile(
name="My Custom Voice",
voice_file="voice_sample.wav",
description="A professional voice for narration",
wait_for_completion=True
)
# Use the voice profile for speech generation
speech = client.voice.generate_speech(
voice_id=voice_profile.id,
text="This uses my custom voice profile!",
wait_for_completion=True
)
Batch Processing
# Process multiple files
audio_files = ["file1.mp3", "file2.wav", "file3.m4a"]
jobs = []
for audio_file in audio_files:
job = client.transcription.transcribe_audio(
audio_file=audio_file,
language="en"
)
jobs.append(job)
# Wait for all jobs to complete
for job in jobs:
completed_job = client.transcription.get_transcription_job(job.id)
while completed_job.job.status != "completed":
time.sleep(5)
completed_job = client.transcription.get_transcription_job(job.id)
print(f"Transcript for {job.id}: {completed_job.transcript}")
Music Generation with Custom Parameters
# Generate rap music with specific parameters
rap_job = client.music.generate_rap(
lyrics="""
Started from the bottom now we're here
Building dreams with every single year
AI music generation so clear
AudioPod making magic appear
""",
style="modern",
tempo=120,
wait_for_completion=True
)
# Share the generated music
share_result = client.music.share_music_track(
job_id=rap_job.job.id,
platform="social",
message="Check out this AI-generated rap!"
)
print(f"Shareable URL: {share_result['share_url']}")
Karaoke Video Generation
# Generate karaoke video from YouTube URL
karaoke_job = client.karaoke.generate_karaoke(
youtube_url="https://www.youtube.com/watch?v=example",
video_style="modern",
wait_for_completion=True
)
print(f"Karaoke video URL: {karaoke_job.result['karaoke_video_path']}")
Error Handling
import audiopod
from audiopod.exceptions import (
AudioPodError,
AuthenticationError,
RateLimitError,
ValidationError,
ProcessingError
)
try:
client = audiopod.Client(api_key="invalid_key")
job = client.voice.clone_voice("voice.wav", "Test text")
except AuthenticationError:
print("Invalid API key")
except RateLimitError as e:
print(f"Rate limit exceeded. Retry after: {e.retry_after} seconds")
except ValidationError as e:
print(f"Invalid input: {e.message}")
except ProcessingError as e:
print(f"Processing failed: {e.message}")
except AudioPodError as e:
print(f"General API error: {e.message}")
Credit Management
# Check credit balance
credits = client.credits.get_credit_balance()
print(f"Available credits: {credits.total_available_credits}")
print(f"Next reset: {credits.next_reset_date}")
# Get usage history
usage = client.credits.get_usage_history()
for record in usage:
print(f"Service: {record['service_type']}, Credits: {record['credits_used']}")
# Get credit multipliers
multipliers = client.credits.get_credit_multipliers()
print(f"Voice cloning: {multipliers['voice_cloning']} credits/second")
Configuration
Environment Variables
AUDIOPOD_API_KEY: Your AudioPod API keyAUDIOPOD_BASE_URL: Custom API base URL (optional)AUDIOPOD_TIMEOUT: Request timeout in seconds (default: 30)
Client Configuration
client = audiopod.Client(
api_key="your_api_key",
base_url="https://api.audiopod.ai", # Custom base URL
timeout=60, # 60 second timeout
max_retries=5, # Retry failed requests
verify_ssl=True, # SSL verification
debug=True # Enable debug logging
)
API Reference
Client Classes
audiopod.Client: Synchronous clientaudiopod.AsyncClient: Asynchronous client
Services
client.voice: Voice cloning and TTS operationsclient.music: Music generation and editingclient.transcription: Speech-to-text transcriptionclient.translation: Audio/video translationclient.speaker: Speaker analysis and diarizationclient.denoiser: Audio denoising and enhancementclient.karaoke: Karaoke video generationclient.credits: Credit management and usage tracking
Models
Job: Base job information and statusVoiceProfile: Voice profile detailsTranscriptionResult: Transcription results and metadataMusicGenerationResult: Music generation resultsTranslationResult: Translation job resultsCreditInfo: User credit information
CLI Usage
The SDK includes a command-line interface:
# Check API status
audiopod health
# Get credit balance
audiopod credits balance
# Clone a voice
audiopod voice clone voice.wav "Hello world!" --language en
# Generate music
audiopod music generate "upbeat electronic music" --duration 60
# Transcribe audio
audiopod transcription transcribe audio.mp3 --language en
Requirements
- Python 3.8+
- Active AudioPod account with API access
- Valid API key
Support
License
This SDK is released under the MIT License. See LICENSE for details.
Made with ❤️ by the AudioPod team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file audiopod-1.0.0.tar.gz.
File metadata
- Download URL: audiopod-1.0.0.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac032576f81f58ce4f2d77cf046142e744b8300354ff5c8f407d759d932934c8
|
|
| MD5 |
08282c967199002feaaaa9a0f8280089
|
|
| BLAKE2b-256 |
f6530a4590ebf4ef99e6086ce5d9e38d2016e5b49ec4a1a37371205f0578d2cc
|
File details
Details for the file audiopod-1.0.0-py3-none-any.whl.
File metadata
- Download URL: audiopod-1.0.0-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6457ed655e0b9a89ef033a5157872eb298c3c6ecd5af804edf8f1ce2f73e085b
|
|
| MD5 |
ebb434ec5968d8da4b5c91c144d32851
|
|
| BLAKE2b-256 |
31e8cfbc1825e237d1159ad539991eabea9d89c73a5f567c54924612e0d4111b
|