Added optional 'urgent' boolean field to POST /notify requests.
When urgent=true, audio is played at 1.5x volume with clipping
protection for critical messages.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed voice field in NotifyRequest from hardcoded default to None,
allowing the route handler to use settings.default_voice from .env.
Added EnvironmentFile directive to systemd service for reliable config loading.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
A local HTTP service that accepts text via POST and speaks it through
system speakers using Piper TTS neural voice synthesis.
Features:
- POST /notify - Queue text for TTS playback
- GET /health - Health check with TTS/audio/queue status
- GET /voices - List installed voice models
- Async queue processing (no overlapping audio)
- Non-blocking audio via sounddevice
- 73 tests covering API contract
Tech stack:
- FastAPI + Uvicorn
- Piper TTS (neural voices, offline)
- sounddevice (PortAudio)
- Pydantic for validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>