audiopod 1.1.1__py3-none-any.whl → 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,404 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: audiopod
3
- Version: 1.1.1
4
- Summary: Professional Audio Processing API Client for Python
5
- Home-page: https://github.com/audiopod-ai/audiopod-python
6
- Author: AudioPod AI
7
- Author-email: AudioPod AI <support@audiopod.ai>
8
- Project-URL: Homepage, https://audiopod.ai
9
- Project-URL: Repository, https://github.com/audiopod-ai/audiopod
10
- Project-URL: Bug Tracker, https://github.com/audiopod-ai/audiopod/issues
11
- Project-URL: API Reference, https://docs.audiopod.ai/
12
- Keywords: audio,processing,ai,voice,cloning,transcription,translation,music,generation,denoising,api,sdk
13
- Classifier: Development Status :: 4 - Beta
14
- Classifier: Intended Audience :: Developers
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.8
18
- Classifier: Programming Language :: Python :: 3.9
19
- Classifier: Programming Language :: Python :: 3.10
20
- Classifier: Programming Language :: Python :: 3.11
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Topic :: Multimedia :: Sound/Audio
23
- Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
24
- Classifier: Topic :: Multimedia :: Sound/Audio :: Conversion
25
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
- Requires-Python: >=3.8
27
- Description-Content-Type: text/markdown
28
- License-File: LICENSE
29
- Requires-Dist: requests>=2.28.0
30
- Requires-Dist: aiohttp>=3.8.0
31
- Requires-Dist: pydantic>=1.10.0
32
- Requires-Dist: python-dotenv>=0.19.0
33
- Requires-Dist: tqdm>=4.64.0
34
- Requires-Dist: websockets>=10.4
35
- Requires-Dist: click>=8.0.0
36
- Provides-Extra: dev
37
- Requires-Dist: pytest>=7.0.0; extra == "dev"
38
- Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
39
- Requires-Dist: black>=22.0.0; extra == "dev"
40
- Requires-Dist: flake8>=5.0.0; extra == "dev"
41
- Requires-Dist: mypy>=0.991; extra == "dev"
42
- Requires-Dist: twine>=4.0.0; extra == "dev"
43
- Requires-Dist: build>=0.10.0; extra == "dev"
44
- Provides-Extra: docs
45
- Requires-Dist: sphinx>=5.0.0; extra == "docs"
46
- Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "docs"
47
- Requires-Dist: sphinx-autodoc-typehints>=1.19.0; extra == "docs"
48
- Dynamic: author
49
- Dynamic: home-page
50
- Dynamic: license-file
51
- Dynamic: requires-python
52
-
53
- # AudioPod Python SDK
54
-
55
- The official Python SDK for the AudioPod API - Professional Audio Processing powered by AI.
56
-
57
- [![PyPI version](https://badge.fury.io/py/audiopod.svg)](https://badge.fury.io/py/audiopod)
58
- [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
59
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
60
-
61
- ## Features
62
-
63
- - 🎵 **Music Generation** - Create music from text prompts, lyrics, or audio samples
64
- - 🎤 **Voice Cloning** - Clone voices from audio samples and generate speech
65
- - 📝 **Transcription** - Convert speech to text with speaker diarization
66
- - 🌍 **Translation** - Translate audio and video content between languages
67
- - 🎬 **Karaoke Generation** - Create karaoke videos with synchronized lyrics
68
- - 🔊 **Audio Enhancement** - Denoise and improve audio quality
69
- - 👥 **Speaker Analysis** - Identify and separate speakers in audio
70
- - 💰 **Credit Management** - Track usage and manage API credits
71
-
72
- ## Installation
73
-
74
- ```bash
75
- pip install audiopod
76
- ```
77
-
78
- ## Quick Start
79
-
80
- ### Authentication
81
-
82
- Get your API key from the [AudioPod Dashboard](https://app.audiopod.ai/dashboard) and set it as an environment variable:
83
-
84
- ```bash
85
- export AUDIOPOD_API_KEY="ap_your_api_key_here"
86
- ```
87
-
88
- Or pass it directly to the client:
89
-
90
- ```python
91
- import audiopod
92
-
93
- client = audiopod.Client(api_key="ap_your_api_key_here")
94
- ```
95
-
96
- ### Basic Usage
97
-
98
- #### Voice Cloning
99
-
100
- ```python
101
- import audiopod
102
-
103
- # Initialize client
104
- client = audiopod.Client()
105
-
106
- # Clone a voice and generate speech
107
- job = client.voice.clone_voice(
108
- voice_file="path/to/voice_sample.wav",
109
- text="Hello! This is a cloned voice speaking.",
110
- language="en",
111
- wait_for_completion=True
112
- )
113
-
114
- print(f"Generated audio URL: {job['output_url']}")
115
- ```
116
-
117
- #### Music Generation
118
-
119
- ```python
120
- # Generate music from text
121
- music_job = client.music.generate_music(
122
- prompt="upbeat electronic dance music with heavy bass",
123
- duration=120.0, # 2 minutes
124
- wait_for_completion=True
125
- )
126
-
127
- print(f"Generated music URL: {music_job.output_url}")
128
- ```
129
-
130
- #### Audio Transcription
131
-
132
- ```python
133
- # Transcribe audio with speaker diarization
134
- transcript = client.transcription.transcribe_audio(
135
- audio_file="path/to/audio.mp3",
136
- language="en",
137
- enable_speaker_diarization=True,
138
- wait_for_completion=True
139
- )
140
-
141
- print(f"Transcript: {transcript.transcript}")
142
- print(f"Detected {len(transcript.segments)} speakers")
143
- ```
144
-
145
- #### Speech-to-Speech Translation
146
-
147
- ```python
148
- # Translate speech while preserving voice characteristics
149
- translation = client.translation.translate_speech(
150
- audio_file="path/to/english_audio.wav",
151
- target_language="es", # Spanish
152
- source_language="en", # English (optional - auto-detect)
153
- wait_for_completion=True
154
- )
155
-
156
- print(f"Translated audio URL: {translation.translated_audio_url}")
157
-
158
- # Or translate from URL
159
- url_translation = client.translation.translate_speech(
160
- url="https://example.com/audio.mp3",
161
- target_language="fr", # French
162
- wait_for_completion=True
163
- )
164
- ```
165
-
166
- ### Async Support
167
-
168
- The SDK supports async/await for better performance:
169
-
170
- ```python
171
- import asyncio
172
- import audiopod
173
-
174
- async def main():
175
- async with audiopod.AsyncClient() as client:
176
- # All the same methods are available with async support
177
- job = await client.voice.clone_voice(
178
- voice_file="voice.wav",
179
- text="Async voice cloning!",
180
- wait_for_completion=True
181
- )
182
- print(f"Async result: {job['output_url']}")
183
-
184
- asyncio.run(main())
185
- ```
186
-
187
- ### Advanced Examples
188
-
189
- #### Create Voice Profile for Reuse
190
-
191
- ```python
192
- # Create a reusable voice profile
193
- voice_profile = client.voice.create_voice_profile(
194
- name="My Custom Voice",
195
- voice_file="voice_sample.wav",
196
- description="A professional voice for narration",
197
- wait_for_completion=True
198
- )
199
-
200
- # Use the voice profile for speech generation
201
- speech = client.voice.generate_speech(
202
- voice_id=voice_profile.id,
203
- text="This uses my custom voice profile!",
204
- wait_for_completion=True
205
- )
206
- ```
207
-
208
- #### Batch Processing
209
-
210
- ```python
211
- # Process multiple files
212
- audio_files = ["file1.mp3", "file2.wav", "file3.m4a"]
213
- jobs = []
214
-
215
- for audio_file in audio_files:
216
- job = client.transcription.transcribe_audio(
217
- audio_file=audio_file,
218
- language="en"
219
- )
220
- jobs.append(job)
221
-
222
- # Wait for all jobs to complete
223
- for job in jobs:
224
- completed_job = client.transcription.get_transcription_job(job.id)
225
- while completed_job.job.status != "completed":
226
- time.sleep(5)
227
- completed_job = client.transcription.get_transcription_job(job.id)
228
-
229
- print(f"Transcript for {job.id}: {completed_job.transcript}")
230
- ```
231
-
232
- #### Music Generation with Custom Parameters
233
-
234
- ```python
235
- # Generate rap music with specific parameters
236
- rap_job = client.music.generate_rap(
237
- lyrics="""
238
- Started from the bottom now we're here
239
- Building dreams with every single year
240
- AI music generation so clear
241
- AudioPod making magic appear
242
- """,
243
- style="modern",
244
- tempo=120,
245
- wait_for_completion=True
246
- )
247
-
248
- # Share the generated music
249
- share_result = client.music.share_music_track(
250
- job_id=rap_job.job.id,
251
- platform="social",
252
- message="Check out this AI-generated rap!"
253
- )
254
- print(f"Shareable URL: {share_result['share_url']}")
255
- ```
256
-
257
- #### Karaoke Video Generation
258
-
259
- ```python
260
- # Generate karaoke video from YouTube URL
261
- karaoke_job = client.karaoke.generate_karaoke(
262
- youtube_url="https://www.youtube.com/watch?v=example",
263
- video_style="modern",
264
- wait_for_completion=True
265
- )
266
-
267
- print(f"Karaoke video URL: {karaoke_job.result['karaoke_video_path']}")
268
- ```
269
-
270
- ## Error Handling
271
-
272
- ```python
273
- import audiopod
274
- from audiopod.exceptions import (
275
- AudioPodError,
276
- AuthenticationError,
277
- RateLimitError,
278
- ValidationError,
279
- ProcessingError
280
- )
281
-
282
- try:
283
- client = audiopod.Client(api_key="invalid_key")
284
- job = client.voice.clone_voice("voice.wav", "Test text")
285
-
286
- except AuthenticationError:
287
- print("Invalid API key")
288
- except RateLimitError as e:
289
- print(f"Rate limit exceeded. Retry after: {e.retry_after} seconds")
290
- except ValidationError as e:
291
- print(f"Invalid input: {e.message}")
292
- except ProcessingError as e:
293
- print(f"Processing failed: {e.message}")
294
- except AudioPodError as e:
295
- print(f"General API error: {e.message}")
296
- ```
297
-
298
- ## Credit Management
299
-
300
- ```python
301
- # Check credit balance
302
- credits = client.credits.get_credit_balance()
303
- print(f"Available credits: {credits.total_available_credits}")
304
- print(f"Next reset: {credits.next_reset_date}")
305
-
306
- # Get usage history
307
- usage = client.credits.get_usage_history()
308
- for record in usage:
309
- print(f"Service: {record['service_type']}, Credits: {record['credits_used']}")
310
-
311
- # Get credit multipliers
312
- multipliers = client.credits.get_credit_multipliers()
313
- print(f"Voice cloning: {multipliers['voice_cloning']} credits/second")
314
- ```
315
-
316
- ## Configuration
317
-
318
- ### Environment Variables
319
-
320
- - `AUDIOPOD_API_KEY`: Your AudioPod API key
321
- - `AUDIOPOD_BASE_URL`: Custom API base URL (optional)
322
- - `AUDIOPOD_TIMEOUT`: Request timeout in seconds (default: 30)
323
-
324
- ### Client Configuration
325
-
326
- ```python
327
- client = audiopod.Client(
328
- api_key="your_api_key",
329
- base_url="https://api.audiopod.ai", # Custom base URL
330
- timeout=60, # 60 second timeout
331
- max_retries=5, # Retry failed requests
332
- verify_ssl=True, # SSL verification
333
- debug=True # Enable debug logging
334
- )
335
- ```
336
-
337
- ## API Reference
338
-
339
- ### Client Classes
340
-
341
- - `audiopod.Client`: Synchronous client
342
- - `audiopod.AsyncClient`: Asynchronous client
343
-
344
- ### Services
345
-
346
- - `client.voice`: Voice cloning and TTS operations
347
- - `client.music`: Music generation and editing
348
- - `client.transcription`: Speech-to-text transcription
349
- - `client.translation`: Audio/video translation
350
- - `client.speaker`: Speaker analysis and diarization
351
- - `client.denoiser`: Audio denoising and enhancement
352
- - `client.karaoke`: Karaoke video generation
353
- - `client.credits`: Credit management and usage tracking
354
-
355
- ### Models
356
-
357
- - `Job`: Base job information and status
358
- - `VoiceProfile`: Voice profile details
359
- - `TranscriptionResult`: Transcription results and metadata
360
- - `MusicGenerationResult`: Music generation results
361
- - `TranslationResult`: Translation job results
362
- - `CreditInfo`: User credit information
363
-
364
- ## CLI Usage
365
-
366
- The SDK includes a command-line interface:
367
-
368
- ```bash
369
- # Check API status
370
- audiopod health
371
-
372
- # Get credit balance
373
- audiopod credits balance
374
-
375
- # Clone a voice
376
- audiopod voice clone voice.wav "Hello world!" --language en
377
-
378
- # Generate music
379
- audiopod music generate "upbeat electronic music" --duration 60
380
-
381
- # Transcribe audio
382
- audiopod transcription transcribe audio.mp3 --language en
383
- ```
384
-
385
- ## Requirements
386
-
387
- - Python 3.8+
388
- - Active AudioPod account with API access
389
- - Valid API key
390
-
391
- ## Support
392
-
393
- - 📖 [API Reference](https://docs.audiopod.ai)
394
- - 💬 [Discord Community](https://discord.gg/audiopod)
395
- - 📧 [Email Support](mailto:support@audiopod.ai)
396
- - 🐛 [Bug Reports](https://github.com/AudiopodAI/audiopod)
397
-
398
- ## License
399
-
400
- This SDK is released under the MIT License. See [LICENSE](LICENSE) for details.
401
-
402
- ---
403
-
404
- Made with ❤️ by the AudioPod team
@@ -1,24 +0,0 @@
1
- audiopod/__init__.py,sha256=UsB5ET6nUy1Upx8wCiB17mMErdF3RvEHfAr51-pPPGQ,1790
2
- audiopod/cli.py,sha256=ZYzAQ3UpoYuOEWivMwMneJUf2z8DGGYTx1Nb6yRfdVY,9339
3
- audiopod/client.py,sha256=67oPSInSNssJpTR00ZuYSdk9lbx5KiRnDQw8UYKNVsA,11742
4
- audiopod/config.py,sha256=fuGtbuES4tXdHwqQqoZa5izCH6nVfFRP06D8eK1Cg10,1683
5
- audiopod/exceptions.py,sha256=c3Ym2tWyRE1kemVkXDaXFcfP3h6AokhKcUcCBImwGes,2386
6
- audiopod/models.py,sha256=R70iMqKDZfLtTB9FQ7KrFLBi-bFA5-FrS-5eMOtfK1o,8517
7
- audiopod/py.typed,sha256=ixa8YukDZ3kLo0WsFJRGohLMyHzbMur1ALmmASML2cs,64
8
- audiopod/services/__init__.py,sha256=9Ycl9VVscwwY42joBCSL67v8DrITW2T2QyuaokbpehM,653
9
- audiopod/services/base.py,sha256=mNbziYy2KsWWZrdHFlTl9pKLvoQUW-ZkkJuVWfCVP74,6731
10
- audiopod/services/credits.py,sha256=CjE2W8kmYjM4B02BwfPvvB3kl0YdVimM2kR7lhg43h8,1796
11
- audiopod/services/denoiser.py,sha256=Oi_1rCKs_L5lCG_2QuKwHzLe8_mbEIzlzM2X8TJ7Rnc,1750
12
- audiopod/services/karaoke.py,sha256=M0Befh4Y2DNM_uWFTmCIrzKfjqkvygrzCt0f_Dubj2o,2012
13
- audiopod/services/music.py,sha256=hDPjTSj-gAeEWBVB7PRPQrptMHJyQTz8e9p-p7yaRPI,20032
14
- audiopod/services/speaker.py,sha256=OPSOwArfrGXVzRgciS13n1QsCJSK1PB-Mz6VgwxuHAA,1866
15
- audiopod/services/stem_extraction.py,sha256=3ibMFKFR25xKHpVs3WGMNriZ88sB5PriFNa_s2Bvon4,6026
16
- audiopod/services/transcription.py,sha256=HyH6WpGWZsggYxIvt2dhB6_5UHaigk3XwXsVgarWzcE,7565
17
- audiopod/services/translation.py,sha256=oUU82c61CeAt13lzlWx8S-9xEgYlskwX8bLMbQw2Ni8,7396
18
- audiopod/services/voice.py,sha256=_IHv3zU3k184kfijxr1QRBenrIpmhhPOBS96DddZ8yw,13456
19
- audiopod-1.1.1.dist-info/licenses/LICENSE,sha256=hqEjnOaGNbnLSBxbtbC7WQVREU2vQI8FmwecCiZlMfA,1068
20
- audiopod-1.1.1.dist-info/METADATA,sha256=UG_csntfzscrZTjy-2v-lCTlS7-VSEM6WEwUw26hSYc,11217
21
- audiopod-1.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- audiopod-1.1.1.dist-info/entry_points.txt,sha256=uLcNDzXuOXnJAz9j91TDGayVjjZ7-ZiHBGDydqNUErU,47
23
- audiopod-1.1.1.dist-info/top_level.txt,sha256=M6yyOFFNpLdH4i1AMRqJZLRIgfpg1NvrQVmnPd8A6N8,9
24
- audiopod-1.1.1.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- audiopod = audiopod.cli:main