diff --git a/Retrieval_based_Voice_Conversion_WebUI.ipynb b/Retrieval_based_Voice_Conversion_WebUI.ipynb index 2da7bf9..098168a 100644 --- a/Retrieval_based_Voice_Conversion_WebUI.ipynb +++ b/Retrieval_based_Voice_Conversion_WebUI.ipynb @@ -1,30 +1,22 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "private_outputs": true, - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - }, - "accelerator": "GPU", - "gpuClass": "standard" - }, "cells": [ { + "attachments": {}, "cell_type": "markdown", + "metadata": {}, "source": [ - "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb)" - ], + "# [Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) Training notebook" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", "metadata": { "id": "ZFFCx5J80SGa" - } + }, + "source": [ + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/Retrieval_based_Voice_Conversion_WebUI.ipynb)" + ] }, { "cell_type": "code", @@ -40,60 +32,80 @@ }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jwu07JgqoFON" + }, + "outputs": [], + "source": [ + "# @title 挂载谷歌云盘\n", + "\n", + "from google.colab import drive\n", + "\n", + "drive.mount(\"/content/drive\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "wjddIFr1oS3W" + }, + "outputs": [], "source": [ "# @title 安装依赖\n", "!apt-get -y install build-essential python3-dev ffmpeg\n", "!pip3 install --upgrade setuptools wheel\n", "!pip3 install --upgrade pip\n", "!pip3 install faiss-cpu==1.7.2 fairseq gradio==3.14.0 ffmpeg ffmpeg-python praat-parselmouth pyworld numpy==1.23.5 numba==0.56.4 librosa==0.9.2" - ], - "metadata": { - "id": "wjddIFr1oS3W" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ge_97mfpgqTm" + }, + "outputs": [], "source": [ "# @title 克隆仓库\n", "\n", "!git clone --depth=1 -b stable https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI\n", "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", "!mkdir -p pretrained uvr5_weights" - ], - "metadata": { - "id": "ge_97mfpgqTm" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", - "source": [ - "# @title 更新仓库(一般无需执行)\n", - "!git pull" - ], + "execution_count": null, "metadata": { "id": "BLDEZADkvlw1" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# @title 更新仓库(一般无需执行)\n", + "!git pull" + ] }, { "cell_type": "code", - "source": [ - "# @title 安装aria2\n", - "!apt -y install -qq aria2" - ], + "execution_count": null, "metadata": { "id": "pqE0PrnuRqI2" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# @title 安装aria2\n", + "!apt -y install -qq aria2" + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "UG3XpUwEomUz" + }, + "outputs": [], "source": [ "# @title 下载底模\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/D32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o D32k.pth\n", @@ -108,55 +120,50 @@ "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G32k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G32k.pth\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G40k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G40k.pth\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/pretrained/f0G48k.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/pretrained -o f0G48k.pth" - ], - "metadata": { - "id": "UG3XpUwEomUz" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "HugjmZqZRuiF" + }, + "outputs": [], "source": [ "# @title 下载人声分离模型\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-人声vocals+非人声instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP2-人声vocals+非人声instrumentals.pth\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-主旋律人声vocals+其他instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP5-主旋律人声vocals+其他instrumentals.pth" - ], - "metadata": { - "id": "HugjmZqZRuiF" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", - "source": [ - "# @title 下载hubert_base\n", - "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o hubert_base.pt" - ], + "execution_count": null, "metadata": { "id": "2RCaT9FTR0ej" }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", + "outputs": [], "source": [ - "# @title 挂载谷歌云盘\n", - "\n", - "from google.colab import drive\n", - "\n", - "drive.mount(\"/content/drive\")" - ], - "metadata": { - "id": "jwu07JgqoFON" - }, - "execution_count": null, - "outputs": [] + "# @title 下载hubert_base\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o hubert_base.pt" + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# @title #下载rmvpe模型\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o rmvpe.pt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Mwk7Q0Loqzjx" + }, + "outputs": [], "source": [ "# @title 从谷歌云盘加载打包好的数据集到/content/dataset\n", "\n", @@ -167,43 +174,43 @@ "\n", "!mkdir -p /content/dataset\n", "!unzip -d /content/dataset -B {DATASET}" - ], - "metadata": { - "id": "Mwk7Q0Loqzjx" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "PDlFxWHWEynD" + }, + "outputs": [], "source": [ "# @title 重命名数据集中的重名文件\n", "!ls -a /content/dataset/\n", "!rename 's/(\\w+)\\.(\\w+)~(\\d*)/$1_$3.$2/' /content/dataset/*.*~*" - ], - "metadata": { - "id": "PDlFxWHWEynD" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "7vh6vphDwO0b" + }, + "outputs": [], "source": [ "# @title 启动web\n", "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", "# %load_ext tensorboard\n", "# %tensorboard --logdir /content/Retrieval-based-Voice-Conversion-WebUI/logs\n", "!python3 infer-web.py --colab --pycmd python3" - ], - "metadata": { - "id": "7vh6vphDwO0b" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "FgJuNeAwx5Y_" + }, + "outputs": [], "source": [ "# @title 手动将训练后的模型文件备份到谷歌云盘\n", "# @markdown 需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", @@ -219,15 +226,15 @@ "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/total_*.npy /content/drive/MyDrive/\n", "\n", "!cp /content/Retrieval-based-Voice-Conversion-WebUI/weights/{MODELNAME}.pth /content/drive/MyDrive/{MODELNAME}{MODELEPOCH}.pth" - ], - "metadata": { - "id": "FgJuNeAwx5Y_" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "OVQoLQJXS7WX" + }, + "outputs": [], "source": [ "# @title 从谷歌云盘恢复pth\n", "# @markdown 需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", @@ -244,15 +251,15 @@ "!cp /content/drive/MyDrive/*.index /content/\n", "!cp /content/drive/MyDrive/*.npy /content/\n", "!cp /content/drive/MyDrive/{MODELNAME}{MODELEPOCH}.pth /content/Retrieval-based-Voice-Conversion-WebUI/weights/{MODELNAME}.pth" - ], - "metadata": { - "id": "OVQoLQJXS7WX" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZKAyuKb9J6dz" + }, + "outputs": [], "source": [ "# @title 手动预处理(不推荐)\n", "# @markdown 模型名\n", @@ -263,15 +270,15 @@ "THREADCOUNT = 8 # @param {type:\"integer\"}\n", "\n", "!python3 trainset_preprocess_pipeline_print.py /content/dataset {BITRATE} {THREADCOUNT} logs/{MODELNAME} True" - ], - "metadata": { - "id": "ZKAyuKb9J6dz" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "CrxJqzAUKmPJ" + }, + "outputs": [], "source": [ "# @title 手动提取特征(不推荐)\n", "# @markdown 模型名\n", @@ -284,15 +291,15 @@ "!python3 extract_f0_print.py logs/{MODELNAME} {THREADCOUNT} {ALGO}\n", "\n", "!python3 extract_feature_print.py cpu 1 0 0 logs/{MODELNAME}" - ], - "metadata": { - "id": "CrxJqzAUKmPJ" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "IMLPLKOaKj58" + }, + "outputs": [], "source": [ "# @title 手动训练(不推荐)\n", "# @markdown 模型名\n", @@ -313,15 +320,15 @@ "ONLYLATEST = 0 # @param {type:\"integer\"}\n", "\n", "!python3 train_nsf_sim_cache_sid_load_pretrain.py -e lulu -sr {MODELSAMPLE} -f0 1 -bs {BATCHSIZE} -g {USEGPU} -te {MODELEPOCH} -se {EPOCHSAVE} -pg pretrained/f0G{MODELSAMPLE}.pth -pd pretrained/f0D{MODELSAMPLE}.pth -l {ONLYLATEST} -c {CACHEDATA}" - ], - "metadata": { - "id": "IMLPLKOaKj58" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "haYA81hySuDl" + }, + "outputs": [], "source": [ "# @title 删除其它pth,只留选中的(慎点,仔细看代码)\n", "# @markdown 模型名\n", @@ -343,15 +350,15 @@ "\n", "!echo \"删除完成\"\n", "!ls /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}" - ], - "metadata": { - "id": "haYA81hySuDl" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "QhSiPTVPoIRh" + }, + "outputs": [], "source": [ "# @title 清除项目下所有文件,只留选中的模型(慎点,仔细看代码)\n", "# @markdown 模型名\n", @@ -373,12 +380,24 @@ "\n", "!echo \"删除完成\"\n", "!ls /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}" - ], - "metadata": { - "id": "QhSiPTVPoIRh" - }, - "execution_count": null, - "outputs": [] + ] } - ] + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "private_outputs": true, + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/Retrieval_based_Voice_Conversion_WebUI_v2.ipynb b/Retrieval_based_Voice_Conversion_WebUI_v2.ipynb index c286d69..1eca9e1 100644 --- a/Retrieval_based_Voice_Conversion_WebUI_v2.ipynb +++ b/Retrieval_based_Voice_Conversion_WebUI_v2.ipynb @@ -1,5 +1,13 @@ { "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Retrieval-based-Voice-Conversion-WebUI](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI) Training notebook" + ] + }, { "attachments": {}, "cell_type": "markdown", @@ -18,10 +26,25 @@ }, "outputs": [], "source": [ - "# @title 查看显卡\n", + "# @title #查看显卡\n", "!nvidia-smi" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jwu07JgqoFON" + }, + "outputs": [], + "source": [ + "# @title 挂载谷歌云盘\n", + "\n", + "from google.colab import drive\n", + "\n", + "drive.mount(\"/content/drive\")" + ] + }, { "cell_type": "code", "execution_count": null, @@ -30,7 +53,7 @@ }, "outputs": [], "source": [ - "# @title 安装依赖\n", + "# @title #安装依赖\n", "!apt-get -y install build-essential python3-dev ffmpeg\n", "!pip3 install --upgrade setuptools wheel\n", "!pip3 install --upgrade pip\n", @@ -45,7 +68,7 @@ }, "outputs": [], "source": [ - "# @title 克隆仓库\n", + "# @title #克隆仓库\n", "\n", "!mkdir Retrieval-based-Voice-Conversion-WebUI\n", "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", @@ -63,7 +86,7 @@ }, "outputs": [], "source": [ - "# @title 更新仓库(一般无需执行)\n", + "# @title #更新仓库(一般无需执行)\n", "!git pull" ] }, @@ -75,7 +98,7 @@ }, "outputs": [], "source": [ - "# @title 安装aria2\n", + "# @title #安装aria2\n", "!apt -y install -qq aria2" ] }, @@ -126,7 +149,7 @@ }, "outputs": [], "source": [ - "# @title 下载人声分离模型\n", + "# @title #下载人声分离模型\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP2-人声vocals+非人声instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP2-人声vocals+非人声instrumentals.pth\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/uvr5_weights/HP5-主旋律人声vocals+其他instrumentals.pth -d /content/Retrieval-based-Voice-Conversion-WebUI/uvr5_weights -o HP5-主旋律人声vocals+其他instrumentals.pth" ] @@ -139,23 +162,18 @@ }, "outputs": [], "source": [ - "# @title 下载hubert_base\n", + "# @title #下载hubert_base\n", "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o hubert_base.pt" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "id": "jwu07JgqoFON" - }, + "metadata": {}, "outputs": [], "source": [ - "# @title 挂载谷歌云盘\n", - "\n", - "from google.colab import drive\n", - "\n", - "drive.mount(\"/content/drive\")" + "# @title #下载rmvpe模型\n", + "!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt -d /content/Retrieval-based-Voice-Conversion-WebUI -o rmvpe.pt" ] }, { @@ -166,7 +184,7 @@ }, "outputs": [], "source": [ - "# @title 从谷歌云盘加载打包好的数据集到/content/dataset\n", + "# @title #从谷歌云盘加载打包好的数据集到/content/dataset\n", "\n", "# @markdown 数据集位置\n", "DATASET = (\n", @@ -185,7 +203,7 @@ }, "outputs": [], "source": [ - "# @title 重命名数据集中的重名文件\n", + "# @title #重命名数据集中的重名文件\n", "!ls -a /content/dataset/\n", "!rename 's/(\\w+)\\.(\\w+)~(\\d*)/$1_$3.$2/' /content/dataset/*.*~*" ] @@ -198,7 +216,7 @@ }, "outputs": [], "source": [ - "# @title 启动web\n", + "# @title #启动webui\n", "%cd /content/Retrieval-based-Voice-Conversion-WebUI\n", "# %load_ext tensorboard\n", "# %tensorboard --logdir /content/Retrieval-based-Voice-Conversion-WebUI/logs\n", @@ -213,12 +231,12 @@ }, "outputs": [], "source": [ - "# @title 手动将训练后的模型文件备份到谷歌云盘\n", - "# @markdown 需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", + "# @title #手动将训练后的模型文件备份到谷歌云盘\n", + "# @markdown #需要自己查看logs文件夹下模型的文件名,手动修改下方命令末尾的文件名\n", "\n", - "# @markdown 模型名\n", + "# @markdown #模型名\n", "MODELNAME = \"lulu\" # @param {type:\"string\"}\n", - "# @markdown 模型epoch\n", + "# @markdown #模型epoch\n", "MODELEPOCH = 9600 # @param {type:\"integer\"}\n", "\n", "!cp /content/Retrieval-based-Voice-Conversion-WebUI/logs/{MODELNAME}/G_{MODELEPOCH}.pth /content/drive/MyDrive/{MODELNAME}_D_{MODELEPOCH}.pth\n",