# ----------------------------------------------------------------------------- # Sahel-Agri Voice AI — Python Dependencies # HuggingFace Spaces (ZeroGPU) deployment — CUDA pre-installed, no +cu128 suffix # # Local CPU test: # pip install -r requirements.txt # ----------------------------------------------------------------------------- # PyTorch (CPU build — works on HF Spaces cpu-basic and locally) torch==2.11.0 torchaudio==2.11.0 # HuggingFace core transformers==5.5.0 datasets==4.8.4 accelerate==1.13.0 evaluate==0.4.2 huggingface-hub==1.9.0 # PEFT (LoRA adapters) peft==0.18.1 # Audio processing librosa==0.10.2 soundfile==0.12.1 audiomentations==0.43.1 # Quantization (CPU: installs fine; 4-bit/8-bit requires GPU at runtime) bitsandbytes==0.49.2 # Metrics jiwer==3.0.4 # Config & environment pyyaml==6.0.2 python-dotenv==1.1.0 # Gradio version is controlled by sdk_version in README.md — do not pin here # to avoid conflict with the version HF Spaces pre-installs. # Pydantic v2 pydantic==2.11.3 # Testing pytest==8.3.5 pytest-asyncio==0.26.0 # Utilities numpy==2.2.4 scipy==1.15.2 # Phrase matching (fuzzy match for Whisper mis-transcriptions of Bambara/Fula) rapidfuzz==3.13.0 # Speaker identification (ECAPA-TDNN 192-d embeddings, used by SpeakerProfileManager) speechbrain>=0.5.15 # Voice cloning (OpenVoice V2 / myshell-openvoice) is NOT listed here. # myshell-openvoice pins librosa==0.9.1 which conflicts with our librosa==0.10.2. # VoiceCloner in src/tts/voice_cloner.py degrades gracefully (returns None) when # the package is absent — base VITS voice is used instead. # Re-enable once OpenVoice releases a version compatible with librosa>=0.10. # maliba-ai is NOT listed here — it has strict conflicting pins (librosa, soundfile). # It is installed lazily at runtime on first Bambara TTS call (see src/tts/waxal_tts.py).