DJ3000 Radio Project


Inspiration

The DJ3000 project was inspired by an episode of The Simpsons, where a futuristic robot, DJ3000, was humorously introduced to replace human radio hosts. The original DJ3000 "played CDs automatically" and simulated radio personalities with "three distinct varieties of inane chatter"—lines like, "Hey hey! What about that weather out there?" and "Wow, looks like those clowns in Congress did it again!" We've brought this concept to life by not only automating radio broadcasts but also enhancing its human-like interactions. DJ3000 now fits in your pocket and delivers a richer and more engaging radio experience.

What it does

DJ3000 autonomously generates dynamic radio content using a playlist of preloaded music. It:

  • Randomly shuffles music tracks, applying automated crossfades and smooth transitions between songs.
  • Utilizes AI-generated voices to provide DJ-like commentary and announcements.
  • Inserts humorous inane chatter between AI DJ personalities for a lifelike radio experience.
  • Discusses real, live news headlines and temperature reports in a natural way
  • Exports the final audio sequence as .wav files, which are broadcast via Raspberry Pi over FM radio.

Connection to Theme: Mini Hacks

The DJ3000 project aligns perfectly with the Mini Hacks theme by solving a specific minor inconvenience—playing customized music playlists on devices that only accept FM radio signals, such as older cars or vintage radios that lack Bluetooth or smart connectivity.

In today's world, most modern audio devices support smart connections, but many older systems—like classic cars or retro radios—are limited to FM radio. DJ3000 eliminates the need for bulky, antiquated audio gear or dealing with static FM stations by generating a personal radio station on 97.5 FM, complete with seamless music transitions, AI-generated DJ commentary, and humorous chatter.

This project transforms the inconvenience of outdated audio technology into an automated, engaging experience. With DJ3000, users can broadcast their own music and commentary straight from a Raspberry Pi, providing a cheap and mini way to bring old devices into the modern world without requiring Bluetooth or internet connectivity.

How we built it

DJ3000 was built using Python, a set of external APIs, and FM transmission software. Key components include:

Frontend

  • Python: Acts as the core framework, managing playlist generation, audio processing, and AI integration.
  • Pydub: Handles complex audio manipulations such as splicing, fading, and layering music tracks with AI-generated commentary.

Backend

  • ElevenLabs API: Generates high-quality text-to-speech for DJ-style chatter. The system alternates between two distinct AI voices, creating natural back-and-forth conversations.
  • NLTK: NLTK’s tokenization is used to segment commentary into individual sentences, assigning each one to different AI voice profiles for a more dynamic interaction.
  • Wav Export: The finalized audio sequence is exported as .wav files, optimized for transmission using fm_transmitter.

Raspberry Pi Integration

  • fm_transmitter: The Raspberry Pi uses this software to broadcast the .wav files over FM radio. Once the audio is generated, it is transmitted on 97.5 FM, reaching a radius of approximately 200 feet.

Challenges we ran into

  • Audio Syncing and Crossfades: Synchronizing song transitions with AI-generated commentary required precise timing and audio manipulation.
  • Voice Alternation: Ensuring that the AI DJ chatter alternated seamlessly between personalities without repetition or awkward pauses involved using sentence tokenization and careful voice assignment.
  • FM Broadcast Quality: Configuring the Raspberry Pi’s FM transmission and optimizing signal quality for a clear broadcast within a limited range was technically difficult.

Accomplishments that we're proud of

  • Natural DJ Commentary: The AI-generated dialogue between DJ personalities is humorous and spontaneous, really selling the radio experience.
  • Smooth Transitions: Audio transitions between songs and DJ chatter are seamless, thanks to sophisticated crossfade and overlay techniques.

What we learned

  • Advanced Audio Manipulation: Mastered Pydub’s functionalities for slicing, layering, and crossfading audio to create a professional-quality radio experience.
  • FM Broadcasting: Learnt real-time FM broadcasting, integrating it with audio generation on a Raspberry Pi.
  • AI Voice Generation: Practiced using AI voices to dynamically generate engaging and natural-sounding radio content.

What's next for DJ3000

  • Song Metadata Announcements: Implement AI-generated song metadata announcements so listeners know the current track and what’s coming up next.
  • Real-time Playlist Editing: Add the ability to modify playlists via a web interface, allowing live updates to the playlist during broadcasts.

Built With

  • Python: Core language for audio generation and processing.
  • Pydub: Used for complex audio manipulation and layering.
  • ElevenLabs API: To generate natural-sounding AI voice commentary.
  • NLTK: Used for sentence tokenization and voice alternation in DJ chatter.
  • fm_transmitter: Software for broadcasting .wav files over FM radio.
  • Raspberry Pi: The hardware used for running the FM broadcast.

Try it out

Built With

Share this project:

Updates