Inspiration
Modern music streaming feels robotic in the worst way—endless scrolling, repetitive playlists, and algorithms that trap you in a filter bubble. Yet the magic of traditional radio—the human connection, the spontaneous discovery, the charismatic DJ—has been lost to automation. We asked: What if we could automate the *right things?* What if AI could generate not just music, but an entire living, breathing radio experience from scratch? Lyria was born from that question: a fully automated radio station where every element—the music, the voice, the personality—is generated fresh in real-time.
What it does
Lyria is a fully automated, end-to-end AI radio station. There are no prerecorded tracks, no static playlists, and no human DJs. The entire experience is generated on the fly:
- Music Automation: When a user tunes to a channel (e.g., "Lo-Fi," "Jazz," "Ambient"), the Lyria model automatically generates an infinite, high-fidelity music stream tailored to that genre. The music never loops, never repeats, and never ends.
- DJ Automation: Every 15 seconds, an AI radio announcer automatically pipes up with a punchy, charismatic station ID. The system autonomously writes a unique script using Gemini and converts it to speech using Google's TTS—all without human intervention.
- Seamless Mixing: The automated music and voice tracks are dynamically mixed, with the music ducking perfectly behind the announcer, just like a real radio station.
The user simply tunes in and relaxes. The AI handles the rest.
How we built it
Lyria is powered by a fully automated pipeline built on Google GenAI:
- Music Generation (Automated): We integrated the Lyria model to generate continuous, genre-specific audio streams. The system automatically prompts the model based on the user's selected channel, ensuring the music never repeats.
- DJ Scripting (Automated): A scheduling engine triggers every 15 seconds, sending a prompt to
gemini-2.5-flashto generate a fresh, context-aware DJ script based on the current station and frequency. The system handles all prompt engineering autonomously. - Voice Generation (Automated): The generated script is automatically passed to
gemini-2.5-flash-preview-tts(using the 'Fenrir' voice) to produce a realistic spoken announcement. - Audio Pipeline (Automated): The front-end, built with modern web technologies, automatically decodes incoming base64 PCM audio, manages the Web Audio API, and mixes the announcement with the music stream using dynamic gain control.
- State Automation: A robust session management system (
stationId) automatically cancels stale generation promises when a user changes stations, ensuring zero manual intervention.
Challenges we ran into
- Automating the "Human" Touch: Making an automated DJ sound charismatic and not robotic was a major challenge. We had to carefully craft prompts to inject personality into every line.
- Synchronization Without a Human: Automating the 15-second cadence while handling rapid station changes required a complex debouncing and session-tracking system to prevent overlapping announcements.
- Real-Time Audio Automation: Ensuring the automated music generation felt instantaneous and seamless required building an efficient buffering architecture that pre-fetches and queues audio segments in the background.
Accomplishments that we're proud of
- End-to-End Automation: We built a system where zero human input is required after a user tunes in. The music, the voice, and the timing are all handled autonomously by AI.
- Authentic Personality: Despite being fully automated, the DJ genuinely sounds like a real radio personality—quirky, engaging, and spontaneous.
- Robust Asynchronous Design: The
stationIdpattern ensures that even with rapid user interaction, the automated system never plays the wrong announcement or crashes.
What we learned
- Automating Creativity is Possible: We learned that with the right prompt engineering and model chaining, AI can autonomously generate content that feels human and spontaneous.
- The Importance of State in Automation: Building a fully automated system taught us how critical robust state management is to prevent race conditions and ensure a smooth user experience.
- Audio Engineering in the Browser: We gained deep expertise in the Web Audio API, learning to automate gain staging, buffer management, and real-time mixing entirely in JavaScript.
Team
- Denis Muriungi – Solo Developer & Creator
What's next for Lyria
- Smarter Automation: Implementing listener feedback loops where "likes" and "dislikes" automatically fine-tune future music generation.
- Expanded Station Automation: Automating the creation of entirely new station types based on trending moods and activities.
- Persistent Sessions: Allowing the system to remember a user's station and automatically resume where they left off.
- Visual Automation: Generating dynamic, automated visualizations that react in real-time to the music's tempo and genre.

Log in or sign up for Devpost to join the conversation.