I built myself a morning radio station (audience: one)
说明与用途
从 Obsidian 自动生成的每日简报,通过 WhatsApp 发送图像和语音消息。
问题
The author needed a daily briefing of tasks, pipeline, and weather without manually checking Obsidian.
结果
The system delivers a daily dashboard image and a 60–70 second voice note to the author’s WhatsApp, automating the morning briefing process.
工作流
- Read Obsidian vault to extract tasks, pipeline, and project status
- Render dashboard image with Python and Pillow
- Fetch Melbourne weather from wttr.in
- Generate a spoken summary script with an LLM via opencode CLI
- Convert text to speech using VoiceStudio/OmniVoice, Gemini TTS, or macOS say
- Render audio to Ogg/Opus with ffmpeg
- Send image and voice note through local OpenWA gateway to WhatsApp
- Wait for delivered/read confirmation before terminating
证据
Every morning at 07:00 AM, Chucka sends two things to my own WhatsApp.
Python and Pillow render it directly from the live files in my Obsidian vault.
The script is written fresh by an LLM each morning; a text-to-speech model turns it into audio that sound natural.
Audio is rendered, converted to Ogg/Opus with ffmpeg, then sent through a local OpenWA gateway to WhatsApp.
I learned that a status of sent means the message has been queued, not necessarily delivered.
- 记录日期: 2026-10-21T04:41:29.919Z