Infinite Radio: Where Music and Podcasts Are Crafted by Artificial Intelligence
Tags: ai, music, podcast, opensource
Published: 2023-08-22 11:09:41

Hello to all AI enthusiasts, neural network aficionados, music lovers, and tech-savvy explorers! I aim to introduce you to the realm of the [«Infinite Neural Radio»](https://radio.wladradchenko.ru/eng) delving into **how it operates under the hood**. The web service allows you to listen to neural network music or internet radio points and enjoy news from Russia, which is generated by analyzing the latest news headlines.

Wondering why it's «Infinite»? Because lofi music and podcasts can be generated endlessly by neural networks.

The inspiration behind this project stemmed from my disappointment with my favorite music app. As the app gradually became less convenient for me, I felt the need to create something of my own within the realm of lofi music—a genre that aids concentration during programming or serves as a relaxing backdrop for evenings. The application features quotes generated by neural networks, accompanied by pixel-style GIF animations, also partially generated by neural networks. If podcasts aren't your cup of tea, you can disable them and opt for neural music alone, or even tune into radio stations curated by humans. **The core essence of the app, radio, and podcast? Immerse, relax, elevate, and just let go.**

{% embed https://youtu.be/7FqLMAgzDVs %}

**Technical Details:**

**Backend:** Developed in Go, it serves two primary purposes:

- Providing a unique and ever-changing list of lofi music and podcast recommendations with each page refresh.
- Monitoring connections to various radio stations, allowing users to switch between music generated by neural networks and traditional radio broadcasts.

**User Interface:** Crafted using JavaScript, it interacts with the server-side through AJAX requests. I've also integrated Progressive Web App (PWA) features into the project. This approach enables users to install the application directly from the website and seamlessly use it in the background as a music player. Dive into the code with me? Hit that follow on [GitHub](https://github.com/wladradchenko) or join the [open-source project](https://github.com/wladradchenko/radio.wladradchenko.ru) to see backend and frontend code. **Let's make neural lofi waves together!**

**Music Creation:** I employed the open-source project [Audiocraft](https://github.com/facebookresearch/audiocraft) to produce lo-fi tracks. Based on textual prompts that define the music's mood—whether it's work, rain, or evening relaxation—I used demo/musicgen_app.py and an extensive model to generate music from text requests.

**Podcast Creation:** Here, two open-source projects played a vital role:

- **[Wunjo AI](https://github.com/wladradchenko/wunjo.wladradchenko.ru):** It converts text to speech and synthesizes deepfake videos. I trained the model using samples of LJ Speech Dataset for English voice. I created a tutorial video on training the model and preparing training data using Wunjo AI on [YouTube video](https://youtu.be/KY7mdB9rXbw).
- **[text-generation-webui](https://github.com/oobabooga/text-generation-webui):** Coupled with the Llama model, it creates amusing news articles from analysis Russia news headlines while maintaining an air of authenticity. Using the base Llama 33B model from Hugging Face, I further trained «Lora» on humorous news content. The results can be judged on [radio.wladradchenko.ru](https://radio.wladradchenko.ru/eng).

**Quotes also hold a place within the application.** While English quotes are entirely from ChatGPT. 

Additionally, I crafted several pixel GIF images using [AUTOMATIC1111 Stable Diffusion](https://github.com/AUTOMATIC1111/stable-diffusion-webui), obtaining necessary models from [CivitAI](https://civitai.com).

So, as it turns out, this radio is indeed crafted by neural networks.

**I hope you found this article engaging, and it sparks your interest in the world of Infinite Neural Radio or inspires you to create something even greater. Until next time!**