A lightweight text-to-speech notification listener that uses pocket-tts for natural-sounding voice synthesis.
Listens to an ntfy.sh topic and speaks notifications aloud. Runs in the Windows system tray.
- Natural-sounding TTS using Kyutai's pocket-tts (100M parameter model)
- Runs on CPU with ~200ms latency
- System tray icon with easy quit option
- Auto-starts on Windows login
macOS has excellent built-in TTS, so no heavy dependencies needed:
pip install requests
python ntfy-speaker-mac.pyTo run on login, add to System Settings → General → Login Items, or create a Launch Agent.
Available voices: Samantha, Alex, Victoria, Karen, Daniel, Moira, Tessa (run say -v '?' to list all)
- Python 3.10+ with pip
# Install dependencies
pip install pocket-tts sounddevice requests pystray pillow
# Clone this repo
git clone https://github.com/CoreyH/ntfy-speaker.git
cd ntfy-speakerEdit ntfy-speaker-tray.pyw to change:
NTFY_TOPIC- Your ntfy.sh topic (generate a random one for privacy)VOICE- TTS voice:alba,fantine,cosette,eponine,azelma(female) ormarius,javert,jean(male)
Run the PowerShell script to create a startup shortcut:
powershell -ExecutionPolicy Bypass -File create-shortcut.ps1Or manually copy start-ntfy-speaker.vbs to your Startup folder.
pythonw ntfy-speaker-tray.pywFrom any machine with curl:
curl -d "Build finished" https://ntfy.sh/YOUR_TOPICYou'll hear: "Build finished complete"
GitHub Actions:
- name: Notify completion
if: always()
run: curl -d "${{ github.workflow }}" https://ntfy.sh/YOUR_TOPICShell alias:
alias notify='curl -d'
# Usage: notify "Task done" https://ntfy.sh/YOUR_TOPICMIT