Skip to content

m-thenot/ExtractVocal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

ExtractVocal

A web application that separates vocals from music using AI-powered audio source separation. Upload audio files or provide YouTube URLs to extract clean vocal and accompaniment tracks.

Features

  • File Upload: Upload MP3, WAV, or other audio files directly
  • YouTube Integration: Extract audio from YouTube videos by URL
  • AI-Powered Separation: Uses Spleeter for high-quality vocal/accompaniment separation
  • Dual Output: Download both vocal and accompaniment tracks separately
  • Modern UI: React-based frontend with internationalization support

Tech Stack

Backend:

  • Python 3
  • Flask (REST API)
  • Spleeter (audio source separation)
  • youtube-dl (YouTube audio extraction)

Frontend:

  • React
  • Redux (state management)
  • Axios (HTTP client)
  • i18next (internationalization)

Prerequisites

  • Python 3.6+
  • Node.js 12+
  • FFmpeg (required by Spleeter)

Installation

Backend Setup

  1. Navigate to the backend directory:
cd back-end
  1. Install Python dependencies:
pip install -r requirements.txt
  1. Install FFmpeg if not already installed:
# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt-get install ffmpeg

# Windows
# Download from https://ffmpeg.org/download.html

Frontend Setup

  1. Navigate to the frontend directory:
cd front-end
  1. Install Node.js dependencies:
npm install

Usage

Starting the Backend

cd back-end
python test-spleeter.py

The Flask server will start on http://0.0.0.0:5000

Starting the Frontend

cd front-end
npm start

The React app will start on http://localhost:3000

API Endpoints

  • POST /upload - Upload an audio file for vocal separation
  • POST /youtubeToMp3 - Provide a YouTube URL to extract and separate vocals
  • GET /accompaniment/<timestamp> - Download the accompaniment track
  • GET /title - Get the title of the processed audio

How It Works

  1. User uploads an audio file or provides a YouTube URL
  2. Backend downloads/receives the audio file
  3. Spleeter processes the audio using a pre-trained 2-stem model
  4. The audio is separated into two tracks: vocals and accompaniment
  5. Both tracks are made available for download

Project Structure

ExtractVocal/
├── back-end/
│   ├── pretrained_models/    # Spleeter models
│   ├── test-spleeter.py      # Flask API server
│   └── requirements.txt      # Python dependencies
├── front-end/
│   ├── public/               # Static assets
│   ├── src/                  # React components
│   └── package.json          # Node.js dependencies
└── README.md

License

This project uses Spleeter, which is licensed under the MIT License.

Credits

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors