mirror of
https://github.com/w-okada/voice-changer.git
synced 2025-02-02 16:23:58 +03:00
2 lines
8.0 KiB
Plaintext
2 lines
8.0 KiB
Plaintext
{"cells":[{"cell_type":"markdown","metadata":{},"source":["<a href=\"https://www.kaggle.com/code/hinabl/public-w-okada-voice-changer?scriptVersionId=151765879\" target=\"_blank\"><img align=\"left\" alt=\"Kaggle\" title=\"Open in Kaggle\" src=\"https://kaggle.com/static/images/open-in-kaggle.svg\"></a>"]},{"cell_type":"markdown","metadata":{"id":"Lbbmx_Vjl0zo"},"source":["### [w-okada's Voice Changer](https://github.com/w-okada/voice-changer) | **Kaggle**\n","\n","---\n","\n","## **⬇ VERY IMPORTANT ⬇**\n","\n","You can use the following settings for better results:\n","\n","If you're using a index: `f0: RMVPE_ONNX | Chunk: 112 or higher | Extra: 8192`<br>\n","If you're not using a index: `f0: RMVPE_ONNX | Chunk: 96 or higher | Extra: 16384`<br>\n","**Don't forget to select a GPU in the GPU field, <b>NEVER</b> use CPU!\n","> Seems that PTH models performance better than ONNX for now, you can still try ONNX models and see if it satisfies you\n","\n","\n","*You can always [click here](https://github.com/YunaOneeChan/Voice-Changer-Settings) to check if these settings are up-to-date*\n","\n","---\n","**Credits**<br>\n","Realtime Voice Changer by [w-okada](https://github.com/w-okada)<br>\n","Notebook files updated by [rafacasari](https://github.com/Rafacasari)<br>\n","Recommended settings by [Raven](https://github.com/RavenCutie21)<br>\n","Modded again by [Hina](https://github.com/hinabl)\n","\n","**Need help?** [AI Hub Discord](https://discord.gg/aihub) » ***#help-realtime-vc***\n","\n","---"]},{"cell_type":"markdown","metadata":{},"source":["# Kaggle Tutorial\n","Running this notebook can be a bit complicated.\\\n","After created your Kaggle account, you'll need to **verify your phone number** to be able to use Internet Connection and GPUs.\\\n","Follow the instructions on the image below.\n","\n","## <font color=blue>*You can use <b>GPU P100</b> instead of GPU T4, some people are telling that <b>P100 is better</b>.*</font>\n","![instructions.png](https://i.imgur.com/0NutkD8.png)"]},{"cell_type":"markdown","metadata":{},"source":["# Clone repository and install dependencies\n","This first step will download the latest version of Voice Changer and install the dependencies. **It will take some time to complete.**"]},{"cell_type":"code","execution_count":null,"metadata":{"_kg_hide-output":false,"cellView":"form","execution":{"iopub.execute_input":"2023-11-13T14:29:34.688434Z","iopub.status.busy":"2023-11-13T14:29:34.68815Z","iopub.status.idle":"2023-11-13T14:35:25.010808Z","shell.execute_reply":"2023-11-13T14:35:25.009639Z","shell.execute_reply.started":"2023-11-13T14:29:34.688408Z"},"id":"86wTFmqsNMnD","trusted":true},"outputs":[],"source":["# This will make that we're on the right folder before installing\n","%cd /kaggle/working/\n","\n","!pip install colorama --quiet\n","from colorama import Fore, Style\n","import os\n","\n","!mkdir Hmod\n","%cd Hmod\n","!git clone https://github.com/w-okada/voice-changer.git --depth=1 --quiet .\n","print(f\"{Fore.GREEN}> Successfully cloned the repository!{Style.RESET_ALL}\")\n","%cd server\n","!sed -i \"s/-.-.-.-/Kaggle.Mod/\" '../client/demo/dist/assets/gui_settings/version.txt'\n","!mv MMVCServerSIO.py Hmod.py\n","!sed -i \"s/MMVCServerSIO/Hmod/\" Hmod.py\n","\n","print(f\"{Fore.CYAN}> Installing libportaudio2...{Style.RESET_ALL}\")\n","!apt-get -y install libportaudio2 -qq\n","\n","print(f\"{Fore.CYAN}> Installing pre-dependencies...{Style.RESET_ALL}\")\n","# Install dependencies that are missing from requirements.txt and pyngrok\n","!pip install faiss-gpu fairseq pyngrok --quiet\n","!pip install pyworld --no-build-isolation\n","print(f\"{Fore.CYAN}> Installing dependencies from requirements.txt...{Style.RESET_ALL}\")\n","!pip install -r requirements.txt --quiet\n","\n","# Download the default settings ^-^\n","if not os.path.exists(\"/kaggle/working/Hmod/server/stored_setting.json\"):\n"," !wget -q https://gist.githubusercontent.com/Rafacasari/d820d945497a01112e1a9ba331cbad4f/raw/8e0a426c22688b05dd9c541648bceab27e422dd6/kaggle_setting.json -O /kaggle/working/24apuiBokE3TjZwc6tuqqv39SwP_2LRouVj3M9oZZCbzgntuG /server/stored_setting.json\n","print(f\"{Fore.GREEN}> Successfully installed all packages!{Style.RESET_ALL}\")\n","\n","print(f\"{Fore.GREEN}> You can safely ignore the dependency conflict errors, it's a error from Kaggle and don't interfer on Voice Changer!{Style.RESET_ALL}\")"]},{"cell_type":"markdown","metadata":{},"source":["# Start Server **using ngrok**\n","This cell will start the server, the first time that you run it will download the models, so it can take a while (~1-2 minutes)\n","\n","---\n","You'll need a ngrok account, but <font color=green>**it's free**</font> and easy to create!\n","---\n","**1** - Create a **free** account at [ngrok](https://dashboard.ngrok.com/signup)\\\n","**2** - If you didn't logged in with Google or Github, you will need to **verify your e-mail**!\\\n","**3** - Click [this link](https://dashboard.ngrok.com/get-started/your-authtoken) to get your auth token, and replace **YOUR_TOKEN_HERE** with your token.\\\n","**4** - *(optional)* Change to a region near to you"]},{"cell_type":"code","execution_count":null,"metadata":{"_kg_hide-input":false,"cellView":"form","execution":{"iopub.execute_input":"2023-11-13T14:36:20.530081Z","iopub.status.busy":"2023-11-13T14:36:20.529333Z"},"id":"lLWQuUd7WW9U","scrolled":true,"trusted":true},"outputs":[],"source":["Token = 'Token_Here'\n","Region = \"ap\" # Read the instructions below\n","\n","# You can change the region for a better latency, use only the abbreviation\n","# Choose between this options:\n","# us -> United States (Ohio)\n","# ap -> Asia/Pacific (Singapore)\n","# au -> Australia (Sydney)\n","# eu -> Europe (Frankfurt)\n","# in -> India (Mumbai)\n","# jp -> Japan (Tokyo)\n","# sa -> South America (Sao Paulo)\n","\n","# ---------------------------------\n","# DO NOT TOUCH ANYTHING DOWN BELOW!\n","\n","%cd /kaggle/working/Hmod/server\n","\n","from pyngrok import conf, ngrok\n","MyConfig = conf.PyngrokConfig()\n","MyConfig.auth_token = Token\n","MyConfig.region = Region\n","conf.get_default().authtoken = Token\n","conf.get_default().region = Region\n","conf.set_default(MyConfig);\n","\n","import subprocess, threading, time, socket, urllib.request\n","PORT = 8000\n","\n","from pyngrok import ngrok\n","ngrokConnection = ngrok.connect(PORT)\n","public_url = ngrokConnection.public_url\n","\n","def wait_for_server():\n"," while True:\n"," time.sleep(0.5)\n"," sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"," result = sock.connect_ex(('127.0.0.1', PORT))\n"," if result == 0:\n"," break\n"," sock.close()\n"," print(\"--------- SERVER READY! ---------\")\n"," print(\"Your server is available at:\")\n"," print(public_url)\n"," print(\"---------------------------------\")\n","\n","threading.Thread(target=wait_for_server, daemon=True).start()\n","\n","!python3 Hmod.py \\\n"," -p {PORT} \\\n"," --https False \\\n"," --content_vec_500 pretrain/checkpoint_best_legacy_500.pt \\\n"," --content_vec_500_onnx pretrain/content_vec_500.onnx \\\n"," --content_vec_500_onnx_on true \\\n"," --hubert_base pretrain/hubert_base.pt \\\n"," --hubert_base_jp pretrain/rinna_hubert_base_jp.pt \\\n"," --hubert_soft pretrain/hubert/hubert-soft-0d54a1f4.pt \\\n"," --nsf_hifigan pretrain/nsf_hifigan/model \\\n"," --crepe_onnx_full pretrain/crepe_onnx_full.onnx \\\n"," --crepe_onnx_tiny pretrain/crepe_onnx_tiny.onnx \\\n"," --rmvpe pretrain/rmvpe.pt \\\n"," --model_dir model_dir \\\n"," --samples samples.json \\\n"," --allowed-origins \"*\"\n","\n","ngrok.disconnect(ngrokConnection.public_url)"]}],"metadata":{"kaggle":{"accelerator":"gpu","dataSources":[],"dockerImageVersionId":30559,"isGpuEnabled":true,"isInternetEnabled":true,"language":"python","sourceType":"notebook"},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.6.4"}},"nbformat":4,"nbformat_minor":4}
|