- Chat GPT
- V0(by vercel)
- YouTube
- Shadcn documentation
- GeekForGeeks
- MillionSongDataset
- Google Developer Console
This project is an Ai/Ml - web based project where one can find similar songs based on the track/song they uploaded. File can be of the format of .mp3/.wav. Based on that top 5 results will be shown, along with their youtube link if available(api taken from YouTube Data API v3).
Check the video for the brief of the project without running here -> Link ⭐
- Upload: Users can uplod their track(.mp3/.wav) format.
- View: Users can see the top 5 similar track along with the youtube link(if available).
- Responsive Design: Optimized for various screen sizes, providing a seamless experience on both mobile and desktop devices.
- Frontend: React.js+vite
- Backend: python
- Api: Google's (for youtube api)
- Styling: Shadcn Ui and custom Tailwind CSS for responsive design
- Version Control: Git & GitHub
Ensure you have the following installed on your machine:
- Node.js (v14 or later)
- npm (Node Package Manager)
- Python(v3)
git clone https://github.com/Neel-max-cpu/Aiml-project-Finding-similar-song.git
Change into the project directory:
cd frontend
cd backend
Run the following command to install the necessary dependencies for the frontend:
npm install
For the backend you need to check and install the dependencies directly or can do it from requirements.txt
pip install -r requirements.txt
Important to, download the dataset you can go to MillionSongData's website Link here. I have used the million song subset(1.8gb) the full data set if of 280gb. Download it and keep the file in the public folder of the backend.
Create the .env file, just paste your api(can be fetched from here Link). Create an account and enable YouTube Data API v3 and create an api key. create an .env file and write your youtube api key
VITE_API_KEY="your api key"
After setting up the environment variables, you can start the application.
Before running the backend build/precompute your faiss index. Navigate to the corefolder then build_faiss_index.py run that command or directly run the command from the backend folder, wait for it as it can take sometime!
cd backend\app\core
python build_faiss_index.py
or
python app/core/build_faiss_index.py
Navigate to the server directory and start the backend server, set it to virtual environment and start the server:
cd backend
.\venv\Scripts\activate
uvicorn app.main:app --reload
In a new terminal window, navigate to the client directory and start the React application:
cd frontend
npm run dev
Open your web browser and go to http://localhost:5173/ to access the App.