Upload MVSepLess_Dev_Alpha_2_Ru.ipynb
Browse files- MVSepLess_Dev_Alpha_2_Ru.ipynb +600 -0
MVSepLess_Dev_Alpha_2_Ru.ipynb
ADDED
|
@@ -0,0 +1,600 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"source": [
|
| 6 |
+
"#@title # Установка (3 мин без претрейнов)\n",
|
| 7 |
+
"%cd /content\n",
|
| 8 |
+
"\n",
|
| 9 |
+
"from google.colab import files\n",
|
| 10 |
+
"import zipfile\n",
|
| 11 |
+
"import os\n",
|
| 12 |
+
"\n",
|
| 13 |
+
"# Загружаем ZIP-файл с устройства\n",
|
| 14 |
+
"online = True # @param {\"type\":\"boolean\"}\n",
|
| 15 |
+
"if not online:\n",
|
| 16 |
+
" uploaded = files.upload()\n",
|
| 17 |
+
"else:\n",
|
| 18 |
+
" uploaded = \"mvsepless.zip\"\n",
|
| 19 |
+
" !wget -O {uploaded} https://huggingface.co/noblebarkrr/mvsepless_updates_zip/resolve/main/mvsepless_alpha_2_ru.zip?download=true\n",
|
| 20 |
+
"\n",
|
| 21 |
+
"# Проверяем, что файл был загружен\n",
|
| 22 |
+
"if not uploaded:\n",
|
| 23 |
+
" print(\"Не был загружен ни один файл.\")\n",
|
| 24 |
+
"else:\n",
|
| 25 |
+
" if not online:\n",
|
| 26 |
+
" # Получаем имя загруженного файла (предполагаем, что загружен только один файл)\n",
|
| 27 |
+
" zip_filename = next(iter(uploaded))\n",
|
| 28 |
+
" else:\n",
|
| 29 |
+
" zip_filename = uploaded\n",
|
| 30 |
+
" # Путь для распаковки\n",
|
| 31 |
+
" extract_to = '/content/mvsepless'\n",
|
| 32 |
+
"\n",
|
| 33 |
+
" # Создаем папку, если она не существует\n",
|
| 34 |
+
" os.makedirs(extract_to, exist_ok=True)\n",
|
| 35 |
+
"\n",
|
| 36 |
+
" # Распаковываем архив с перезаписью существующих файлов\n",
|
| 37 |
+
" with zipfile.ZipFile(zip_filename, 'r') as zip_ref:\n",
|
| 38 |
+
" zip_ref.extractall(extract_to)\n",
|
| 39 |
+
"\n",
|
| 40 |
+
" print(f\"Файл {zip_filename} был успешно распакован в {extract_to} с перезаписью существующих файлов.\")\n",
|
| 41 |
+
"\n",
|
| 42 |
+
"!cd mvsepless && pip install -r requirements.txt\n",
|
| 43 |
+
"!pip install audio-separator[gpu]==0.32.0\n",
|
| 44 |
+
"!wget -O mvsepless/models/medley_vox/pretrained_models/xlsr_53_56k.pt https://dl.fbaipublicfiles.com/fairseq/wav2vec/xlsr_53_56k.pt\n",
|
| 45 |
+
"!cd mvsepless && python download_models.py"
|
| 46 |
+
],
|
| 47 |
+
"metadata": {
|
| 48 |
+
"cellView": "form",
|
| 49 |
+
"id": "9DpDNzJllHCJ",
|
| 50 |
+
"colab": {
|
| 51 |
+
"base_uri": "https://localhost:8080/"
|
| 52 |
+
},
|
| 53 |
+
"outputId": "615f1b2d-48fb-4675-c94c-9ce0960135fd"
|
| 54 |
+
},
|
| 55 |
+
"execution_count": null,
|
| 56 |
+
"outputs": [
|
| 57 |
+
{
|
| 58 |
+
"output_type": "stream",
|
| 59 |
+
"name": "stdout",
|
| 60 |
+
"text": [
|
| 61 |
+
"/content\n",
|
| 62 |
+
"--2025-06-03 11:40:42-- https://huggingface.co/noblebarkrr/mvsepless_updates_zip/resolve/main/mvsepless_alpha_2_ru.zip?download=true\n",
|
| 63 |
+
"Resolving huggingface.co (huggingface.co)... 13.35.202.34, 13.35.202.40, 13.35.202.121, ...\n",
|
| 64 |
+
"Connecting to huggingface.co (huggingface.co)|13.35.202.34|:443... connected.\n",
|
| 65 |
+
"HTTP request sent, awaiting response... 302 Found\n",
|
| 66 |
+
"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",
|
| 67 |
+
"--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",
|
| 68 |
+
"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",
|
| 69 |
+
"Connecting to cdn-lfs-us-1.hf.co (cdn-lfs-us-1.hf.co)|13.33.45.103|:443... connected.\n",
|
| 70 |
+
"HTTP request sent, awaiting response... 200 OK\n",
|
| 71 |
+
"Length: 24353846 (23M) [application/zip]\n",
|
| 72 |
+
"Saving to: ‘mvsepless.zip’\n",
|
| 73 |
+
"\n",
|
| 74 |
+
"mvsepless.zip 100%[===================>] 23.23M --.-KB/s in 0.1s \n",
|
| 75 |
+
"\n",
|
| 76 |
+
"2025-06-03 11:40:42 (228 MB/s) - ‘mvsepless.zip’ saved [24353846/24353846]\n",
|
| 77 |
+
"\n",
|
| 78 |
+
"Файл mvsepless.zip был успешно распакован в /content/mvsepless с перезаписью существующих файлов.\n",
|
| 79 |
+
"Processing ./fixed/fairseq_fixed-0.13.0-cp311-cp311-linux_x86_64.whl (from -r requirements.txt (line 36))\n",
|
| 80 |
+
"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",
|
| 81 |
+
"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",
|
| 82 |
+
"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",
|
| 83 |
+
"Collecting torchcrepe==0.0.23 (from -r requirements.txt (line 5))\n",
|
| 84 |
+
" Downloading torchcrepe-0.0.23-py3-none-any.whl.metadata (7.8 kB)\n",
|
| 85 |
+
"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",
|
| 86 |
+
"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",
|
| 87 |
+
"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",
|
| 88 |
+
"Collecting librosa==0.9.1 (from -r requirements.txt (line 9))\n",
|
| 89 |
+
" Downloading librosa-0.9.1-py3-none-any.whl.metadata (6.9 kB)\n",
|
| 90 |
+
"Collecting matplotlib==3.9.0 (from -r requirements.txt (line 10))\n",
|
| 91 |
+
" Downloading matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\n",
|
| 92 |
+
"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",
|
| 93 |
+
"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",
|
| 94 |
+
"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",
|
| 95 |
+
"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",
|
| 96 |
+
"Collecting pydub==0.25.1 (from -r requirements.txt (line 17))\n",
|
| 97 |
+
" Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)\n",
|
| 98 |
+
"Collecting pyloudnorm==0.1.1 (from -r requirements.txt (line 18))\n",
|
| 99 |
+
" Downloading pyloudnorm-0.1.1-py3-none-any.whl.metadata (5.6 kB)\n",
|
| 100 |
+
"Collecting praat-parselmouth==0.4.5 (from -r requirements.txt (line 19))\n",
|
| 101 |
+
" Downloading praat_parselmouth-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.9 kB)\n",
|
| 102 |
+
"Collecting webrtcvad==2.0.10 (from -r requirements.txt (line 20))\n",
|
| 103 |
+
" Downloading webrtcvad-2.0.10.tar.gz (66 kB)\n",
|
| 104 |
+
"\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",
|
| 105 |
+
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
|
| 106 |
+
"Collecting edge-tts==7.0.2 (from -r requirements.txt (line 21))\n",
|
| 107 |
+
" Downloading edge_tts-7.0.2-py3-none-any.whl.metadata (5.5 kB)\n",
|
| 108 |
+
"Collecting audiomentations==0.24.0 (from -r requirements.txt (line 22))\n",
|
| 109 |
+
" Downloading audiomentations-0.24.0-py3-none-any.whl.metadata (35 kB)\n",
|
| 110 |
+
"Collecting pedalboard==0.8.1 (from -r requirements.txt (line 23))\n",
|
| 111 |
+
" Downloading pedalboard-0.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (15 kB)\n",
|
| 112 |
+
"Collecting ffmpeg-python==0.2.0 (from -r requirements.txt (line 24))\n",
|
| 113 |
+
" Downloading ffmpeg_python-0.2.0-py3-none-any.whl.metadata (1.7 kB)\n",
|
| 114 |
+
"Collecting faiss-cpu==1.11 (from -r requirements.txt (line 27))\n",
|
| 115 |
+
" Downloading faiss_cpu-1.11.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (4.8 kB)\n",
|
| 116 |
+
"Collecting ml_collections==1.1.0 (from -r requirements.txt (line 28))\n",
|
| 117 |
+
" Downloading ml_collections-1.1.0-py3-none-any.whl.metadata (22 kB)\n",
|
| 118 |
+
"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",
|
| 119 |
+
"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",
|
| 120 |
+
"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",
|
| 121 |
+
"Collecting bitsandbytes==0.46.0 (from -r requirements.txt (line 32))\n",
|
| 122 |
+
" Downloading bitsandbytes-0.46.0-py3-none-manylinux_2_24_x86_64.whl.metadata (10 kB)\n",
|
| 123 |
+
"Collecting tokenizers==0.19 (from -r requirements.txt (line 33))\n",
|
| 124 |
+
" Downloading tokenizers-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.7 kB)\n",
|
| 125 |
+
"Collecting huggingface-hub==0.28.1 (from -r requirements.txt (line 34))\n",
|
| 126 |
+
" Downloading huggingface_hub-0.28.1-py3-none-any.whl.metadata (13 kB)\n",
|
| 127 |
+
"Collecting transformers==4.41 (from -r requirements.txt (line 35))\n",
|
| 128 |
+
" Downloading transformers-4.41.0-py3-none-any.whl.metadata (43 kB)\n",
|
| 129 |
+
"\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",
|
| 130 |
+
"\u001b[?25hCollecting segmentation_models_pytorch==0.5.0 (from -r requirements.txt (line 39))\n",
|
| 131 |
+
" Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl.metadata (17 kB)\n",
|
| 132 |
+
"Collecting torchseg==0.0.1a4 (from -r requirements.txt (line 40))\n",
|
| 133 |
+
" Downloading torchseg-0.0.1a4-py3-none-any.whl.metadata (12 kB)\n",
|
| 134 |
+
"Collecting demucs==4.0.0 (from -r requirements.txt (line 42))\n",
|
| 135 |
+
" Downloading demucs-4.0.0.tar.gz (1.2 MB)\n",
|
| 136 |
+
"\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",
|
| 137 |
+
"\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
|
| 138 |
+
"Collecting asteroid==0.7.0 (from -r requirements.txt (line 43))\n",
|
| 139 |
+
" Downloading asteroid-0.7.0-py3-none-any.whl.metadata (11 kB)\n",
|
| 140 |
+
"Collecting prodigyopt==1.1.2 (from -r requirements.txt (line 46))\n",
|
| 141 |
+
" Downloading prodigyopt-1.1.2-py3-none-any.whl.metadata (4.8 kB)\n",
|
| 142 |
+
"Collecting torch_log_wmse==0.3.0 (from -r requirements.txt (line 47))\n",
|
| 143 |
+
" Downloading torch_log_wmse-0.3.0-py3-none-any.whl.metadata (7.4 kB)\n",
|
| 144 |
+
"Collecting rotary_embedding_torch==0.6.5 (from -r requirements.txt (line 48))\n",
|
| 145 |
+
" Downloading rotary_embedding_torch-0.6.5-py3-none-any.whl.metadata (678 bytes)\n",
|
| 146 |
+
"Collecting local-attention==1.11.1 (from -r requirements.txt (line 49))\n",
|
| 147 |
+
" Downloading local_attention-1.11.1-py3-none-any.whl.metadata (907 bytes)\n",
|
| 148 |
+
"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",
|
| 149 |
+
"Collecting gradio==5.31.0 (from -r requirements.txt (line 53))\n",
|
| 150 |
+
" Downloading gradio-5.31.0-py3-none-any.whl.metadata (16 kB)\n",
|
| 151 |
+
"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",
|
| 152 |
+
"Collecting beartype==0.18.5 (from -r requirements.txt (line 55))\n",
|
| 153 |
+
" Downloading beartype-0.18.5-py3-none-any.whl.metadata (30 kB)\n",
|
| 154 |
+
"Collecting spafe==0.3.2 (from -r requirements.txt (line 56))\n",
|
| 155 |
+
" Downloading spafe-0.3.2-py3-none-any.whl.metadata (8.7 kB)\n",
|
| 156 |
+
"Collecting torch_audiomentations==0.12.0 (from -r requirements.txt (line 57))\n",
|
| 157 |
+
" Downloading torch_audiomentations-0.12.0-py3-none-any.whl.metadata (15 kB)\n",
|
| 158 |
+
"Collecting auraloss==0.4.0 (from -r requirements.txt (line 58))\n",
|
| 159 |
+
" Downloading auraloss-0.4.0-py3-none-any.whl.metadata (8.0 kB)\n",
|
| 160 |
+
"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",
|
| 161 |
+
"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",
|
| 162 |
+
"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",
|
| 163 |
+
"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",
|
| 164 |
+
"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",
|
| 165 |
+
"Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 166 |
+
" Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 167 |
+
"Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 168 |
+
" Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 169 |
+
"Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 170 |
+
" Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
|
| 171 |
+
"Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 172 |
+
" Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
|
| 173 |
+
"Collecting nvidia-cublas-cu12==12.4.5.8 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 174 |
+
" Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 175 |
+
"Collecting nvidia-cufft-cu12==11.2.1.3 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 176 |
+
" Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 177 |
+
"Collecting nvidia-curand-cu12==10.3.5.147 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 178 |
+
" Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 179 |
+
"Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 180 |
+
" Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
|
| 181 |
+
"Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 182 |
+
" Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
|
| 183 |
+
"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",
|
| 184 |
+
"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",
|
| 185 |
+
"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",
|
| 186 |
+
"Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch==2.6.0->-r requirements.txt (line 2))\n",
|
| 187 |
+
" Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
|
| 188 |
+
"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",
|
| 189 |
+
"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",
|
| 190 |
+
"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",
|
| 191 |
+
"Collecting resampy (from torchcrepe==0.0.23->-r requirements.txt (line 5))\n",
|
| 192 |
+
" Downloading resampy-0.4.3-py3-none-any.whl.metadata (3.0 kB)\n",
|
| 193 |
+
"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",
|
| 194 |
+
"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",
|
| 195 |
+
"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",
|
| 196 |
+
"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",
|
| 197 |
+
"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",
|
| 198 |
+
"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",
|
| 199 |
+
"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",
|
| 200 |
+
"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",
|
| 201 |
+
"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",
|
| 202 |
+
"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",
|
| 203 |
+
"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",
|
| 204 |
+
"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",
|
| 205 |
+
"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",
|
| 206 |
+
"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",
|
| 207 |
+
"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",
|
| 208 |
+
"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",
|
| 209 |
+
"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",
|
| 210 |
+
"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",
|
| 211 |
+
"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",
|
| 212 |
+
"Collecting srt<4.0.0,>=3.4.1 (from edge-tts==7.0.2->-r requirements.txt (line 21))\n",
|
| 213 |
+
" Downloading srt-3.5.3.tar.gz (28 kB)\n",
|
| 214 |
+
" Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
|
| 215 |
+
"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",
|
| 216 |
+
"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",
|
| 217 |
+
"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",
|
| 218 |
+
"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",
|
| 219 |
+
"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",
|
| 220 |
+
"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",
|
| 221 |
+
"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",
|
| 222 |
+
"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",
|
| 223 |
+
"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",
|
| 224 |
+
"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",
|
| 225 |
+
"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",
|
| 226 |
+
"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",
|
| 227 |
+
"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",
|
| 228 |
+
"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",
|
| 229 |
+
"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",
|
| 230 |
+
"Collecting dora-search (from demucs==4.0.0->-r requirements.txt (line 42))\n",
|
| 231 |
+
" Downloading dora_search-0.1.12.tar.gz (87 kB)\n",
|
| 232 |
+
"\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",
|
| 233 |
+
"\u001b[?25h"
|
| 234 |
+
]
|
| 235 |
+
}
|
| 236 |
+
]
|
| 237 |
+
},
|
| 238 |
+
{
|
| 239 |
+
"cell_type": "markdown",
|
| 240 |
+
"metadata": {
|
| 241 |
+
"id": "HyxHY762qmyE"
|
| 242 |
+
},
|
| 243 |
+
"source": [
|
| 244 |
+
"# NON-CLI"
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
{
|
| 248 |
+
"cell_type": "code",
|
| 249 |
+
"execution_count": null,
|
| 250 |
+
"metadata": {
|
| 251 |
+
"cellView": "form",
|
| 252 |
+
"id": "18XSjQzyyl5E"
|
| 253 |
+
},
|
| 254 |
+
"outputs": [],
|
| 255 |
+
"source": [
|
| 256 |
+
"# @title Mvsepless & Vbach (напрямую в ячейке)\n",
|
| 257 |
+
"#@markdown Разделение / замена музыки и голоса\n",
|
| 258 |
+
"\n",
|
| 259 |
+
"%cd /content/mvsepless\n",
|
| 260 |
+
"\n",
|
| 261 |
+
"import gradio as gr\n",
|
| 262 |
+
"from multi_infer import theme, mvsepless_non_cli\n",
|
| 263 |
+
"\n",
|
| 264 |
+
"with gr.Blocks(title=\"Разделение музыки и голоса\", theme=theme) as demo:\n",
|
| 265 |
+
" gr.HTML(\"<h1><center> MVSEPLESS </center></h1>\")\n",
|
| 266 |
+
" mvsepless_non_cli(True)\n",
|
| 267 |
+
" demo.launch(share=True, allowed_paths=[\"/content\"])"
|
| 268 |
+
]
|
| 269 |
+
},
|
| 270 |
+
{
|
| 271 |
+
"cell_type": "code",
|
| 272 |
+
"execution_count": null,
|
| 273 |
+
"metadata": {
|
| 274 |
+
"cellView": "form",
|
| 275 |
+
"id": "JMZh5sYvoeuq"
|
| 276 |
+
},
|
| 277 |
+
"outputs": [],
|
| 278 |
+
"source": [
|
| 279 |
+
"# @title VbachGen\n",
|
| 280 |
+
"#@markdown Быстрая генерация сурсов для ИИ-каверов\n",
|
| 281 |
+
"%cd /content/mvsepless\n",
|
| 282 |
+
"!python gencover.py"
|
| 283 |
+
]
|
| 284 |
+
},
|
| 285 |
+
{
|
| 286 |
+
"cell_type": "code",
|
| 287 |
+
"execution_count": null,
|
| 288 |
+
"metadata": {
|
| 289 |
+
"cellView": "form",
|
| 290 |
+
"id": "VNW0Op_Nsbql"
|
| 291 |
+
},
|
| 292 |
+
"outputs": [],
|
| 293 |
+
"source": [
|
| 294 |
+
"# @title Mvsepless\n",
|
| 295 |
+
"#@markdown Разделение музыки и голоса\n",
|
| 296 |
+
"\n",
|
| 297 |
+
"%cd /content/mvsepless\n",
|
| 298 |
+
"!python multi_infer.py -gr"
|
| 299 |
+
]
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"cell_type": "code",
|
| 303 |
+
"execution_count": null,
|
| 304 |
+
"metadata": {
|
| 305 |
+
"cellView": "form",
|
| 306 |
+
"id": "TmxdFPBXXC-c"
|
| 307 |
+
},
|
| 308 |
+
"outputs": [],
|
| 309 |
+
"source": [
|
| 310 |
+
"# @title Mvsepless & Vbach\n",
|
| 311 |
+
"#@markdown Разделение / Замена музыки и голоса\n",
|
| 312 |
+
"\n",
|
| 313 |
+
"%cd /content/mvsepless\n",
|
| 314 |
+
"!python multi_infer.py -grvc"
|
| 315 |
+
]
|
| 316 |
+
},
|
| 317 |
+
{
|
| 318 |
+
"cell_type": "markdown",
|
| 319 |
+
"metadata": {
|
| 320 |
+
"id": "n3PP3N-spH_0"
|
| 321 |
+
},
|
| 322 |
+
"source": [
|
| 323 |
+
"# CLI"
|
| 324 |
+
]
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"cell_type": "code",
|
| 328 |
+
"execution_count": null,
|
| 329 |
+
"metadata": {
|
| 330 |
+
"cellView": "form",
|
| 331 |
+
"id": "sOrwMYdj_cuF"
|
| 332 |
+
},
|
| 333 |
+
"outputs": [],
|
| 334 |
+
"source": [
|
| 335 |
+
"# @title Объединить аудио файлы в ансамбль\n",
|
| 336 |
+
"\n",
|
| 337 |
+
"import os\n",
|
| 338 |
+
"import numpy\n",
|
| 339 |
+
"\n",
|
| 340 |
+
"%cd /content/mvsepless\n",
|
| 341 |
+
"\n",
|
| 342 |
+
"from ensem import ensemble_audio_files\n",
|
| 343 |
+
"from infer_utils.audio_processing.invert import invert_and_overlay_wav\n",
|
| 344 |
+
"\n",
|
| 345 |
+
"\n",
|
| 346 |
+
"input = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке с результатами моделей\"}\n",
|
| 347 |
+
"input_orig = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к оригинальному аудио\"}\n",
|
| 348 |
+
"output = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке сохранения результатов\"}\n",
|
| 349 |
+
"\n",
|
| 350 |
+
"type = \"max_fft\" # @param [\"max_fft\",\"min_fft\",\"median_fft\",\"max_wave\",\"avg_fft\"]\n",
|
| 351 |
+
"\n",
|
| 352 |
+
"# Создаем выходную директорию, если ее нет\n",
|
| 353 |
+
"os.makedirs(output, exist_ok=True)\n",
|
| 354 |
+
"\n",
|
| 355 |
+
"# Проверяем существование входной директории\n",
|
| 356 |
+
"if not os.path.exists(input):\n",
|
| 357 |
+
" raise FileNotFoundError(f\"Input directory {input} does not exist\")\n",
|
| 358 |
+
"\n",
|
| 359 |
+
"# Получаем список файлов\n",
|
| 360 |
+
"temp_ensem_files = [os.path.abspath(os.path.join(input, f))\n",
|
| 361 |
+
" for f in os.listdir(input)\n",
|
| 362 |
+
" if os.path.isfile(os.path.join(input, f))]\n",
|
| 363 |
+
"\n",
|
| 364 |
+
"if not temp_ensem_files:\n",
|
| 365 |
+
" raise ValueError(\"No files found in input directory\")\n",
|
| 366 |
+
"\n",
|
| 367 |
+
"weight_value = 1.0 # @param {\"type\":\"number\"}\n",
|
| 368 |
+
"weights = [weight_value] * len(temp_ensem_files)\n",
|
| 369 |
+
"\n",
|
| 370 |
+
"output_file = os.path.join(output, \"output.wav\")\n",
|
| 371 |
+
"inverted_file = os.path.join(output, \"inverted.wav\")\n",
|
| 372 |
+
"\n",
|
| 373 |
+
"ensemble_audio_files(files=temp_ensem_files, output=output_file, ensemble_type=type, weights=weights)\n",
|
| 374 |
+
"if input_orig != \"\":\n",
|
| 375 |
+
" invert_and_overlay_wav(output_file, input_orig, inverted_file)"
|
| 376 |
+
]
|
| 377 |
+
},
|
| 378 |
+
{
|
| 379 |
+
"cell_type": "markdown",
|
| 380 |
+
"metadata": {
|
| 381 |
+
"id": "P3tLD2QXqyqp"
|
| 382 |
+
},
|
| 383 |
+
"source": [
|
| 384 |
+
"## Разделить аудио"
|
| 385 |
+
]
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"cell_type": "code",
|
| 389 |
+
"execution_count": null,
|
| 390 |
+
"metadata": {
|
| 391 |
+
"cellView": "form",
|
| 392 |
+
"id": "QmK2R6skpvR8"
|
| 393 |
+
},
|
| 394 |
+
"outputs": [],
|
| 395 |
+
"source": [
|
| 396 |
+
"# @title Получить список моделей\n",
|
| 397 |
+
"\n",
|
| 398 |
+
"%cd /content/mvsepless\n",
|
| 399 |
+
"\n",
|
| 400 |
+
"model_type = \"mel_band_roformer\" # @param [\"mel_band_roformer\",\"bs_roformer\",\"mdx23c\",\"vr_arch\",\"htdemucs\",\"scnet\",\"mdx_net\",\"medley_vox\",\"bandit\",\"bandit_v2\"]\n",
|
| 401 |
+
"\n",
|
| 402 |
+
"from model_info import model_info\n",
|
| 403 |
+
"model_info(model_type)"
|
| 404 |
+
]
|
| 405 |
+
},
|
| 406 |
+
{
|
| 407 |
+
"cell_type": "code",
|
| 408 |
+
"execution_count": null,
|
| 409 |
+
"metadata": {
|
| 410 |
+
"cellView": "form",
|
| 411 |
+
"id": "V8MI-asTQAz4"
|
| 412 |
+
},
|
| 413 |
+
"outputs": [],
|
| 414 |
+
"source": [
|
| 415 |
+
"# @title Инференс\n",
|
| 416 |
+
"\n",
|
| 417 |
+
"%cd /content/mvsepless\n",
|
| 418 |
+
"\n",
|
| 419 |
+
"#@markdown <b>Чтобы получить информацию о моделях, запустите ячейку 'Получить список моделей' с нужным типом модели</b>\n",
|
| 420 |
+
"\n",
|
| 421 |
+
"template = \"NAME_MODEL_STEM\" # @param {\"type\":\"string\",\"placeholder\":\"Шаблон имени стемов, пример: NAME_MODEL_STEM\"}\n",
|
| 422 |
+
"\n",
|
| 423 |
+
"model_type = \"mel_band_roformer\" # @param [\"mel_band_roformer\",\"bs_roformer\",\"mdx23c\",\"vr_arch\",\"htdemucs\",\"scnet\",\"mdx_net\",\"medley_vox\",\"bandit\",\"bandit_v2\"]\n",
|
| 424 |
+
"model_name = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите имя модели, которое есть в списке моделей (Можно получить список используя ячейку выше)\"}\n",
|
| 425 |
+
"input = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к аудиофайлу/папке с аудиофайлами\"}\n",
|
| 426 |
+
"output = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите путь к папке сохранения стемов\"}\n",
|
| 427 |
+
"\n",
|
| 428 |
+
"output_format = \"flac\" # @param [\"wav\",\"mp3\",\"flac\",\"m4a\",\"aac\",\"opus\"]\n",
|
| 429 |
+
"batch = False # @param {\"type\":\"boolean\"}\n",
|
| 430 |
+
"tta = False\n",
|
| 431 |
+
"select_stems = \"\" # @param {\"type\":\"string\",\"placeholder\":\"Введите стемы, которые хотите сохранить, пример: 'vocals drums' или 'male female karaoke''\"}\n",
|
| 432 |
+
"\n",
|
| 433 |
+
"# @markdown <details>\n",
|
| 434 |
+
"# @markdown <summary><b><u>Описание настроек</u></b></summary>\n",
|
| 435 |
+
"# @markdown\n",
|
| 436 |
+
"# @markdown > * <b><u>template</u></b> - Формат имени результатов разделения.\n",
|
| 437 |
+
"# @markdown >\n",
|
| 438 |
+
"# @markdown > Существуют три ключа:\n",
|
| 439 |
+
"# @markdown >\n",
|
| 440 |
+
"# @markdown > > NAME - название оригинального аудио файла (без расширения)\n",
|
| 441 |
+
"# @markdown >\n",
|
| 442 |
+
"# @markdown > > MODEL - название модели, использованной для разделения на стемы\n",
|
| 443 |
+
"# @markdown >\n",
|
| 444 |
+
"# @markdown > > STEM - название стема\n",
|
| 445 |
+
"# @markdown >\n",
|
| 446 |
+
"# @markdown > > DATETIME - дата и время создвния файла\n",
|
| 447 |
+
"# @markdown >\n",
|
| 448 |
+
"# @markdown > Пример:\n",
|
| 449 |
+
"# @markdown >\n",
|
| 450 |
+
"# @markdown > NAME_STEM --> вход_vocals.mp3\n",
|
| 451 |
+
"# @markdown >\n",
|
| 452 |
+
"# @markdown > > NAME - 'вход'\n",
|
| 453 |
+
"# @markdown >\n",
|
| 454 |
+
"# @markdown > > STEM - vocals\n",
|
| 455 |
+
"# @markdown >\n",
|
| 456 |
+
"# @markdown > MODEL_STEM --> mel_band_roformer_aname_4_stems_large_drums.mp3\n",
|
| 457 |
+
"# @markdown >\n",
|
| 458 |
+
"# @markdown > > MODEL - 'mel_band_roformer_aname_4_stems_large'\n",
|
| 459 |
+
"# @markdown >\n",
|
| 460 |
+
"# @markdown > > STEM - drums\n",
|
| 461 |
+
"# @markdown >\n",
|
| 462 |
+
"# @markdown > mvsepless_STEM --> mvsepless_karaoke.mp3\n",
|
| 463 |
+
"# @markdown >\n",
|
| 464 |
+
"# @markdown > > mvsepless - mvsepless (кастомное имя)\n",
|
| 465 |
+
"# @markdown >\n",
|
| 466 |
+
"# @markdown > > STEM - karaoke\n",
|
| 467 |
+
"# @markdown >\n",
|
| 468 |
+
"# @markdown\n",
|
| 469 |
+
"# @markdown > * <b><u>batch</u></b> - Пакетная обработка. Включается при batch = True\n",
|
| 470 |
+
"# @markdown >\n",
|
| 471 |
+
"# @markdown > (В нашем случае если поставлена галочка напротив batch)\n",
|
| 472 |
+
"# @markdown >\n",
|
| 473 |
+
"# @markdown > Включено - обрабатывается папка с аудиофайлами\n",
|
| 474 |
+
"# @markdown >\n",
|
| 475 |
+
"# @markdown > Выключено - обрабатывается один аудиофайл\n",
|
| 476 |
+
"# @markdown\n",
|
| 477 |
+
"# @markdown > * <b><u>select_stems</u></b> - Выбор стемов для разделения\n",
|
| 478 |
+
"# @markdown >\n",
|
| 479 |
+
"# @markdown > Не работает с:\n",
|
| 480 |
+
"# @markdown >\n",
|
| 481 |
+
"# @markdown > > моделями на архитектуре Medley-Vox\n",
|
| 482 |
+
"# @markdown >\n",
|
| 483 |
+
"# @markdown > > моделями с целевым инструментом (Target Instrument is not \"No\")\n",
|
| 484 |
+
"# @markdown >\n",
|
| 485 |
+
"# @markdown > > моделями на архитектуре MDX-NET и VR ARCH, если выбрано больше одного стема\n",
|
| 486 |
+
"# @markdown\n",
|
| 487 |
+
"# @markdown > * <b><u>model_type</u></b> - Тип модели, то есть её архитектура\n",
|
| 488 |
+
"# @markdown\n",
|
| 489 |
+
"# @markdown > * <b><u>model_name</u></b> - Название модели для разделения вокала\n",
|
| 490 |
+
"\n",
|
| 491 |
+
"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",
|
| 492 |
+
"!$run_command"
|
| 493 |
+
]
|
| 494 |
+
},
|
| 495 |
+
{
|
| 496 |
+
"cell_type": "markdown",
|
| 497 |
+
"metadata": {
|
| 498 |
+
"id": "PTzLZWnWq3c8"
|
| 499 |
+
},
|
| 500 |
+
"source": [
|
| 501 |
+
"## Замена вокала"
|
| 502 |
+
]
|
| 503 |
+
},
|
| 504 |
+
{
|
| 505 |
+
"cell_type": "code",
|
| 506 |
+
"execution_count": null,
|
| 507 |
+
"metadata": {
|
| 508 |
+
"cellView": "form",
|
| 509 |
+
"id": "TVQeDhtMPwgU"
|
| 510 |
+
},
|
| 511 |
+
"outputs": [],
|
| 512 |
+
"source": [
|
| 513 |
+
"\n",
|
| 514 |
+
"%cd /content/mvsepless\n",
|
| 515 |
+
"\n",
|
| 516 |
+
"import os\n",
|
| 517 |
+
"from datetime import datetime\n",
|
| 518 |
+
"from rvc.scripts.voice_conversion import voice_pipeline\n",
|
| 519 |
+
"\n",
|
| 520 |
+
"\n",
|
| 521 |
+
"def voice_conversion(input, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, template, batch):\n",
|
| 522 |
+
" if batch:\n",
|
| 523 |
+
" for filename in os.listdir(input):\n",
|
| 524 |
+
" file = os.path.join(input, filename)\n",
|
| 525 |
+
" if os.path.isfile(file):\n",
|
| 526 |
+
" file_name = os.path.basename(file)\n",
|
| 527 |
+
" namefile = os.path.splitext(file_name)[0]\n",
|
| 528 |
+
" time_create_file = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
|
| 529 |
+
" output_name = (\n",
|
| 530 |
+
" template\n",
|
| 531 |
+
" .replace(\"DATETIME\", time_create_file)\n",
|
| 532 |
+
" .replace(\"NAME\", namefile)\n",
|
| 533 |
+
" .replace(\"MODEL\", model)\n",
|
| 534 |
+
" .replace(\"F0METHOD\", f0)\n",
|
| 535 |
+
" .replace(\"PITCH\", f\"{pitch}\")\n",
|
| 536 |
+
" )\n",
|
| 537 |
+
" voice_pipeline(file, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, output_name)\n",
|
| 538 |
+
" else:\n",
|
| 539 |
+
" time_create_file = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
|
| 540 |
+
" output_name = (\n",
|
| 541 |
+
" template\n",
|
| 542 |
+
" .replace(\"DATETIME\", time_create_file)\n",
|
| 543 |
+
" .replace(\"NAME\", namefile)\n",
|
| 544 |
+
" .replace(\"MODEL\", model)\n",
|
| 545 |
+
" .replace(\"F0METHOD\", f0)\n",
|
| 546 |
+
" .replace(\"PITCH\", pitch)\n",
|
| 547 |
+
" )\n",
|
| 548 |
+
" voice_pipeline(input, model, pitch, ir, fr, rms, f0, hop, prtct, of, f0_min, f0_max, output, output_name)\n",
|
| 549 |
+
"\n",
|
| 550 |
+
"\n",
|
| 551 |
+
"song_input = \"\" # @param {type:\"string\"}\n",
|
| 552 |
+
"model_name = \"\" # @param {type:\"string\"}\n",
|
| 553 |
+
"batch = False # @param {\"type\":\"boolean\"}\n",
|
| 554 |
+
"\n",
|
| 555 |
+
"# @markdown #### Основные настройки\n",
|
| 556 |
+
"pitch = 0 # @param {type:\"slider\", min:-48, max:48, step:12}\n",
|
| 557 |
+
"index_rate = 0 # @param {type:\"slider\", min:0, max:1, step:0.01}\n",
|
| 558 |
+
"filter_radius = 3 # @param {type:\"slider\", min:0, max:7, step:1}\n",
|
| 559 |
+
"volume_envelope = 0.25 # @param {type:\"slider\", min:0, max:1, step:0.01}\n",
|
| 560 |
+
"\n",
|
| 561 |
+
"# @markdown #### Настройки F0\n",
|
| 562 |
+
"method = \"rmvpe+\" # @param [\"rmvpe+\", \"mangio-crepe\", \"fcpe\"]\n",
|
| 563 |
+
"hop_length = 128 # @param {type:\"slider\", min:32, max:512, step:16}\n",
|
| 564 |
+
"protect = 0.33 # @param {type:\"slider\", min:0, max:0.5, step:0.01}\n",
|
| 565 |
+
"f0_min = 50 # @param {type:\"slider\", min:0, max:500, step:1}\n",
|
| 566 |
+
"f0_max = 1100 # @param {type:\"slider\", min:100, max:2000, step:10}\n",
|
| 567 |
+
"\n",
|
| 568 |
+
"# @markdown #### Выходные настройки\n",
|
| 569 |
+
"output_format = \"mp3\" # @param [\"mp3\", \"wav\", \"flac\"]\n",
|
| 570 |
+
"output_path = \"\" # @param {type:\"string\"}\n",
|
| 571 |
+
"\n",
|
| 572 |
+
"# Задаем шаблон вручную (можно менять порядок и состав)\n",
|
| 573 |
+
"template = \"DATETIME_NAME_PITCH\" # @param {type:\"string\"}\n",
|
| 574 |
+
"\n",
|
| 575 |
+
"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)"
|
| 576 |
+
]
|
| 577 |
+
}
|
| 578 |
+
],
|
| 579 |
+
"metadata": {
|
| 580 |
+
"accelerator": "GPU",
|
| 581 |
+
"colab": {
|
| 582 |
+
"collapsed_sections": [
|
| 583 |
+
"n3PP3N-spH_0",
|
| 584 |
+
"P3tLD2QXqyqp",
|
| 585 |
+
"PTzLZWnWq3c8"
|
| 586 |
+
],
|
| 587 |
+
"gpuType": "T4",
|
| 588 |
+
"provenance": []
|
| 589 |
+
},
|
| 590 |
+
"kernelspec": {
|
| 591 |
+
"display_name": "Python 3",
|
| 592 |
+
"name": "python3"
|
| 593 |
+
},
|
| 594 |
+
"language_info": {
|
| 595 |
+
"name": "python"
|
| 596 |
+
}
|
| 597 |
+
},
|
| 598 |
+
"nbformat": 4,
|
| 599 |
+
"nbformat_minor": 0
|
| 600 |
+
}
|