my_moseca / README.md
Fabio Grasso
feat: add link to colab in about and readme (#4)
65cf14f unverified
---
title: Moseca
emoji: 🎤🎸🥁🎹
colorFrom: yellow
colorTo: purple
sdk: docker
app_port: 7860
models: ["https://huggingface.co/fabiogra/baseline_vocal_remover"]
tags: ["audio", "music", "vocal-removal", "karaoke", "music-separation", "music-source-separation"]
pinned: true
---
<p align="center">
<img src="img/logo_moseca.png" alt="logo" width="70" />
</p>
<h2 align="center">Moseca</h1>
<p align="center">Music Source Separation & Karaoke</p>
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1ODoK3VXajprNbskqy7G8P1h-Zom92TMA?usp=sharing)
<a href="https://huggingface.co/spaces/fabiogra/moseca">
<img src="https://img.shields.io/badge/🤗%20Hugging%20Face-Spaces-blue"
alt="Hugging Face Spaces"></a>
<a href="https://huggingface.co/spaces/fabiogra/moseca/discussions?docker=true">
<img src="https://img.shields.io/badge/-Docker%20Image-blue?logo=docker&labelColor=white"
alt="Docker"></a><a href="https://www.buymeacoffee.com/fabiogra">
<img src="https://img.shields.io/badge/Buy%20me%20a%20coffee--yellow.svg?logo=buy-me-a-coffee&logoColor=orange&style=social"
alt="Buy me a coffee"></a>
---
<p align="center">
<img src="https://i.imgur.com/QoSd3Fg.gif" alt="Demo Moseca"/>
</p>
- [Setup](#setup)
- [Local environment](#local-environment)
- [Docker](#docker)
- [(Optional) Preprocess samples](#optional-preprocess-samples)
- [About](#about)
- [High-Quality Stem Separation](#high-quality-stem-separation)
- [Advanced AI Algorithms](#advanced-ai-algorithms)
- [Karaoke Fun](#karaoke-fun)
- [Easy Deployment](#easy-deployment)
- [Open-Source and Free](#open-source-and-free)
- [Support](#support)
- [FAQs](#faqs)
- [What is Moseca?](#what-is-moseca)
- [Are there any limitations?](#are-there-any-limitations)
- [How does Moseca work?](#how-does-moseca-work)
- [How do I use Moseca?](#how-do-i-use-moseca)
- [Where can I find the code for Moseca?](#where-can-i-find-the-code-for-moseca)
- [How can I get in touch with you?](#how-can-i-get-in-touch-with-you)
- [Disclaimer](#disclaimer)
---
## Setup
### Local environment
Create a new environment with Python 3.10 and install the requirements:
```bash
pip install -r requirements.txt
```
set the `PYTHONPATH` to the root folder:
```bash
export PYTHONPATH=path/to/moseca
```
download the vocal remover model:
```bash
wget --progress=bar:force:noscroll https://huggingface.co/fabiogra/baseline_vocal_remover/resolve/main/baseline.pth
```
then run the app with:
```bash
streamlit run app/header.py
```
### Docker
You can also run the app with Docker:
```bash
docker build -t moseca .
docker run -it --rm -p 7860:7860 $(DOCKER_IMAGE_NAME)
```
or pull the image from Hugging Face Spaces:
```bash
docker run -it -p 7860:7860 --platform=linux/amd64 \
registry.hf.space/fabiogra-moseca:latest
```
You can set the following environment variables to limit the resources used by the app:
- ENV_LIMITATION=true
- LIMIT_CPU=true
### (Optional) Preprocess samples
If you want to preprocess the samples used in the demo, you need to set the env variable `PREPARE_SAMPLES=true` as a secret (create the file `run/secrets/PREPARE_SAMPLES` with `true` value inside).
If you run locally you also need to move the files inside `scripts` to the root folder and run `prepare_samples.sh`.
```
cp scripts/ .
chmod +x prepare_samples.sh
python prepare_samples.sh
```
---
## About
Welcome to Moseca, your personal web application designed to redefine your music experience.
Whether you're a musician looking to remix your favorite songs, a karaoke
enthusiast, or a music lover wanting to dive deeper into your favorite tracks,
Moseca is for you.
<br>
### High-Quality Stem Separation
<img title="High-Quality Stem Separation" src="https://i.imgur.com/l7H8YWL.png" width="250" ></img>
<br>
Separate up to 6 stems including 🗣voice, 🥁drums, 🔉bass, 🎸guitar,
🎹piano (beta), and 🎶 others.
<br>
### Advanced AI Algorithms
<img title="Advanced AI Algorithms" src="https://i.imgur.com/I8Pvdav.png" width="250" ></img>
<br>
Moseca utilizes state-of-the-art AI technology to extract voice or music from
your original songs accurately.
<br>
### Karaoke Fun
<img title="Karaoke Fun" src="https://i.imgur.com/nsn3JGV.png" width="250" ></img>
<br>
Engage with your favorite tunes in a whole new way!
Moseca offers an immersive online karaoke experience, allowing you to search
for any song on YouTube and remove the vocals online.
Enjoy singing along with high-quality instrumentals at the comfort of your home.
<br>
### Easy Deployment
With Moseca, you can deploy your personal Moseca app in the
<a href="https://huggingface.co/spaces/fabiogra/moseca?duplicate=true">
<img src="https://img.shields.io/badge/🤗%20Hugging%20Face-Spaces-blue"
alt="Hugging Face Spaces"></a> or locally with
[![Docker Call](https://img.shields.io/badge/-Docker%20Image-blue?logo=docker&labelColor=white)](https://huggingface.co/spaces/fabiogra/moseca/discussions?docker=true)
in just one click.
You can also speed up the music separation process by [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1ODoK3VXajprNbskqy7G8P1h-Zom92TMA?usp=sharing) with GPU support.
<br>
### Open-Source and Free
Moseca is the free and open-source alternative to lalal.ai, splitter.ai or media.io vocal remover.
You can modify, distribute, and use it free of charge. I believe in the power of community
collaboration and encourage users to contribute to our source code, making Moseca better with
each update.
<br>
### Support
- Show your support by giving a star to the GitHub repository [![GitHub stars](https://img.shields.io/github/stars/fabiogra/moseca.svg?style=social&label=Star)](https://github.com/fabiogra/moseca).
- If you have found an issue or have a suggestion to improve Moseca, you can open an [![GitHub issues](https://img.shields.io/github/issues/fabiogra/moseca.svg)](https://github.com/fabiogra/moseca/issues/new)
- Enjoy Moseca? [![Buymeacoffee](https://img.shields.io/badge/Buy%20me%20a%20coffee--yellow.svg?logo=buy-me-a-coffee&logoColor=orange&style=social)](https://www.buymeacoffee.com/fabiogra)
------
## FAQs
### What is Moseca?
Moseca is an open-source web app that utilizes advanced AI technology to separate vocals and
instrumentals from music tracks. It also provides an online karaoke experience by allowing you
to search for any song on YouTube and remove the vocals.
### Are there any limitations?
Yes, in this environment there are some limitations regarding lenght processing
and CPU usage to allow a smooth experience for all users.
<b>If you want to <u>remove these limitations</u> you can deploy a Moseca app in your personal
environment like in the <a href="https://huggingface.co/spaces/fabiogra/moseca?duplicate=true"><img src="https://img.shields.io/badge/🤗%20Hugging%20Face-Spaces-blue" alt="Hugging Face Spaces"></a> or locally with [![Docker Call](https://img.shields.io/badge/-Docker%20Image-blue?logo=docker&labelColor=white)](https://huggingface.co/spaces/fabiogra/moseca/discussions?docker=true)</b>
### How does Moseca work?
Moseca utilizes the Hybrid Spectrogram and Waveform Source Separation ([DEMUCS](https://github.com/facebookresearch/demucs)) model from Facebook. For fast karaoke vocal removal, Moseca uses the AI vocal remover developed by [tsurumeso](https://github.com/tsurumeso/vocal-remover).
### How do I use Moseca?
1. Upload your file: choose your song and upload it to Moseca. It supports
a wide range of music formats for your convenience.
2. Choose separation mode: opt for voice only, 4-stem or 6-stem separation
depending on your requirement.
3. Let AI do its magic: Moseca’s advanced AI will work to separate vocals
from music in a matter of minutes, giving you high-quality, separated audio tracks.
4. Download and enjoy: preview and download your separated audio tracks.
Now you can enjoy them anytime, anywhere!
### Where can I find the code for Moseca?
The code for Moseca is readily available on
[GitHub](https://github.com/fabiogra/moseca) and
[Hugging Face](https://huggingface.co/spaces/fabiogra/moseca).
### How can I get in touch with you?
For any questions or feedback, feel free to contact me on
[![Twitter](https://badgen.net/badge/icon/twitter?icon=twitter&label)](https://twitter.com/grsFabio)
or [LinkedIn](https://www.linkedin.com/in/fabio-grasso/en).
------
## Disclaimer
Moseca is designed to separate vocals and instruments from copyrighted music for
legally permissible purposes, such as learning, practicing, research, or other non-commercial
activities that fall within the scope of fair use or exceptions to copyright. As a user, you are
responsible for ensuring that your use of separated audio tracks complies with the legal
requirements in your jurisdiction.