GroovyMorningFM is a radio app that allows users to customize their chosen station’s schedule by swapping out specific segments (whether live or on-demand for others).
For instance, a user can replace a segment airing at 7:50 AM with any other segment, regardless of whether it originates from the same station.
Segment start times are identified by the RLAC (Radio Live à la Carte) system, which employs artificial intelligence to accurately detect the beginning and end of programs, thereby accounting for the unpredictability of live broadcasting.
It consists of a Java backend for recording, a Python service for AI-powered segmentation (using DeepSeek or jingle detection), and mobile applications (Android/iOS) for a seamless user experience.

Research and development phase to find the best solution for detecting segments within the live stream with IA.

The project is divided into several modules:
Android App (5.GMFM_Android_App): A modern Jetpack Compose application to manage your chronicles and listen to them.

The easiest way to run the entire system is using Docker Compose.
git clone https://github.com/eglantinefonrose/GroovyMorning_RLAC.git
cd GroovyMorning
cp .env.example .env
Edit .env and add your DEEPSEEK_API_KEY.
docker compose up
This will start:
8000.8001.If you want to test simulation mode and see the live splitting on a simulated radio stream as if it were live, use
docker compose --profile simu up
http://192.168.1.15:8000) (if you are on an Android phone emulator, use http://10.0.2.2:8000)We have a complete end-to-end (E2E) testing pipeline to validate the workflow.
docker compose -f docker-compose.e2e.yml up --build --abort-on-container-exit
See TESTING.md for more details.
To view the project in greater detail, take a look at the series of articles at this link (french version)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Feel free to open issues or submit pull requests.