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
50 lines
1.0 KiB
Python
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',
|
|
] |