videopython 0.26.8__tar.gz → 0.26.9__tar.gz
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.
- {videopython-0.26.8 → videopython-0.26.9}/PKG-INFO +1 -1
- {videopython-0.26.8 → videopython-0.26.9}/pyproject.toml +1 -1
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/pipeline.py +19 -4
- {videopython-0.26.8 → videopython-0.26.9}/.gitignore +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/LICENSE +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/README.md +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/_device.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/dubber.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/models.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/remux.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/timing.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/audio.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/image.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/translation.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/video.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/registry.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/inpainter.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/models.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/segmenter.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/swapper.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/transforms.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/audio.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/image.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/separation.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/temporal.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/video_analysis.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/analysis.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/audio.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/combine.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/description.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/effects.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/exceptions.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/progress.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/registry.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/scene.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/streaming.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/overlay.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/transcription.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/transforms.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/transitions.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/utils.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/video.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/__init__.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/multicam.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/premiere_xml.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/video_edit.py +0 -0
- {videopython-0.26.8 → videopython-0.26.9}/src/videopython/py.typed +0 -0
|
@@ -350,10 +350,25 @@ class LocalDubbingPipeline:
|
|
|
350
350
|
speaker = segment.speaker or "speaker_0"
|
|
351
351
|
cached_path = speaker_wav_paths.get(speaker) if voice_clone else None
|
|
352
352
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
353
|
+
try:
|
|
354
|
+
if cached_path is not None:
|
|
355
|
+
dubbed_audio = self._tts.generate_audio(segment.translated_text, voice_sample_path=cached_path)
|
|
356
|
+
else:
|
|
357
|
+
dubbed_audio = self._tts.generate_audio(segment.translated_text)
|
|
358
|
+
except Exception as e:
|
|
359
|
+
# Chatterbox occasionally crashes on short translated text
|
|
360
|
+
# (alignment_stream_analyzer indexing on tensors with <=5
|
|
361
|
+
# speech tokens). One bad segment shouldn't lose a long
|
|
362
|
+
# multi-hour run — log and skip so the rest proceeds.
|
|
363
|
+
logger.warning(
|
|
364
|
+
"TTS failed for segment %d/%d (speaker=%s, text=%r): %s — skipping",
|
|
365
|
+
i + 1,
|
|
366
|
+
len(translated_segments),
|
|
367
|
+
speaker,
|
|
368
|
+
segment.translated_text,
|
|
369
|
+
e,
|
|
370
|
+
)
|
|
371
|
+
continue
|
|
357
372
|
|
|
358
373
|
dubbed_segments.append(dubbed_audio)
|
|
359
374
|
target_durations.append(segment.duration)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|