| --- |
| 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> |
|
|
| [](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 |
| [](https://huggingface.co/spaces/fabiogra/moseca/discussions?docker=true) |
| in just one click. |
|
|
| You can also speed up the music separation process by [](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 [](https://github.com/fabiogra/moseca). |
| - If you have found an issue or have a suggestion to improve Moseca, you can open an [](https://github.com/fabiogra/moseca/issues/new) |
| - Enjoy Moseca? [](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 [](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 |
| [](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. |
|
|