feat: Replace Matcha with Soprano TTS and add inference pipeline
marcos+1: Claude Opus 4.5
32fdbcd
- Switch from Matcha TTS to Soprano TTS for simpler setup
- Remove Gemma local model (using Groq API instead)
- Add fallback tokenizer loading in dataset creation
- Make text_tokens optional when tokenizer unavailable
- Add inference.py for end-to-end speech-to-speech
- Add TTS service abstractions (soprano, matcha, piper, gemma)
- Add dataset verification script
- Fix version constraints for WhisperX compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: Async dataset pipeline with adaptive memory management
marcos+1: Claude Opus 4.5
0f2f953
- Replace sequential pipeline with fully async architecture
- TTS + Features workers run in parallel on 2 GPUs
- Adaptive batch sizing based on 80% GPU memory limit
- Auto-reduce batch on OOM, auto-increase on success
- Parallel Whisper encoding (4 threads)
- Batched SNAC encoding with dynamic mini-batches
- Achieves ~20 items/s throughput (vs ~10 items/s before)
- Move API keys to environment variables
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- passo0_setup.py: Environment setup for GPU training
- passo1_convertdataset.py: Convert raw data to InstructS2S format
- passo2_finetune_stage1.py: Stage 1 training (adapter only)
- passo3_finetune_stage2.py: Stage 2 training (adapter + LoRA)
- datasets/generate_dataset.py: Generate Q&A dataset with TTS/STT
- services/: Modular services for Groq, WhisperX, Kokoro TTS, Llama
All API keys use environment variables for security.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>