ParodyAI is an AI-powered application that transforms any song into a hilarious parody. It generates parody lyrics, synthesizes vocals, and overlays them on the instrumental track to create a complete parody audio file. Created by Tarun Patanjali, Abhishek Shrestha, Satvik Agarwal, and Anish Palley
-
Generate Parody Lyrics
- AI generates clever and funny parody lyrics while maintaining the rhythm and rhyme of the original song.
-
Text-to-Singing AI
- Converts parody lyrics into realistic vocals using AI-powered voice synthesis.
-
Instrumental and Vocal Mixing
- Overlays generated vocals on the instrumental track to produce a complete parody song.
-
Customizable Voices and Speed
- Choose from multiple AI voices and adjust playback speed for a personalized parody.
-
Web Interface
- User-friendly web interface for generating and downloading parody songs.
-
Input Song and Parody Theme
- Provide the original song title and the theme for the parody.
-
Generate Parody Lyrics
- The app fetches the original lyrics and generates parody lyrics using OpenAI's GPT model.
-
Download Instrumental
- Extract the instrumental track using tools like
yt-dlporDemucs.
- Extract the instrumental track using tools like
-
Synthesize Vocals
- Use Edge TTS to generate vocals from the parody lyrics.
-
Mix and Export
- Combine vocals and instrumental to create the final parody audio file.
-
Clone the repository:
git clone https://github.com/anishpalley/ParodyAI.git cd ParodyAI -
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.envfile with the following keys:GENIUS_API_TOKEN=<your_genius_api_token> OPENAI_API_KEY=<your_openai_api_key>
- Create a
-
Run the Flask server:
python server.py
-
Open the app in your browser at
http://127.0.0.1:5000.
- Open the app in your browser.
- Enter the song title, parody theme, voice, and speed.
- Click "Generate Parody" to create and download your parody song.
-
Generate Parody:
Endpoint:/generate_parody
Method:POST
Payload:{ "song_name": "Song Title", "topic": "Parody Theme", "voice": "Voice Option", "speed": "normal | slow | fast" }Response:
- On success:
{ "parody_lyrics": "Generated parody lyrics...", "audio_file_url": "/download_audio" } - On failure:
{ "error": "Error message" }
- On success:
-
Download Audio:
Endpoint:/download_audio
Method:GET
Response:- On success: Returns the generated MP3 file.
- On failure:
{ "error": "Audio file not found" }
- Flask: Backend framework for the web interface.
- OpenAI GPT: Generates parody lyrics.
- Edge TTS: Text-to-speech synthesis.
- Pydub: Audio processing and mixing.
- Demucs: Instrumental and vocal separation.
- yt-dlp: Downloads audio from YouTube.
- Genius API: Fetches song lyrics.
RecordHacks/
├── parody_generator.py # Generates parody lyrics
├── server.py # Flask server for the web interface
├── main.py # Handles audio separation and mixing
├── edge.py # Text-to-speech synthesis
├── download_song_as_mp3.py # Downloads songs from YouTube
├── templates/ # HTML templates for the web interface
├── static/ # CSS and JS files for the web interface
├── requirements.txt # Python dependencies
├── README.md # Project documentation
-
Input:
- Song: "Never Gonna Give You Up"
- Theme: "Snacks and Yoga"
-
Output:
- Parody Lyrics:
We're no strangers to snacks, You know the crunch and so do I... - Parody Audio: Downloadable MP3 file.
- Parody Lyrics:
Contributions are welcome! Feel free to submit issues or pull requests to improve the project.
This project is licensed under the MIT License.
- OpenAI for GPT models.
- Demucs for audio separation.
- Genius API for fetching song lyrics.