A comprehensive, production-ready Text-to-Speech training framework with advanced voice cloning capabilities, GPU optimization, and plateau breakthrough techniques.
Having GPU utilization issues (2-40%)? Retracing warnings?
β SOLVED! We've implemented a complete fix for tf.function retracing issues.
# Quick validation before training
./validate_setup.sh configs/config.yaml
# Or run the diagnostic tool
python utilities/diagnose_retracing.py --config configs/config.yaml
π See: RETRACING_COMPLETE_SOLUTION.md for the complete fix
Results: 70-90% GPU utilization (stable), 30x faster training
# Clone the repository
git clone <your-repo-url>
cd MyXTTSModel
# Install dependencies
pip install -r requirements.txt
# Validate your setup (recommended!)
./validate_setup.sh configs/config.yaml
# Basic training - NOW WITH SMART DEFAULTS! π―
# Uses: tiny model, batch-size 16, static shapes enabled
python3 train_main.py --train-data ../dataset/dataset_train --val-data ../dataset/dataset_eval
# Or even simpler (uses default dataset paths):
python3 train_main.py
# Override specific parameters as needed:
python3 train_main.py --model-size small --batch-size 24
# Advanced training with all optimizations
python3 train_main.py --model-size normal --optimization-level enhanced
The training script now comes with sensible defaults that work out of the box:
tiny (great for learning and quick iterations)16 (automatically adjusted based on your GPU memory)enabled (prevents GPU utilization issues)single-GPU (automatically switches to multi-GPU when you specify --data-gpu and --model-gpu)8 (automatically adjusted based on your system)You can override any of these with command-line arguments!
MyXTTSModel/
βββ π Core Files
β βββ train_main.py # Main training script
β βββ inference_main.py # Inference and voice cloning script
β βββ fixed_inference.py # Fixed inference implementation
β βββ manage.sh # Project management script
β βββ setup.py # Package setup and installation
β βββ requirements.txt # Python dependencies
β
βββ π§ myxtts/ # Core model package
β βββ config/ # Configuration classes
β βββ models/ # XTTS model implementations
β βββ training/ # Training classes and utilities
β βββ utils/ # Common utilities
β
βββ βοΈ configs/ # Configuration files
β βββ config.yaml # Main configuration
β βββ example_config.yaml # Example configuration
β
βββ π scripts/ # Utility scripts
β βββ install_dependencies.sh # Dependency installation
β βββ quick_restart.sh # Quick restart utility
β βββ train_gpu_optimized.sh # GPU-optimized training
β
βββ π οΈ utilities/ # Utility scripts
β βββ memory_optimizer.py # Memory optimization tools
β βββ evaluate_tts.py # TTS quality evaluation
β βββ optimize_model.py # Model optimization for deployment
β
βββ π examples/ # Usage examples and demos
β βββ Various usage examples
β
βββ π§ͺ tests/ # Test suite
β βββ Comprehensive test files
β
βββ π notebooks/ # Jupyter notebooks
β βββ Training and evaluation notebooks
β
βββ π docs/ # Documentation
β βββ Technical documentation
β
βββ ποΈ data/ # Data directories
βββ checkpointsmain/ # Training checkpoints
βββ dataset/ # Training datasets
βββ small_dataset_test/ # Test datasets
New in Latest Version: Enhanced level now automatically adjusts learning rate, gradient clipping, and other parameters based on model size for better convergence and plateau prevention.
docs/INTELLIGENT_GPU_PIPELINE.md for detailsdocs/TEXT2AUDIO_EVAL_GUIDE.md for details# Simplest command - uses smart defaults (tiny model, batch-size 16, static shapes enabled)
python3 train_main.py
# Quick test with even smaller batch
python3 train_main.py --batch-size 4 --epochs 10
# Production training with larger model
python3 train_main.py \
--model-size normal \
--optimization-level enhanced \
--batch-size 32 \
--epochs 500
# Enable Global Style Tokens for prosody control
python3 train_main.py \
--enable-gst \
--gst-num-style-tokens 12 \
--model-size normal \
--optimization-level enhanced
NEW v2.0: Async pipeline with triple buffering for 2-3x faster training!
# Memory-Isolated Dual-GPU (RECOMMENDED - Optimized v2.0)
python3 train_main.py \
--model-size tiny \
--batch-size 16 \
--data-gpu 0 \
--model-gpu 1 \
--enable-memory-isolation \
--enable-static-shapes \
--data-gpu-memory 8192 \
--model-gpu-memory 16384 \
--epochs 500
# Legacy Multi-GPU (older method)
python3 train_main.py \
--data-gpu 0 \
--model-gpu 1 \
--buffer-size 100 \
--batch-size 64 \
--epochs 500
# Single-GPU with buffer (for users with 1 GPU)
python3 train_main.py \
--buffer-size 100 \
--batch-size 32 \
--epochs 500
π Performance improvement: The new memory-isolated mode achieves 80-95% GPU utilization (vs 50-70% before)
π Documentation: See DUAL_GPU_BOTTLENECK_FIX.md for details
π§ Profiler: Use utilities/dual_gpu_bottleneck_profiler.py to diagnose bottlenecks
# Training with automatic evaluation
python3 train_main.py \
--enable-evaluation \
--evaluation-interval 25 \
--create-optimized-model
--optimization-level basic: Conservative, stable settings for compatibility--optimization-level enhanced: Recommended optimizations with model-size-aware tuning (default)
--optimization-level plateau_breaker: For persistent plateaus at 2.5-2.8--model-size tiny: Fast training, lower quality (256/768 dims)
--batch-size 8 or 16, --optimization-level enhanced--model-size small: Balanced quality vs speed (384/1024 dims)
--batch-size 16, --optimization-level enhanced--model-size normal: High quality, default (512/1536 dims)
--batch-size 32, --optimization-level enhanced--model-size big: Maximum quality (768/2048 dims)
--batch-size 8 or 16, --optimization-level enhancedIf your loss plateaus and stops decreasing (e.g., stuck at 2.8):
For Tiny Model:
# Option 1: Use recommended batch size (RECOMMENDED)
python3 train_main.py --model-size tiny --optimization-level enhanced --batch-size 16
# Option 2: Use plateau_breaker if still stuck
python3 train_main.py --model-size tiny --optimization-level plateau_breaker --batch-size 16
# Option 3: Upgrade to small model for better capacity
python3 train_main.py --model-size small --optimization-level enhanced --batch-size 16
Common Causes:
Solution Path:
--optimization-level plateau_breakerSee: docs/LOSS_PLATEAU_2.8_TINY_ENHANCED_FIX.md for detailed troubleshooting.
# Run comprehensive model validation
python3 utilities/validate_model_correctness.py
# Run end-to-end tests
python3 tests/test_end_to_end_validation.py
# Quick validation (both commands)
python3 utilities/validate_model_correctness.py && python3 tests/test_end_to_end_validation.py
# Validate model functionality
python3 utilities/validate_enhancements.py
# Memory optimization testing
python3 utilities/validate_memory_fixes.py
# Complete system validation
python3 utilities/comprehensive_validation.py --data-path YOUR_DATA --quick-test
See Validation Guide for details.
# Basic functionality tests
python3 tests/test_basic_functionality.py
# Enhanced model tests
python3 tests/test_enhanced_model.py
# GPU optimization tests
python3 tests/test_gpu_optimization.py
# Model optimization for deployment
python3 utilities/optimize_model.py
# TTS quality evaluation
python3 utilities/evaluate_tts.py
# Memory usage optimization
python3 utilities/memory_optimizer.py
Comprehensive guides available in the docs/ directory:
This project is licensed under the MIT License - see the LICENSE file for details.
π― Ready to train high-quality voice cloning models? Start with the quick start guide above!
Python
91.9%
Jupyter Notebook
7.0%
Shell
1.2%
A comprehensive, production-ready Text-to-Speech training framework with advanced voice cloning capabilities, GPU optimization, and plateau breakthrough techniques.
Having GPU utilization issues (2-40%)? Retracing warnings?
β SOLVED! We've implemented a complete fix for tf.function retracing issues.
# Quick validation before training
./validate_setup.sh configs/config.yaml
# Or run the diagnostic tool
python utilities/diagnose_retracing.py --config configs/config.yaml
π See: RETRACING_COMPLETE_SOLUTION.md for the complete fix
Results: 70-90% GPU utilization (stable), 30x faster training
# Clone the repository
git clone <your-repo-url>
cd MyXTTSModel
# Install dependencies
pip install -r requirements.txt
# Validate your setup (recommended!)
./validate_setup.sh configs/config.yaml
# Basic training - NOW WITH SMART DEFAULTS! π―
# Uses: tiny model, batch-size 16, static shapes enabled
python3 train_main.py --train-data ../dataset/dataset_train --val-data ../dataset/dataset_eval
# Or even simpler (uses default dataset paths):
python3 train_main.py
# Override specific parameters as needed:
python3 train_main.py --model-size small --batch-size 24
# Advanced training with all optimizations
python3 train_main.py --model-size normal --optimization-level enhanced
The training script now comes with sensible defaults that work out of the box:
tiny (great for learning and quick iterations)16 (automatically adjusted based on your GPU memory)enabled (prevents GPU utilization issues)single-GPU (automatically switches to multi-GPU when you specify --data-gpu and --model-gpu)8 (automatically adjusted based on your system)You can override any of these with command-line arguments!
MyXTTSModel/
βββ π Core Files
β βββ train_main.py # Main training script
β βββ inference_main.py # Inference and voice cloning script
β βββ fixed_inference.py # Fixed inference implementation
β βββ manage.sh # Project management script
β βββ setup.py # Package setup and installation
β βββ requirements.txt # Python dependencies
β
βββ π§ myxtts/ # Core model package
β βββ config/ # Configuration classes
β βββ models/ # XTTS model implementations
β βββ training/ # Training classes and utilities
β βββ utils/ # Common utilities
β
βββ βοΈ configs/ # Configuration files
β βββ config.yaml # Main configuration
β βββ example_config.yaml # Example configuration
β
βββ π scripts/ # Utility scripts
β βββ install_dependencies.sh # Dependency installation
β βββ quick_restart.sh # Quick restart utility
β βββ train_gpu_optimized.sh # GPU-optimized training
β
βββ π οΈ utilities/ # Utility scripts
β βββ memory_optimizer.py # Memory optimization tools
β βββ evaluate_tts.py # TTS quality evaluation
β βββ optimize_model.py # Model optimization for deployment
β
βββ π examples/ # Usage examples and demos
β βββ Various usage examples
β
βββ π§ͺ tests/ # Test suite
β βββ Comprehensive test files
β
βββ π notebooks/ # Jupyter notebooks
β βββ Training and evaluation notebooks
β
βββ π docs/ # Documentation
β βββ Technical documentation
β
βββ ποΈ data/ # Data directories
βββ checkpointsmain/ # Training checkpoints
βββ dataset/ # Training datasets
βββ small_dataset_test/ # Test datasets
New in Latest Version: Enhanced level now automatically adjusts learning rate, gradient clipping, and other parameters based on model size for better convergence and plateau prevention.
docs/INTELLIGENT_GPU_PIPELINE.md for detailsdocs/TEXT2AUDIO_EVAL_GUIDE.md for details# Simplest command - uses smart defaults (tiny model, batch-size 16, static shapes enabled)
python3 train_main.py
# Quick test with even smaller batch
python3 train_main.py --batch-size 4 --epochs 10
# Production training with larger model
python3 train_main.py \
--model-size normal \
--optimization-level enhanced \
--batch-size 32 \
--epochs 500
# Enable Global Style Tokens for prosody control
python3 train_main.py \
--enable-gst \
--gst-num-style-tokens 12 \
--model-size normal \
--optimization-level enhanced
NEW v2.0: Async pipeline with triple buffering for 2-3x faster training!
# Memory-Isolated Dual-GPU (RECOMMENDED - Optimized v2.0)
python3 train_main.py \
--model-size tiny \
--batch-size 16 \
--data-gpu 0 \
--model-gpu 1 \
--enable-memory-isolation \
--enable-static-shapes \
--data-gpu-memory 8192 \
--model-gpu-memory 16384 \
--epochs 500
# Legacy Multi-GPU (older method)
python3 train_main.py \
--data-gpu 0 \
--model-gpu 1 \
--buffer-size 100 \
--batch-size 64 \
--epochs 500
# Single-GPU with buffer (for users with 1 GPU)
python3 train_main.py \
--buffer-size 100 \
--batch-size 32 \
--epochs 500
π Performance improvement: The new memory-isolated mode achieves 80-95% GPU utilization (vs 50-70% before)
π Documentation: See DUAL_GPU_BOTTLENECK_FIX.md for details
π§ Profiler: Use utilities/dual_gpu_bottleneck_profiler.py to diagnose bottlenecks
# Training with automatic evaluation
python3 train_main.py \
--enable-evaluation \
--evaluation-interval 25 \
--create-optimized-model
--optimization-level basic: Conservative, stable settings for compatibility--optimization-level enhanced: Recommended optimizations with model-size-aware tuning (default)
--optimization-level plateau_breaker: For persistent plateaus at 2.5-2.8--model-size tiny: Fast training, lower quality (256/768 dims)
--batch-size 8 or 16, --optimization-level enhanced--model-size small: Balanced quality vs speed (384/1024 dims)
--batch-size 16, --optimization-level enhanced--model-size normal: High quality, default (512/1536 dims)
--batch-size 32, --optimization-level enhanced--model-size big: Maximum quality (768/2048 dims)
--batch-size 8 or 16, --optimization-level enhancedIf your loss plateaus and stops decreasing (e.g., stuck at 2.8):
For Tiny Model:
# Option 1: Use recommended batch size (RECOMMENDED)
python3 train_main.py --model-size tiny --optimization-level enhanced --batch-size 16
# Option 2: Use plateau_breaker if still stuck
python3 train_main.py --model-size tiny --optimization-level plateau_breaker --batch-size 16
# Option 3: Upgrade to small model for better capacity
python3 train_main.py --model-size small --optimization-level enhanced --batch-size 16
Common Causes:
Solution Path:
--optimization-level plateau_breakerSee: docs/LOSS_PLATEAU_2.8_TINY_ENHANCED_FIX.md for detailed troubleshooting.
# Run comprehensive model validation
python3 utilities/validate_model_correctness.py
# Run end-to-end tests
python3 tests/test_end_to_end_validation.py
# Quick validation (both commands)
python3 utilities/validate_model_correctness.py && python3 tests/test_end_to_end_validation.py
# Validate model functionality
python3 utilities/validate_enhancements.py
# Memory optimization testing
python3 utilities/validate_memory_fixes.py
# Complete system validation
python3 utilities/comprehensive_validation.py --data-path YOUR_DATA --quick-test
See Validation Guide for details.
# Basic functionality tests
python3 tests/test_basic_functionality.py
# Enhanced model tests
python3 tests/test_enhanced_model.py
# GPU optimization tests
python3 tests/test_gpu_optimization.py
# Model optimization for deployment
python3 utilities/optimize_model.py
# TTS quality evaluation
python3 utilities/evaluate_tts.py
# Memory usage optimization
python3 utilities/memory_optimizer.py
Comprehensive guides available in the docs/ directory:
This project is licensed under the MIT License - see the LICENSE file for details.
π― Ready to train high-quality voice cloning models? Start with the quick start guide above!
Python
91.9%
Jupyter Notebook
7.0%
Shell
1.2%