Skip to content

🎧 A full-stack Shazam-like music recognition app that identifies songs from short audio clips using FFT-based fingerprinting and real-time matching. (Kindly find the fronted part attached below)

Notifications You must be signed in to change notification settings

rakshitnarang018/Audiora01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎢 AUDIORA: Music Recognition Application

Shazam-like Audio Identification Tool

πŸ“Œ Introduction

AUDIORA is an advanced music recognition system designed to identify songs from short audio clips. Inspired by platforms like Shazam, it leverages cutting-edge audio fingerprinting, real-time processing, and a full-stack web interface to bridge the gap between user experience and embedded audio recognition technology.

Built with a modern React frontend, a powerful Go-based backend, and a Python audio engine, AUDIORA provides a scalable and responsive solution for music lovers and developers alike.

🧠 Project Overview

AUDIORA converts recorded audio into unique fingerprints, matches them against a fingerprint database, and returns the matching song metadata to the user β€” all through a user-friendly web interface. It supports live recordings, precise fingerprinting, and fast identification optimized for cloud-scale deployment.

✨ Features

  • 🎀 Real-time audio capture from browser
  • 🎼 Audio fingerprinting using FFT-based frequency analysis
  • πŸ”Ž Accurate song matching via Locality-Sensitive Hashing (LSH)
  • 🧩 Modular backend in Go + Python
  • 🌐 Modern, responsive frontend using React and Tailwind CSS
  • πŸ§ͺ Basic testing using Postman, MongoDB Compass, and logs
  • ☁️ Scalable and containerized using Docker

🧰 Technologies Used

React Tailwind CSS Go Python
Flask Librosa MongoDB Docker
Layer Tools & Languages
Frontend React.js, Tailwind CSS, Web Audio API
Backend (API) Golang (Go), Flask (Python bridge)
Audio Engine Python, Librosa, NumPy, SciPy, FFmpeg
Database MongoDB
Containerization Docker
Testing Tools Postman, MongoDB Compass

πŸ“ Project Structure

AUDIORA/
β”œβ”€β”€ Backend/
β”‚ β”œβ”€β”€ audio_engine/           # Python audio fingerprinting logic
β”‚ β”œβ”€β”€ app.go                  # Go server API
β”‚ └── flask_bridge.py         # Bridge to Python engine
β”œβ”€β”€ Frontend/
β”‚ β”œβ”€β”€ src/                    # React components
β”‚ └── index.html
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ database/                 # MongoDB fingerprint collections
β”œβ”€β”€ tests/                    # Postman/API tests
└── README.md

πŸ› οΈ Recognition Workflow

  1. Record: User records audio via browser.
  2. Preprocess: Audio cleaned, converted to mono WAV using FFmpeg.
  3. Fingerprinting: Spectral peaks extracted using FFT; hashes generated.
  4. Match: Fingerprints matched against MongoDB using LSH.
  5. Result: Matching song displayed with title, artist, and album.

πŸš€ How to Run

πŸ“₯ Clone Repo

  git clone https://github.com/rakshitnarang018/Audiora01
  cd Audiora01

🧠 Backend Setup

  1. Set up Python environment:
  python -m venv .venv
  source .venv/bin/activate      # On Linux/Mac
  .venv\Scripts\activate         # On Windows
  1. Install Python dependencies:
  pip install -r requirements.txt
  1. Run the Flask backend:
  cd Backend
  python app.py

Flask server will run at: http://localhost:5000

🎨 Frontend Setup

You can either run the frontend with npm or use Docker Compose:

  cd Frontend
  npm install
  npm run dev

Visit http://localhost:3000 in your browser to use the app.

🐳 Docker Deployment

AUDIORA uses Docker Compose to containerize and serve the React frontend, while the backend is run manually on your local machine.

πŸ“ Prerequisites

  • Docker & Docker Compose installed: Get Docker

πŸš€ Build and Start the Frontend

From the root of your project (where docker-compose.yml is present or create it as shown below):

  docker-compose up --build

πŸ§ͺ Testing

Basic testing was performed using:

  • βœ… Postman – for API request testing
  • βœ… MongoDB Compass – to inspect stored fingerprints
  • βœ… Temporary audio logs – for audio integrity validation
  • βœ… Manual logs – to verify backend/frontend flow

πŸ–ΌοΈ UI Snapshots

  • 🎧 Landing Page – β€œWelcome to AUDIORA”
  • 🟒 Recording Animation – β€œListening for your tune...”
  • πŸ“Š Analyzing Page – β€œMatching your music...”
  • πŸŽ‰ Result Page – Displays identified song details

πŸ”­ Future Enhancements

  • πŸ” Live-stream music detection
  • 🌍 Multilingual/global music database
  • ⚑ Edge computing for ultra-low latency
  • πŸ”’ Audio encryption and user profile sync
  • πŸ€– AI-based music genre or mood tagging

πŸ“š Acknowledgments

  • Librosa, SciPy, FFmpeg, Flask, MongoDB
  • Shazam – for inspiring the concept
  • React + Tailwind community
  • Python and Go open-source ecosystems

About

🎧 A full-stack Shazam-like music recognition app that identifies songs from short audio clips using FFT-based fingerprinting and real-time matching. (Kindly find the fronted part attached below)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •