π The natural voice actually speaks now (v0.15.1)
Turns out the natural announcement voice has likely never played for anyone: the speech service behind it (Cloudflare's MeloTTS) was failing on every request, and the app fell back to the robotic device voice so smoothly that nothing ever looked broken.
- Switched to a better voice. Bird names are now spoken by Deepgram Aura β a more natural, modern neural voice than the one that was failing β with the old service kept as an automatic backup, so one provider having a bad day can't silence the feature again.
- Everything else about the voice is unchanged: fetched once per bird, cached for offline replay, plays through the audio channel so the silent switch doesn't mute it.
π©Ή Sessions that heal themselves (v0.15.0)
The big one for leaving BirdWatch running in a pocket or vest: it can no longer silently go deaf.
- The problem: if a phone call, Siri, an alarm, or another app took over the microphone mid-session, the app kept showing a green "Listening" β while actually hearing nothing. You could walk for an hour detecting zero birds and never know.
- Now: BirdWatch notices within seconds that audio has stopped, switches the status (and the pocket lock screen) to an amber "Reconnecting micβ¦", and quietly rebuilds the microphone connection β retrying until it comes back, like after a call ends. Your session, feed, and stats carry on where they left off. Only a real permission loss stops the session, with a clear Retry message.
- Screen-sleep protection re-arms itself. A quick app switch or pocket-press of the side button used to silently cancel the keep-awake lock, so the screen could sleep minutes later and end the session. It's now re-engaged every time BirdWatch returns to the foreground.
π£οΈ Snappier, leaner voice (v0.14.3)
The natural announcement voice now speaks with no perceptible delay.
- Prefetched just in time. The moment BirdWatch starts working out which bird it's hearing, it quietly fetches that name's clip β so by the time the detection is confirmed a second or so later, the announcement plays instantly instead of after a network pause. Your watchlisted birds are pre-fetched too, so their alerts are instant the very first time (and ready offline before you head out).
- Generated once for everybody. Each bird name's clip is now cached at the source, so the voice model runs a single time per name across all users β faster for everyone and near-free to run.
- No wasted re-work. A bird you've already heard this session replays from memory instead of being re-decoded each time.
πͺΆ Smoother, steadier listening (v0.14.2)
Under-the-hood tuning for more reliable detection.
- Less behind-the-scenes work per second. BirdWatch was building and shipping a large chunk of data on every listening cycle that nothing actually used. Cutting it frees up the phone to keep the detection loop on schedule β especially on older, memory-tight phones (like an iPhone 13 mini), where that churn could occasionally cause a missed moment.
- A touch more rumble filtering. Slightly more of the low-frequency traffic/wind/handling noise is filtered out before the model listens, for a cleaner signal. (Birds live well above that range, so nothing you want to hear is affected.)
π catskilltracksbirds.pages.dev
Open this link on your phone and add it to your home screen.