top | item 47159891

Show HN: Tunejourney.com – A 3D radio globe with in-browser ML to auto-skip talk

2 points| FreeGuessr | 5 days ago |tunejourney.com

Hi HN, I built TuneJourney.com, a web app that lets you explore ~70k radio stations worldwide via a 3D globe. While sites like Radio Garden are great for discovery, I wanted to build something that functioned more like a modern media player with automation—specifically, the ability to automatically skip a station when it switches from music to talking or ads.

The Unique Part: In-Browser ML The core feature is an "AI Skip Talk." Instead of processing audio on a server, it uses the Web Audio API to capture the stream locally and runs a lightweight classification model directly in your browser. It estimates the "music vs. speech" probability in near real-time.

If you have the filter enabled, it will automatically trigger a "next" command to hop to another station in your playlist or a random location on the globe the moment a DJ, news segment, or ad starts.

Privacy: No audio data ever leaves your machine; inference is entirely local.

The Tech Stack/Features: - WebGL + Point Clustering: To render 70,000 stations across 11,000 locations smoothly. - In-browser Inference: Uses a small model plus stream-level heuristics to handle edge cases. - Media Key Integration: Full support for physical keyboard and system-level Next/Prev buttons. - Persistence: Sign-in is available to sync playlists and favorites across devices, but the core explorer works without an account. - Online activity: You can see in real time other people on the site, where they are on the globe, what they listened to, and what stations they liked. - Simple games to kill the time as you are listening to stations, like Solitaire, Minesweeper, etc.

The Trade-offs & Challenges: Running a WebGL globe and real-time audio analysis simultaneously is heavy on the CPU. To handle this, I’ve implemented: - Automatic performance detection that downgrades visuals on lower-end machines. - A manual toggle to kill the audio processing if you just want to use the globe as a standard player. - A talk sensitivity slider for the ML model, so you can tweak it yourself.

What I’d love feedback on: - Performance: How does your CPU/fan react? Is it manageable? I’m looking for ways to further optimize the client-side ML or perhaps it is okay to bring even heavier models with more accuracy. - Classification Accuracy: How useful is it? Does it detect talking in most of the cases, or is it sometimes useless? On MacBook it works ok-ish. Ads with music are difficult but when music changes to pure talk, the site does its work and hops to another one.

Let me know what you think! I am interested if this project is worth further investment, building a mobile app, etc.

1 comment

order

atmanactive|2 days ago

Hi, this looks like a dream come true IF it can work correctly. So I started testing it today and I hit a make or break corner case: as long as the radio stations themselves are strong (in network sense), the AI is recognizing speech correctly and shifting the radio stations. But, if a station network connection is weak and the packets are being dropped, the listener is left hanging with silence. So, I believe you need to make the player resilient to these problems and to treat network disruption same as speech. Thanks.