{ "cells": [ { "cell_type": "code", "source": [ "#@title # Установка (3 мин без претрейнов)\n", "%cd /content\n", "\n", "from google.colab import files\n", "import zipfile\n", "import os\n", "\n", "# Загружаем ZIP-файл с устройства\n", "online = True # @param {\"type\":\"boolean\"}\n", "if not online:\n", " uploaded = files.upload()\n", "else:\n", " uploaded = \"mvsepless.zip\"\n", " !wget -O {uploaded} https://huggingface.co/noblebarkrr/mvsepless_updates_zip/resolve/main/mvsepless_alpha_2_ru.zip?download=true\n", "\n", "# Проверяем, что файл был загружен\n", "if not uploaded:\n", " print(\"Не был загружен ни один файл.\")\n", "else:\n", " if not online:\n", " # Получаем имя загруженного файла (предполагаем, что загружен только один файл)\n", " zip_filename = next(iter(uploaded))\n", " else:\n", " zip_filename = uploaded\n", " # Путь для распаковки\n", " extract_to = '/content/mvsepless'\n", "\n", " # Создаем папку, если она не существует\n", " os.makedirs(extract_to, exist_ok=True)\n", "\n", " # Распаковываем архив с перезаписью существующих файлов\n", " with zipfile.ZipFile(zip_filename, 'r') as zip_ref:\n", " zip_ref.extractall(extract_to)\n", "\n", " print(f\"Файл {zip_filename} был успешно распакован в {extract_to} с перезаписью существующих файлов.\")\n", "\n", "!cd mvsepless && pip install -r requirements.txt\n", "!pip install audio-separator[gpu]==0.32.0\n", "!wget -O mvsepless/models/medley_vox/pretrained_models/xlsr_53_56k.pt https://dl.fbaipublicfiles.com/fairseq/wav2vec/xlsr_53_56k.pt\n", "!cd mvsepless && python download_models.py" ], "metadata": { "cellView": "form", "id": "9DpDNzJllHCJ", "colab": { "base_uri": "https://localhost:8080/" }, "outputId": "615f1b2d-48fb-4675-c94c-9ce0960135fd" }, "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content\n", "--2025-06-03 11:40:42-- https://huggingface.co/noblebarkrr/mvsepless_updates_zip/resolve/main/mvsepless_alpha_2_ru.zip?download=true\n", "Resolving huggingface.co (huggingface.co)... 13.35.202.34, 13.35.202.40, 13.35.202.121, ...\n", "Connecting to huggingface.co (huggingface.co)|13.35.202.34|:443... connected.\n", "HTTP request sent, awaiting response... 302 Found\n", "Location: https://cdn-lfs-us-1.hf.co/repos/73/59/7359eecc07125fe5d27b22c3fbd8410831156571ee0e8b37bf38b7bff3648cb5/d55570c15c7dc76509d03c201ec0116a5c6135e374eac8b714b332746e0ecd5e?response-content-disposition=attachment%3B+filename*%3DUTF-8%27%27mvsepless_alpha_2_ru.zip%3B+filename%3D%22mvsepless_alpha_2_ru.zip%22%3B&response-content-type=application%2Fzip&Expires=1748954442&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc0ODk1NDQ0Mn19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2RuLWxmcy11cy0xLmhmLmNvL3JlcG9zLzczLzU5LzczNTllZWNjMDcxMjVmZTVkMjdiMjJjM2ZiZDg0MTA4MzExNTY1NzFlZTBlOGIzN2JmMzhiN2JmZjM2NDhjYjUvZDU1NTcwYzE1YzdkYzc2NTA5ZDAzYzIwMWVjMDExNmE1YzYxMzVlMzc0ZWFjOGI3MTRiMzMyNzQ2ZTBlY2Q1ZT9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPSomcmVzcG9uc2UtY29udGVudC10eXBlPSoifV19&Signature=Z28T2ki2K34gRyEOcgmxda1uOk-GJZLEMwWDZwOQH25kIEdd4-Vr4V6OlLJ70jQDbwl8jmw0XhcLBwDfO7zkSpOSX6i-P5%7EJYsmMf9WeyG%7EFJgnV%7EscRQWjNS5xUehscr0ukUr3vP7VKchUc-8rdlnFhkeA41lxsC09CmDliFul1k56fbK9t8wjbJCnmoWOMCJW00n9AKV1MK7te6MRhsb2-xOfja08ga08d5LQmZnb58btUxGiEJqMhC2PeHKI0iyjOkF5m%7EIgneH6vVfm4Pn3-v-nC3nRsXFV80TMFQbT-NTR8epkw%7EigGWq2xMT-K2UTIscrJ7Iut2PJZJ4fr-w__&Key-Pair-Id=K24J24Z295AEI9 [following]\n", "--2025-06-03 11:40:42-- https://cdn-lfs-us-1.hf.co/repos/73/59/7359eecc07125fe5d27b22c3fbd8410831156571ee0e8b37bf38b7bff3648cb5/d55570c15c7dc76509d03c201ec0116a5c6135e374eac8b714b332746e0ecd5e?response-content-disposition=attachment%3B+filename*%3DUTF-8%27%27mvsepless_alpha_2_ru.zip%3B+filename%3D%22mvsepless_alpha_2_ru.zip%22%3B&response-content-type=application%2Fzip&Expires=1748954442&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc0ODk1NDQ0Mn19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2RuLWxmcy11cy0xLmhmLmNvL3JlcG9zLzczLzU5LzczNTllZWNjMDcxMjVmZTVkMjdiMjJjM2ZiZDg0MTA4MzExNTY1NzFlZTBlOGIzN2JmMzhiN2JmZjM2NDhjYjUvZDU1NTcwYzE1YzdkYzc2NTA5ZDAzYzIwMWVjMDExNmE1YzYxMzVlMzc0ZWFjOGI3MTRiMzMyNzQ2ZTBlY2Q1ZT9yZXNwb25zZS1jb250ZW50LWRpc3Bvc2l0aW9uPSomcmVzcG9uc2UtY29udGVudC10eXBlPSoifV19&Signature=Z28T2ki2K34gRyEOcgmxda1uOk-GJZLEMwWDZwOQH25kIEdd4-Vr4V6OlLJ70jQDbwl8jmw0XhcLBwDfO7zkSpOSX6i-P5%7EJYsmMf9WeyG%7EFJgnV%7EscRQWjNS5xUehscr0ukUr3vP7VKchUc-8rdlnFhkeA41lxsC09CmDliFul1k56fbK9t8wjbJCnmoWOMCJW00n9AKV1MK7te6MRhsb2-xOfja08ga08d5LQmZnb58btUxGiEJqMhC2PeHKI0iyjOkF5m%7EIgneH6vVfm4Pn3-v-nC3nRsXFV80TMFQbT-NTR8epkw%7EigGWq2xMT-K2UTIscrJ7Iut2PJZJ4fr-w__&Key-Pair-Id=K24J24Z295AEI9\n", "Resolving cdn-lfs-us-1.hf.co (cdn-lfs-us-1.hf.co)... 13.33.45.103, 13.33.45.80, 13.33.45.64, ...\n", "Connecting to cdn-lfs-us-1.hf.co (cdn-lfs-us-1.hf.co)|13.33.45.103|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 24353846 (23M) [application/zip]\n", "Saving to: ‘mvsepless.zip’\n", "\n", "mvsepless.zip 100%[===================>] 23.23M --.-KB/s in 0.1s \n", "\n", "2025-06-03 11:40:42 (228 MB/s) - ‘mvsepless.zip’ saved [24353846/24353846]\n", "\n", "Файл mvsepless.zip был успешно распакован в /content/mvsepless с перезаписью существующих файлов.\n", "Processing ./fixed/fairseq_fixed-0.13.0-cp311-cp311-linux_x86_64.whl (from -r requirements.txt (line 36))\n", "Requirement already satisfied: torch==2.6.0 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 2)) (2.6.0+cu124)\n", "Requirement already satisfied: torchvision==0.21.0 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 3)) (0.21.0+cu124)\n", "Requirement already satisfied: torchaudio==2.6.0 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 4)) (2.6.0+cu124)\n", "Collecting torchcrepe==0.0.23 (from -r requirements.txt (line 5))\n", " Downloading torchcrepe-0.0.23-py3-none-any.whl.metadata (7.8 kB)\n", "Requirement already satisfied: numpy==2.0.2 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 6)) (2.0.2)\n", "Requirement already satisfied: pandas==2.2.2 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 7)) (2.2.2)\n", "Requirement already satisfied: scipy==1.15.3 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 8)) (1.15.3)\n", "Collecting librosa==0.9.1 (from -r requirements.txt (line 9))\n", " Downloading librosa-0.9.1-py3-none-any.whl.metadata (6.9 kB)\n", "Collecting matplotlib==3.9.0 (from -r requirements.txt (line 10))\n", " Downloading matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\n", "Requirement already satisfied: tqdm==4.67.1 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 11)) (4.67.1)\n", "Requirement already satisfied: einops==0.8.1 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 12)) (0.8.1)\n", "Requirement already satisfied: protobuf==5.29.4 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 13)) (5.29.4)\n", "Requirement already satisfied: soundfile==0.13.1 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 16)) (0.13.1)\n", "Collecting pydub==0.25.1 (from -r requirements.txt (line 17))\n", " Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n", "Collecting pyloudnorm==0.1.1 (from -r requirements.txt (line 18))\n", " Downloading pyloudnorm-0.1.1-py3-none-any.whl.metadata (5.6 kB)\n", "Collecting praat-parselmouth==0.4.5 (from -r requirements.txt (line 19))\n", " Downloading praat_parselmouth-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.9 kB)\n", "Collecting webrtcvad==2.0.10 (from -r requirements.txt (line 20))\n", " Downloading webrtcvad-2.0.10.tar.gz (66 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.2/66.2 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting edge-tts==7.0.2 (from -r requirements.txt (line 21))\n", " Downloading edge_tts-7.0.2-py3-none-any.whl.metadata (5.5 kB)\n", "Collecting audiomentations==0.24.0 (from -r requirements.txt (line 22))\n", " Downloading audiomentations-0.24.0-py3-none-any.whl.metadata (35 kB)\n", "Collecting pedalboard==0.8.1 (from -r requirements.txt (line 23))\n", " Downloading pedalboard-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (15 kB)\n", "Collecting ffmpeg-python==0.2.0 (from -r requirements.txt (line 24))\n", " Downloading ffmpeg_python-0.2.0-py3-none-any.whl.metadata (1.7 kB)\n", "Collecting faiss-cpu==1.11 (from -r requirements.txt (line 27))\n", " Downloading faiss_cpu-1.11.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (4.8 kB)\n", "Collecting ml_collections==1.1.0 (from -r requirements.txt (line 28))\n", " Downloading ml_collections-1.1.0-py3-none-any.whl.metadata (22 kB)\n", "Requirement already satisfied: timm==1.0.15 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 29)) (1.0.15)\n", "Requirement already satisfied: wandb==0.19.11 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 30)) (0.19.11)\n", "Requirement already satisfied: accelerate==1.7.0 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 31)) (1.7.0)\n", "Collecting bitsandbytes==0.46.0 (from -r requirements.txt (line 32))\n", " Downloading bitsandbytes-0.46.0-py3-none-manylinux_2_24_x86_64.whl.metadata (10 kB)\n", "Collecting tokenizers==0.19 (from -r requirements.txt (line 33))\n", " Downloading tokenizers-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)\n", "Collecting huggingface-hub==0.28.1 (from -r requirements.txt (line 34))\n", " Downloading huggingface_hub-0.28.1-py3-none-any.whl.metadata (13 kB)\n", "Collecting transformers==4.41 (from -r requirements.txt (line 35))\n", " Downloading transformers-4.41.0-py3-none-any.whl.metadata (43 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m43.8/43.8 kB\u001b[0m \u001b[31m3.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting segmentation_models_pytorch==0.5.0 (from -r requirements.txt (line 39))\n", " Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl.metadata (17 kB)\n", "Collecting torchseg==0.0.1a4 (from -r requirements.txt (line 40))\n", " Downloading torchseg-0.0.1a4-py3-none-any.whl.metadata (12 kB)\n", "Collecting demucs==4.0.0 (from -r requirements.txt (line 42))\n", " Downloading demucs-4.0.0.tar.gz (1.2 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m65.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting asteroid==0.7.0 (from -r requirements.txt (line 43))\n", " Downloading asteroid-0.7.0-py3-none-any.whl.metadata (11 kB)\n", "Collecting prodigyopt==1.1.2 (from -r requirements.txt (line 46))\n", " Downloading prodigyopt-1.1.2-py3-none-any.whl.metadata (4.8 kB)\n", "Collecting torch_log_wmse==0.3.0 (from -r requirements.txt (line 47))\n", " Downloading torch_log_wmse-0.3.0-py3-none-any.whl.metadata (7.4 kB)\n", "Collecting rotary_embedding_torch==0.6.5 (from -r requirements.txt (line 48))\n", " Downloading rotary_embedding_torch-0.6.5-py3-none-any.whl.metadata (678 bytes)\n", "Collecting local-attention==1.11.1 (from -r requirements.txt (line 49))\n", " Downloading local_attention-1.11.1-py3-none-any.whl.metadata (907 bytes)\n", "Requirement already satisfied: tenacity==9.1.2 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 52)) (9.1.2)\n", "Collecting gradio==5.31.0 (from -r requirements.txt (line 53))\n", " Downloading gradio-5.31.0-py3-none-any.whl.metadata (16 kB)\n", "Requirement already satisfied: omegaconf==2.3.0 in /usr/local/lib/python3.11/dist-packages (from -r requirements.txt (line 54)) (2.3.0)\n", "Collecting beartype==0.18.5 (from -r requirements.txt (line 55))\n", " Downloading beartype-0.18.5-py3-none-any.whl.metadata (30 kB)\n", "Collecting spafe==0.3.2 (from -r requirements.txt (line 56))\n", " Downloading spafe-0.3.2-py3-none-any.whl.metadata (8.7 kB)\n", "Collecting torch_audiomentations==0.12.0 (from -r requirements.txt (line 57))\n", " Downloading torch_audiomentations-0.12.0-py3-none-any.whl.metadata (15 kB)\n", "Collecting auraloss==0.4.0 (from -r requirements.txt (line 58))\n", " Downloading auraloss-0.4.0-py3-none-any.whl.metadata (8.0 kB)\n", "Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (3.18.0)\n", "Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (4.13.2)\n", "Requirement already satisfied: networkx in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (3.4.2)\n", "Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (3.1.6)\n", "Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (2025.3.2)\n", "Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cublas-cu12==12.4.5.8 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cufft-cu12==11.2.1.3 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-curand-cu12==10.3.5.147 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n", "Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (0.6.2)\n", "Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (2.21.5)\n", "Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (12.4.127)\n", "Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n", " Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n", "Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (3.2.0)\n", "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch==2.6.0->-r requirements.txt (line 2)) (1.13.1)\n", "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.11/dist-packages (from torchvision==0.21.0->-r requirements.txt (line 3)) (11.2.1)\n", "Collecting resampy (from torchcrepe==0.0.23->-r requirements.txt (line 5))\n", " Downloading resampy-0.4.3-py3-none-any.whl.metadata (3.0 kB)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pandas==2.2.2->-r requirements.txt (line 7)) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas==2.2.2->-r requirements.txt (line 7)) (2025.2)\n", "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas==2.2.2->-r requirements.txt (line 7)) (2025.2)\n", "Requirement already satisfied: audioread>=2.1.5 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (3.0.1)\n", "Requirement already satisfied: scikit-learn>=0.19.1 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (1.6.1)\n", "Requirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (1.5.0)\n", "Requirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (4.4.2)\n", "Requirement already satisfied: numba>=0.45.1 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (0.60.0)\n", "Requirement already satisfied: pooch>=1.0 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (1.8.2)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from librosa==0.9.1->-r requirements.txt (line 9)) (24.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib==3.9.0->-r requirements.txt (line 10)) (1.3.2)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib==3.9.0->-r requirements.txt (line 10)) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib==3.9.0->-r requirements.txt (line 10)) (4.58.0)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib==3.9.0->-r requirements.txt (line 10)) (1.4.8)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib==3.9.0->-r requirements.txt (line 10)) (3.2.3)\n", "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.11/dist-packages (from soundfile==0.13.1->-r requirements.txt (line 16)) (1.17.1)\n", "Requirement already satisfied: future>=0.16.0 in /usr/local/lib/python3.11/dist-packages (from pyloudnorm==0.1.1->-r requirements.txt (line 18)) (1.0.0)\n", "Requirement already satisfied: aiohttp<4.0.0,>=3.8.0 in /usr/local/lib/python3.11/dist-packages (from edge-tts==7.0.2->-r requirements.txt (line 21)) (3.11.15)\n", "Requirement already satisfied: certifi>=2023.11.17 in /usr/local/lib/python3.11/dist-packages (from edge-tts==7.0.2->-r requirements.txt (line 21)) (2025.4.26)\n", "Collecting srt<4.0.0,>=3.4.1 (from edge-tts==7.0.2->-r requirements.txt (line 21))\n", " Downloading srt-3.5.3.tar.gz (28 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: tabulate<1.0.0,>=0.4.4 in /usr/local/lib/python3.11/dist-packages (from edge-tts==7.0.2->-r requirements.txt (line 21)) (0.9.0)\n", "Requirement already satisfied: absl-py in /usr/local/lib/python3.11/dist-packages (from ml_collections==1.1.0->-r requirements.txt (line 28)) (1.4.0)\n", "Requirement already satisfied: PyYAML in /usr/local/lib/python3.11/dist-packages (from ml_collections==1.1.0->-r requirements.txt (line 28)) (6.0.2)\n", "Requirement already satisfied: safetensors in /usr/local/lib/python3.11/dist-packages (from timm==1.0.15->-r requirements.txt (line 29)) (0.5.3)\n", "Requirement already satisfied: click!=8.0.0,>=7.1 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (8.2.1)\n", "Requirement already satisfied: docker-pycreds>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (0.4.0)\n", "Requirement already satisfied: gitpython!=3.1.29,>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (3.1.44)\n", "Requirement already satisfied: platformdirs in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (4.3.8)\n", "Requirement already satisfied: psutil>=5.0.0 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (5.9.5)\n", "Requirement already satisfied: pydantic<3 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (2.11.4)\n", "Requirement already satisfied: requests<3,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (2.32.3)\n", "Requirement already satisfied: sentry-sdk>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (2.29.1)\n", "Requirement already satisfied: setproctitle in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (1.3.6)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.11/dist-packages (from wandb==0.19.11->-r requirements.txt (line 30)) (75.2.0)\n", "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.11/dist-packages (from transformers==4.41->-r requirements.txt (line 35)) (2024.11.6)\n", "Collecting dora-search (from demucs==4.0.0->-r requirements.txt (line 42))\n", " Downloading dora_search-0.1.12.tar.gz (87 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m87.1/87.1 kB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "HyxHY762qmyE" }, "source": [ "# NON-CLI" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "18XSjQzyyl5E" }, "outputs": [], "source": [ "# @title Mvsepless & Vbach (напрямую в ячейке)\n", "#@markdown Разделение / замена музыки и голоса\n", "\n", "%cd /content/mvsepless\n", "\n", "import gradio as gr\n", "from multi_infer import theme, mvsepless_non_cli\n", "\n", "with gr.Blocks(title=\"Разделение музыки и голоса\", theme=theme) as demo:\n", " gr.HTML(\"

MVSEPLESS

\")\n", " mvsepless_non_cli(True)\n", " demo.launch(share=True, allowed_paths=[\"/content\"])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "JMZh5sYvoeuq" }, "outputs": [], "source": [ "# @title VbachGen\n", "#@markdown Быстрая генерация сурсов для ИИ-каверов\n", "%cd /content/mvsepless\n", "!python gencover.py" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "VNW0Op_Nsbql" }, "outputs": [], "source": [ "# @title Mvsepless\n", "#@markdown Разделение музыки и голоса\n", "\n", "%cd /content/mvsepless\n", "!python multi_infer.py -gr" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "TmxdFPBXXC-c" }, "outputs": [], "source": [ "# @title Mvsepless & Vbach\n", "#@markdown Разделение / Замена музыки и голоса\n", "\n", "%cd /content/mvsepless\n", "!python multi_infer.py -grvc" ] }, { "cell_type": "markdown", "metadata": { "id": "n3PP3N-spH_0" }, "source": [ "# CLI" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "sOrwMYdj_cuF" }, "outputs": [], "source": [ "# @title Объединить аудио файлы в ансамбль\n", "\n", "import os\n", "import numpy\n", "\n", "%cd /content/mvsepless\n", "\n", "from ensem import ensemble_audio_files\n", "from infer_utils.audio_processing.invert import invert_and_overlay_wav\n", "\n", "\n", "input = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке с результатами моделей\"}\n", "input_orig = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к оригинальному аудио\"}\n", "output = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке сохранения результатов\"}\n", "\n", "type = \"max_fft\" # @param [\"max_fft\",\"min_fft\",\"median_fft\",\"max_wave\",\"avg_fft\"]\n", "\n", "# Создаем выходную директорию, если ее нет\n", "os.makedirs(output, exist_ok=True)\n", "\n", "# Проверяем существование входной директории\n", "if not os.path.exists(input):\n", " raise FileNotFoundError(f\"Input directory {input} does not exist\")\n", "\n", "# Получаем список файлов\n", "temp_ensem_files = [os.path.abspath(os.path.join(input, f))\n", " for f in os.listdir(input)\n", " if os.path.isfile(os.path.join(input, f))]\n", "\n", "if not temp_ensem_files:\n", " raise ValueError(\"No files found in input directory\")\n", "\n", "weight_value = 1.0 # @param {\"type\":\"number\"}\n", "weights = [weight_value] * len(temp_ensem_files)\n", "\n", "output_file = os.path.join(output, \"output.wav\")\n", "inverted_file = os.path.join(output, \"inverted.wav\")\n", "\n", "ensemble_audio_files(files=temp_ensem_files, output=output_file, ensemble_type=type, weights=weights)\n", "if input_orig != \"\":\n", " invert_and_overlay_wav(output_file, input_orig, inverted_file)" ] }, { "cell_type": "markdown", "metadata": { "id": "P3tLD2QXqyqp" }, "source": [ "## Разделить аудио" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "QmK2R6skpvR8" }, "outputs": [], "source": [ "# @title Получить список моделей\n", "\n", "%cd /content/mvsepless\n", "\n", "model_type = \"mel_band_roformer\" # @param [\"mel_band_roformer\",\"bs_roformer\",\"mdx23c\",\"vr_arch\",\"htdemucs\",\"scnet\",\"mdx_net\",\"medley_vox\",\"bandit\",\"bandit_v2\"]\n", "\n", "from model_info import model_info\n", "model_info(model_type)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "V8MI-asTQAz4" }, "outputs": [], "source": [ "# @title Инференс\n", "\n", "%cd /content/mvsepless\n", "\n", "#@markdown Чтобы получить информацию о моделях, запустите ячейку 'Получить список моделей' с нужным типом модели\n", "\n", "template = \"NAME_MODEL_STEM\" # @param {\"type\":\"string\",\"placeholder\":\"Шаблон имени стемов, пример: NAME_MODEL_STEM\"}\n", "\n", "model_type = \"mel_band_roformer\" # @param [\"mel_band_roformer\",\"bs_roformer\",\"mdx23c\",\"vr_arch\",\"htdemucs\",\"scnet\",\"mdx_net\",\"medley_vox\",\"bandit\",\"bandit_v2\"]\n", "model_name = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите имя модели, которое есть в списке моделей (Можно получить список используя ячейку выше)\"}\n", "input = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к аудиофайлу/папке с аудиофайлами\"}\n", "output = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке сохранения стемов\"}\n", "\n", "output_format = \"flac\" # @param [\"wav\",\"mp3\",\"flac\",\"m4a\",\"aac\",\"opus\"]\n", "batch = False # @param {\"type\":\"boolean\"}\n", "tta = False\n", "select_stems = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите стемы, которые хотите сохранить, пример: 'vocals drums' или 'male female karaoke''\"}\n", "\n", "# @markdown
\n", "# @markdown Описание настроек\n", "# @markdown\n", "# @markdown > * template - Формат имени результатов разделения.\n", "# @markdown >\n", "# @markdown > Существуют три ключа:\n", "# @markdown >\n", "# @markdown > > NAME - название оригинального аудио файла (без расширения)\n", "# @markdown >\n", "# @markdown > > MODEL - название модели, использованной для разделения на стемы\n", "# @markdown >\n", "# @markdown > > STEM - название стема\n", "# @markdown >\n", "# @markdown > > DATETIME - дата и время создвния файла\n", "# @markdown >\n", "# @markdown > Пример:\n", "# @markdown >\n", "# @markdown > NAME_STEM --> вход_vocals.mp3\n", "# @markdown >\n", "# @markdown > > NAME - 'вход'\n", "# @markdown >\n", "# @markdown > > STEM - vocals\n", "# @markdown >\n", "# @markdown > MODEL_STEM --> mel_band_roformer_aname_4_stems_large_drums.mp3\n", "# @markdown >\n", "# @markdown > > MODEL - 'mel_band_roformer_aname_4_stems_large'\n", "# @markdown >\n", "# @markdown > > STEM - drums\n", "# @markdown >\n", "# @markdown > mvsepless_STEM --> mvsepless_karaoke.mp3\n", "# @markdown >\n", "# @markdown > > mvsepless - mvsepless (кастомное имя)\n", "# @markdown >\n", "# @markdown > > STEM - karaoke\n", "# @markdown >\n", "# @markdown\n", "# @markdown > * batch - Пакетная обработка. Включается при batch = True\n", "# @markdown >\n", "# @markdown > (В нашем случае если поставлена галочка напротив batch)\n", "# @markdown >\n", "# @markdown > Включено - обрабатывается папка с аудиофайлами\n", "# @markdown >\n", "# @markdown > Выключено - обрабатывается один аудиофайл\n", "# @markdown\n", "# @markdown > * select_stems - Выбор стемов для разделения\n", "# @markdown >\n", "# @markdown > Не работает с:\n", "# @markdown >\n", "# @markdown > > моделями на архитектуре Medley-Vox\n", "# @markdown >\n", "# @markdown > > моделями с целевым инструментом (Target Instrument is not \"No\")\n", "# @markdown >\n", "# @markdown > > моделями на архитектуре MDX-NET и VR ARCH, если выбрано больше одного стема\n", "# @markdown\n", "# @markdown > * model_type - Тип модели, то есть её архитектура\n", "# @markdown\n", "# @markdown > * model_name - Название модели для разделения вокала\n", "\n", "run_command = f'python multi_infer.py -i \"{input}\" -o {output} -of {output_format} {(\"--use_tta\" if tta else \"\")} {(\"--batch\" if batch else \"\")} -inst --model_type {model_type} --model_name {model_name} {(f\"--select {select_stems}\" if select_stems != \"\" else \"\")} --template {template}'\n", "!$run_command" ] }, { "cell_type": "markdown", "metadata": { "id": "PTzLZWnWq3c8" }, "source": [ "## Замена вокала" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "cellView": "form", "id": "TVQeDhtMPwgU" }, "outputs": [], "source": [ "\n", "%cd /content/mvsepless\n", "\n", "import os\n", "from datetime import datetime\n", "from rvc.scripts.voice_conversion import voice_pipeline\n", "\n", "\n", "def voice_conversion(input, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, template, batch):\n", " if batch:\n", " for filename in os.listdir(input):\n", " file = os.path.join(input, filename)\n", " if os.path.isfile(file):\n", " file_name = os.path.basename(file)\n", " namefile = os.path.splitext(file_name)[0]\n", " time_create_file = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n", " output_name = (\n", " template\n", " .replace(\"DATETIME\", time_create_file)\n", " .replace(\"NAME\", namefile)\n", " .replace(\"MODEL\", model)\n", " .replace(\"F0METHOD\", f0)\n", " .replace(\"PITCH\", f\"{pitch}\")\n", " )\n", " voice_pipeline(file, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, output_name)\n", " else:\n", " time_create_file = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n", " output_name = (\n", " template\n", " .replace(\"DATETIME\", time_create_file)\n", " .replace(\"NAME\", namefile)\n", " .replace(\"MODEL\", model)\n", " .replace(\"F0METHOD\", f0)\n", " .replace(\"PITCH\", pitch)\n", " )\n", " voice_pipeline(input, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, output_name)\n", "\n", "\n", "song_input = \"\" # @param {type:\"string\"}\n", "model_name = \"\" # @param {type:\"string\"}\n", "batch = False # @param {\"type\":\"boolean\"}\n", "\n", "# @markdown #### Основные настройки\n", "pitch = 0 # @param {type:\"slider\", min:-48, max:48, step:12}\n", "index_rate = 0 # @param {type:\"slider\", min:0, max:1, step:0.01}\n", "filter_radius = 3 # @param {type:\"slider\", min:0, max:7, step:1}\n", "volume_envelope = 0.25 # @param {type:\"slider\", min:0, max:1, step:0.01}\n", "\n", "# @markdown #### Настройки F0\n", "method = \"rmvpe+\" # @param [\"rmvpe+\", \"mangio-crepe\", \"fcpe\"]\n", "hop_length = 128 # @param {type:\"slider\", min:32, max:512, step:16}\n", "protect = 0.33 # @param {type:\"slider\", min:0, max:0.5, step:0.01}\n", "f0_min = 50 # @param {type:\"slider\", min:0, max:500, step:1}\n", "f0_max = 1100 # @param {type:\"slider\", min:100, max:2000, step:10}\n", "\n", "# @markdown #### Выходные настройки\n", "output_format = \"mp3\" # @param [\"mp3\", \"wav\", \"flac\"]\n", "output_path = \"\" # @param {type:\"string\"}\n", "\n", "# Задаем шаблон вручную (можно менять порядок и состав)\n", "template = \"DATETIME_NAME_PITCH\" # @param {type:\"string\"}\n", "\n", "voice_conversion(song_input, model_name, pitch, index_rate, filter_radius, volume_envelope, method, hop_length, protect, output_format, f0_min, f0_max, output_path, template, batch)" ] } ], "metadata": { "accelerator": "GPU", "colab": { "collapsed_sections": [ "n3PP3N-spH_0", "P3tLD2QXqyqp", "PTzLZWnWq3c8" ], "gpuType": "T4", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }