Files
ALwrity/backend/services/__init__.py
ajaysi f503a24b3b feat: Add Auto-Dubbing feature for Podcast Maker
This commit adds the Auto-Dubbing feature for Podcast Maker with support
for translating podcast audio to different languages with optional voice
cloning to preserve the original speaker's voice.

New Features:
- Translation Service (common module): DeepL integration for low-cost
  translation, WaveSpeed integration for high-quality translation
- Audio Dubbing Service: STT -> Translate -> TTS pipeline with
  voice cloning support
- 9 new API endpoints for dubbing and voice cloning
- Support for 34+ languages
- Cost estimation utilities
- Comprehensive documentation

Files Added:
- services/translation/ (5 files): Translation service module
- services/dubbing/: Audio dubbing service
- api/podcast/handlers/dubbing.py: API endpoints
- docs/AUTO_DUBBING.md: Feature documentation
- CHANGELOG.md: Change log

Files Modified:
- api/podcast/models.py: Added dubbing request/response models
- api/podcast/router.py: Added dubbing routes
- services/__init__.py: Export translation and dubbing services
- scene_animation.py: Fixed missing Path import
2026-03-24 15:45:51 +05:30

50 lines
1.0 KiB
Python

"""Services package for ALwrity backend."""
from .onboarding.api_key_manager import (
APIKeyManager,
OnboardingProgress,
get_onboarding_progress,
StepStatus,
StepData
)
from .validation import check_all_api_keys
from .translation import (
translate_text,
translate_batch,
get_translator,
list_supported_languages,
is_language_supported,
TranslationQuality,
TranslationResult,
DeepLTranslator,
)
from .dubbing import (
AudioDubbingService,
DubbingResult,
VoiceCloneInfo,
)
__all__ = [
# Onboarding
'APIKeyManager',
'OnboardingProgress',
'get_onboarding_progress',
'StepStatus',
'StepData',
'check_all_api_keys',
# Translation (common module)
'translate_text',
'translate_batch',
'get_translator',
'list_supported_languages',
'is_language_supported',
'TranslationQuality',
'TranslationResult',
'DeepLTranslator',
# Dubbing
'AudioDubbingService',
'DubbingResult',
'VoiceCloneInfo',
]