Spaces:
Sleeping
Sleeping
| # Dependency Management Guide | |
| > **Note**: As of V3.0, VoiceForge uses [Poetry](https://python-poetry.org/) for dependency management. Legacy `requirements.txt` is maintained for compatibility but Poetry is recommended. | |
| ## 📦 Critical Constraints | |
| ### Numpy & PyTorch Lock | |
| **Status**: ⚠️ **Strictly Pinned** | |
| - **Numpy**: `1.26.4` (Last stable 1.x version) | |
| - **Torch**: `2.3.1` (Compatible with Numpy 1.x) | |
| - **Reason**: `pyannote.audio==3.1.1` requires `numpy<2.0.0`. Upgrading to Numpy 2.0+ will break speaker diarization until `pyannote` is updated. | |
| ### Audio Libraries | |
| - **Pyannote Audio**: `3.1.1` (Strict pin) | |
| - **Transformers**: `4.42.4` (Pinned for stable MarianMT translation) | |
| - **MeloTTS**: `0.1.2` (Requires C++ build tools only if installing from source) | |
| --- | |
| ## 🛠️ Managing Dependencies with Poetry | |
| ### 1. Installation | |
| ```bash | |
| pip install poetry | |
| ``` | |
| ### 2. Adding a Package | |
| ```bash | |
| # Add a production dependency | |
| poetry add package_name | |
| # Add a development dependency | |
| poetry add --group dev package_name | |
| ``` | |
| ### 3. Updating Dependencies | |
| ```bash | |
| # Update all packages (respecting constraints) | |
| poetry update | |
| # Update a specific package | |
| poetry update package_name | |
| ``` | |
| ### 4. Running the App | |
| ```bash | |
| poetry run uvicorn app.main:app --reload | |
| ``` | |
| --- | |
| ## 🐳 Docker Note | |
| The `Dockerfile` uses Poetry to install dependencies. | |
| - It generates a clean environment based on `poetry.lock`. | |
| - This ensures that the Docker build matches your local environment exactly (if you use Poetry locally). | |
| ## ⚠️ Troubleshooting | |
| ### "Failed to build melotts" | |
| - **Cause**: Missing C++ Build Tools (common on Windows). | |
| - **Solution**: | |
| - **Option A (Easy)**: Ignore it. VoiceForge automatically falls back to EdgeTTS if MeloTTS is missing. | |
| - **Option B (Fix)**: Install "Desktop development with C++" workload via Visual Studio Installer. | |
| - **Option C (Docker)**: Use Docker, which runs Linux and handles the build automatically. | |
| ### "SolverProblemError" | |
| - **Cause**: Conflicting version constraints. | |
| - **Solution**: Check `pyproject.toml` for incompatible pins. Ensure you aren't trying to force `numpy>=2.0` while `pyannote.audio` is installed. | |