This commit resolves the "download entire voices" issue by properly handling
absolute paths in Piper model configuration and improves the deployment system.
Key changes:
- speech.py: Detect absolute paths and omit --data-dir/--download-dir flags
when using absolute model paths, allowing Piper to load models directly
- speech.py: Add debug logging and stderr capture for Piper subprocess
- voice_to_speaker.default.yaml: Use absolute paths for all Piper models
- Makefile: Load deployment config from vars.sh for better security
- Makefile: Change restart to rebuild container ensuring code updates apply
- Add vars.sh.example template for deployment configuration
- .gitignore: Add vars.sh to prevent committing deployment secrets
Tested successfully with en_US-libritts_r-medium model using absolute path:
/app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx
🦝 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
OHF-Voice/piper1-gpl doesn't have installable Python package structure yet.
The real fix is using ABSOLUTE paths in voice_to_speaker.yaml, not newer Piper version.
Solution: Use /app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx
Co-Authored-By: Claude <noreply@anthropic.com>
SOLUTION FOUND! Piper requires ABSOLUTE paths to model files, not relative paths.
Changes:
- Update voice_to_speaker.default.yaml to use /app/voices/... absolute paths
- Update Makefile voices target to set absolute paths via sed
- Tested: Piper works with /app/voices/en/en_US/libritts_r/medium/en_US-libritts_r-medium.onnx
Root cause: PyPI piper-tts package doesn't auto-download voices or support
voice name resolution. Must use full absolute file paths.
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive Makefile for deployment to ai.foxhop.net
- Switch from abandoned rhasspy/piper to OHF-Voice/piper1-gpl v1.3.0
- Add voice download automation with correct directory structure
- Includes deploy, sync, test, logs, and voice management commands
Co-Authored-By: Claude <noreply@anthropic.com>