All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- FFmpeg NoneType error in
syncnet_pipeline.pywhen ffmpeg_bin is None - Improved error handling for FFmpeg subprocess calls
- Fixed import paths for direct script execution (relative imports with fallback)
- Replaced
subprocess.callwithsubprocess.runfor better error handling - Added explicit FFmpeg binary path validation
- Improved error messages for FFmpeg-related failures
- Abstract base classes for all major components (BaseModel, AudioProcessor, VideoProcessor, etc.)
- Comprehensive exception hierarchy with specific error types
- Configuration management system with validation
- Structured logging with color support and JSON output
- Memory management utilities and monitoring
- Parallel video processing support
- Streaming audio processing capabilities
- Optimized synchronization analyzer with caching
- Factory pattern for model creation
- Batch processing utilities
- YAML/JSON configuration support
- Detailed analysis testing with per-crop offsets and min distances
- Comprehensive functionality verification tests
- Complete refactoring of core modules with clean architecture
- Separated concerns into distinct modules (audio, video, models, sync_analyzer)
- Improved error handling throughout the codebase
- Added input validation and sanitization
- Optimized tensor operations for better performance
- Modernized code with Python 3.13 features while maintaining 3.9+ compatibility
- Fixed import paths in syncnet_python module for proper functionality
- Updated type definitions with Python 3.9 compatibility fallbacks
- Duplicate code in script/ directory
- Build artifacts and temporary files
- Redundant documentation files
- Hard-coded configuration values
- Intermediate test files and temporary outputs
- Memory leaks in video processing
- Thread safety issues in parallel processing
- Improper resource cleanup
- Import path issues in syncnet_pipeline.py
- Legacy model compatibility layer
- PyYAML and psutil optional dependencies
- Successfully verified all APIs with example video and audio files
- Confirmed face detection working at 100% success rate (134 frames)
- Validated audio-visual sync analysis with 1 frame offset detection
- Tested command line interface functionality
- Verified error handling and edge cases
- Performance tested: 191.4 fps processing, 0.646s compute time
- Example video: example/video.avi (134 frames)
- Example audio: example/speech.wav
- AV Offset detected: 1 frame (excellent sync)
- Confidence: 4.500 (very high)
- Min distance: 9.316
- Face detection confidence: 0.959-1.000 range
- Processing speed: 191.4 fps
- Proper attribution to the original SyncNet implementation by Joon Son Chung
- Python 3.9 compatibility fixes for type hints with fallback imports
- PYPI_RELEASE_NOTES.md for tracking PyPI releases
- Updated project description to clarify this is an updated version for modern Python versions
- Modified type definitions in
syncnet/core/types.pyto support Python 3.9+
- Type hint compatibility issues for Python versions prior to 3.10
- Complete refactoring for Python 3.13 compatibility
- Modern Python features:
- Type hints throughout the codebase
- Async/await support for concurrent processing
- Exception groups for better error handling
- Dataclasses for configuration management
- Modular package structure:
syncnet/core/- Refactored core componentssyncnet_python/- Legacy compatibility wrapper
- PyPI package configuration with
pyproject.toml - Comprehensive documentation:
- README.md with installation and usage instructions
- CLAUDE.md for AI-assisted development
- Development tools configuration:
- Black formatter settings
- Ruff linter configuration
- MyPy type checking setup
- Migrated from
setup.pyto modernpyproject.tomlconfiguration - Replaced deprecated
torch.autograd.Variablewith direct tensor usage - Updated S3FD face detector model loading with proper state dict mapping
- Reorganized directory structure for better maintainability
- Cleaned up intermediate files and temporary outputs
- PyTorch deprecation warnings
- S3FD model state dict loading issues with parameter name mapping
- Legacy model compatibility through dedicated compatibility layer
- Successfully tested on example video:
- AV offset: 1 frame
- Confidence: 4.568
- Verified functionality matches original implementation
- Python 3.13 primary development target
- Backward compatibility to Python 3.9
- Dependencies:
- PyTorch >= 2.0.0
- OpenCV >= 4.8.0
- NumPy >= 1.24.0
- SciPy >= 1.10.0
- Other supporting libraries
- Model weights (
sfd_face.pth,syncnet_v2.model) must be downloaded separately due to PyPI size limitations - Primary testing done on Python 3.13; other versions may have minor compatibility issues