noblebarkrr commited on
Commit
c29b82c
·
verified ·
1 Parent(s): fd62d33

Upload MVSepLess_Dev_Alpha_2_Ru.ipynb

Browse files
Files changed (1) hide show
  1. 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
+ }