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.
Files changed (56) hide show
  1. {videopython-0.26.8 → videopython-0.26.9}/PKG-INFO +1 -1
  2. {videopython-0.26.8 → videopython-0.26.9}/pyproject.toml +1 -1
  3. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/pipeline.py +19 -4
  4. {videopython-0.26.8 → videopython-0.26.9}/.gitignore +0 -0
  5. {videopython-0.26.8 → videopython-0.26.9}/LICENSE +0 -0
  6. {videopython-0.26.8 → videopython-0.26.9}/README.md +0 -0
  7. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/__init__.py +0 -0
  8. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/__init__.py +0 -0
  9. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/_device.py +0 -0
  10. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/__init__.py +0 -0
  11. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/dubber.py +0 -0
  12. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/models.py +0 -0
  13. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/remux.py +0 -0
  14. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/dubbing/timing.py +0 -0
  15. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/__init__.py +0 -0
  16. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/audio.py +0 -0
  17. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/image.py +0 -0
  18. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/translation.py +0 -0
  19. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/generation/video.py +0 -0
  20. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/registry.py +0 -0
  21. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/__init__.py +0 -0
  22. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/inpainter.py +0 -0
  23. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/models.py +0 -0
  24. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/segmenter.py +0 -0
  25. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/swapping/swapper.py +0 -0
  26. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/transforms.py +0 -0
  27. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/__init__.py +0 -0
  28. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/audio.py +0 -0
  29. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/image.py +0 -0
  30. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/separation.py +0 -0
  31. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/understanding/temporal.py +0 -0
  32. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/ai/video_analysis.py +0 -0
  33. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/__init__.py +0 -0
  34. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/__init__.py +0 -0
  35. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/analysis.py +0 -0
  36. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/audio/audio.py +0 -0
  37. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/combine.py +0 -0
  38. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/description.py +0 -0
  39. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/effects.py +0 -0
  40. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/exceptions.py +0 -0
  41. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/progress.py +0 -0
  42. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/registry.py +0 -0
  43. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/scene.py +0 -0
  44. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/streaming.py +0 -0
  45. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/__init__.py +0 -0
  46. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/overlay.py +0 -0
  47. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/text/transcription.py +0 -0
  48. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/transforms.py +0 -0
  49. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/transitions.py +0 -0
  50. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/utils.py +0 -0
  51. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/base/video.py +0 -0
  52. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/__init__.py +0 -0
  53. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/multicam.py +0 -0
  54. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/premiere_xml.py +0 -0
  55. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/editing/video_edit.py +0 -0
  56. {videopython-0.26.8 → videopython-0.26.9}/src/videopython/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: videopython
3
- Version: 0.26.8
3
+ Version: 0.26.9
4
4
  Summary: Minimal video generation and processing library.
5
5
  Project-URL: Homepage, https://videopython.com
6
6
  Project-URL: Repository, https://github.com/bartwojtowicz/videopython/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "videopython"
3
- version = "0.26.8"
3
+ version = "0.26.9"
4
4
  description = "Minimal video generation and processing library."
5
5
  authors = [
6
6
  { name = "Bartosz Wójtowicz", email = "bartoszwojtowicz@outlook.com" },
@@ -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
- if cached_path is not None:
354
- dubbed_audio = self._tts.generate_audio(segment.translated_text, voice_sample_path=cached_path)
355
- else:
356
- dubbed_audio = self._tts.generate_audio(segment.translated_text)
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