{ "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":[ { "cell_type":"markdown", "source":[ "## Initialization" ], "metadata":{ "id":"ni41hmE03DL6" } }, { "cell_type":"code", "execution_count":null, "metadata":{ "id":"FtsMKKfH18iM" }, "outputs":[ ], "source":[ "!apt install python3.10-venv\n", "!git clone https://git.ecker.tech/mrq/ai-voice-cloning/\n", "%cd /content/ai-voice-cloning\n", "# get local dependencies\n", "!git submodule init\n", "!git submodule update --remote\n", "# setup venv\n", "!python3 -m venv venv\n", "!source ./venv/bin/activate\n", "!python3 -m pip install --upgrade pip # just to be safe\n", "# CUDA\n", "!pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118\n", "# install requirements\n", "!python3 -m pip install -r ./modules/tortoise-tts/requirements.txt # install TorToiSe requirements\n", "!python3 -m pip install -e ./modules/tortoise-tts/ # install TorToiSe\n", "!python3 -m pip install -r ./modules/dlas/requirements.txt # instal DLAS requirements, last, because whisperx will break a dependency here\n", "!python3 -m pip install -e ./modules/dlas/ # install DLAS\n", "!python3 -m pip install -r ./requirements.txt # install local requirements" ] }, { "cell_type":"markdown", "source":[ "# Update Repos" ], "metadata":{ "id":"IzrGt5IcHlAD" } }, { "cell_type":"code", "source":[ "# for my debugging purposes\n", "%cd /content/ai-voice-cloning/\n", "!./update.sh" ], "metadata":{ "id":"3DktoOXSHmtw" }, "execution_count":null, "outputs":[ ] }, { "cell_type":"markdown", "source":[ "# Mount Drive" ], "metadata":{ "id":"2Y4t9zDIZMTg" } }, { "cell_type":"code", "source":[ "# only run once, this will save all userdata to your Drive\n", "# it shouldn't delete through symlinks, but you never know\n", "\n", "from google.colab import drive\n", "\n", "%cd /content/ai-voice-cloning\n", "drive.flush_and_unmount()\n", "!rm -r ./{training,results,voices,config}\n", "drive.mount('/content/drive')\n", "!mkdir /content/drive/MyDrive/ai-voice-cloning/\n", "!mv /content/drive/MyDrive/{training,results,voices,config} /content/drive/MyDrive/ai-voice-cloning\n", "!mkdir /content/drive/MyDrive/ai-voice-cloning/{training,results,voices,config}\n", "!ln -s /content/drive/MyDrive/ai-voice-cloning/{training,results,voices,config} ./" ], "metadata":{ "id":"SGt9gyvubveT" }, "execution_count":null, "outputs":[ ] }, { "cell_type":"markdown", "source":[ "## Running" ], "metadata":{ "id":"EM3iNqgJF6Be" } }, { "cell_type":"code", "source":[ "%cd /content/ai-voice-cloning/\n", "!source ./venv/bin/activate\n", "!python3 ./src/main.py --share" ], "metadata":{ "id":"QRA8jF3cF-YJ" }, "execution_count":null, "outputs":[ ] }, { "cell_type":"markdown", "source":[ "# Restart Runtime" ], "metadata":{ "id":"vH9KU7SMGDxb" } }, { "cell_type":"code", "source":[ "exit()" ], "metadata":{ "id":"EWeyUPvgGDX5" }, "execution_count":null, "outputs":[ ] }, { "cell_type":"markdown", "source":[ "# Fallback Training" ], "metadata":{ "id":"ggLY9A9KA21D" } }, { "cell_type":"code", "source":[ "# This is in case you can't get training through the web UI\n", "%cd /content/ai-voice-cloning\n", "!python ./dlas/codes/train.py -opt ./training/finetune.yaml" ], "metadata":{ "id":"-KayB8klA5tY" }, "execution_count":null, "outputs":[ ] }, { "cell_type":"markdown", "source":[ "## Exporting" ], "metadata":{ "id":"2AnVQxEJx47p" } }, { "cell_type":"code", "source":[ "# if you're not using drive mounting\n", "%cd /content/ai-voice-cloning\n", "!apt install -y p7zip-full\n", "from datetime import datetime\n", "timestamp = datetime.now().strftime('%m-%d-%Y_%H:%M:%S')\n", "!mkdir -p \"../{timestamp}/results\"\n", "!mv ./results/* \"../{timestamp}/results/.\"\n", "!mv ./training/* \"../{timestamp}/training/.\"\n", "!7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on \"../{timestamp}.7z\" \"../{timestamp}/\"\n", "!ls ~/\n", "!echo \"Finished zipping, archive is available at {timestamp}.7z\"" ], "metadata":{ "id":"YOACiDCXx72G" }, "execution_count":null, "outputs":[ ] } ] }