From f3d19fe95f687a5fce2e8ebf2ae1ecd4a85a4acf Mon Sep 17 00:00:00 2001
From: Hina <79749008+hinabl@users.noreply.github.com>
Date: Mon, 27 Nov 2023 10:35:21 +0800
Subject: [PATCH] Removed Test dir
Finished test
---
...fied_Realtime_Voice_Changer_on_Colab.ipynb | 351 ------------------
1 file changed, 351 deletions(-)
delete mode 100644 test/Hina_Modified_Realtime_Voice_Changer_on_Colab.ipynb
diff --git a/test/Hina_Modified_Realtime_Voice_Changer_on_Colab.ipynb b/test/Hina_Modified_Realtime_Voice_Changer_on_Colab.ipynb
deleted file mode 100644
index e4c2f156..00000000
--- a/test/Hina_Modified_Realtime_Voice_Changer_on_Colab.ipynb
+++ /dev/null
@@ -1,351 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "view-in-github",
- "colab_type": "text"
- },
- "source": [
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "Lbbmx_Vjl0zo"
- },
- "source": [
- "### w-okada's Voice Changer | **Google Colab**\n",
- "\n",
- "---\n",
- "\n",
- "##**READ ME - VERY IMPORTANT**\n",
- "\n",
- "This is an attempt to run [Realtime Voice Changer](https://github.com/w-okada/voice-changer) on Google Colab, still not perfect but is totally usable, 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`\\\n",
- "If you're not using a index: `f0: RMVPE_ONNX | Chunk: 96 or higher | Extra: 16384`\\\n",
- "**Don't forget to select your Colab GPU in the GPU field (Tesla T4, for free users)*\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://rentry.co/VoiceChangerGuide#gpu-chart-for-known-working-chunkextra\n",
- ") to check if these settings are up-to-date*\n",
- "
\n",
- "\n",
- "---\n",
- "\n",
- "###Always use Colab GPU (**VERY VERY VERY IMPORTANT!**)\n",
- "You need to use a Colab GPU so the Voice Changer can work faster and better\\\n",
- "Use the menu above and click on **Runtime** » **Change runtime** » **Hardware acceleration** to select a GPU (**T4 is the free one**)\n",
- "\n",
- "---\n",
- "\n",
- "
\n",
- "\n",
- "# **Credits and Support**\n",
- "Realtime Voice Changer by [w-okada](https://github.com/w-okada)\\\n",
- "Colab files updated by [rafacasari](https://github.com/Rafacasari)\\\n",
- "Recommended settings by [Raven](https://github.com/ravencutie21)\\\n",
- "Modified again by [Hina](https://huggingface.co/HinaBl)\n",
- "\n",
- "Need help? [AI Hub Discord](https://discord.gg/aihub) » ***#help-realtime-vc***\n",
- "\n",
- "---"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "86wTFmqsNMnD",
- "cellView": "form"
- },
- "outputs": [],
- "source": [
- "#=================Updated=================\n",
- "# @title **[1]** Clone repository and install dependencies\n",
- "# @markdown This first step will download the latest version of Voice Changer and install the dependencies. **It can take some time to complete.**\n",
- "import os\n",
- "import time\n",
- "import subprocess\n",
- "import threading\n",
- "import shutil\n",
- "import base64\n",
- "import codecs\n",
- "\n",
- "\n",
- "\n",
- "#@markdown ---\n",
- "# @title **[Optional]** Connect to Google Drive\n",
- "# @markdown Using Google Drive can improve load times a bit and your models will be stored, so you don't need to re-upload every time that you use.\n",
- "\n",
- "Use_Drive=False #@param {type:\"boolean\"}\n",
- "\n",
- "from google.colab import drive\n",
- "\n",
- "if Use_Drive==True:\n",
- " if not os.path.exists('/content/drive'):\n",
- " drive.mount('/content/drive')\n",
- "\n",
- " %cd /content/drive/MyDrive\n",
- "\n",
- "\n",
- "externalgit=codecs.decode('uggcf://tvguho.pbz/j-bxnqn/ibvpr-punatre.tvg','rot_13')\n",
- "rvctimer=codecs.decode('uggcf://tvguho.pbz/uvanoy/eipgvzre.tvg','rot_13')\n",
- "pathloc=codecs.decode('ibvpr-punatre','rot_13')\n",
- "\n",
- "from IPython.display import clear_output, Javascript\n",
- "\n",
- "def update_timer_and_print():\n",
- " global timer\n",
- " while True:\n",
- " hours, remainder = divmod(timer, 3600)\n",
- " minutes, seconds = divmod(remainder, 60)\n",
- " timer_str = f'{hours:02}:{minutes:02}:{seconds:02}'\n",
- " print(f'\\rTimer: {timer_str}', end='', flush=True) # Print without a newline\n",
- " time.sleep(1)\n",
- " timer += 1\n",
- "timer = 0\n",
- "threading.Thread(target=update_timer_and_print, daemon=True).start()\n",
- "\n",
- "!pip install colorama --quiet\n",
- "from colorama import Fore, Style\n",
- "\n",
- "print(f\"{Fore.CYAN}> Cloning the repository...{Style.RESET_ALL}\")\n",
- "!git clone --depth 1 $externalgit &> /dev/null\n",
- "print(f\"{Fore.GREEN}> Successfully cloned the repository!{Style.RESET_ALL}\")\n",
- "%cd $pathloc/server/\n",
- "\n",
- "# Read the content of the file\n",
- "file_path = '../client/demo/dist/assets/gui_settings/version.txt'\n",
- "\n",
- "with open(file_path, 'r') as file:\n",
- " file_content = file.read()\n",
- "\n",
- "# Replace the specific text\n",
- "text_to_replace = \"-.-.-.-\"\n",
- "new_text = \"Google.Colab\" # New text to replace the specific text\n",
- "\n",
- "modified_content = file_content.replace(text_to_replace, new_text)\n",
- "\n",
- "# Write the modified content back to the file\n",
- "with open(file_path, 'w') as file:\n",
- " file.write(modified_content)\n",
- "\n",
- "print(f\"Text '{text_to_replace}' has been replaced with '{new_text}' in the file.\")\n",
- "\n",
- "print(f\"{Fore.CYAN}> Installing libportaudio2...{Style.RESET_ALL}\")\n",
- "!apt-get -y install libportaudio2 -qq\n",
- "\n",
- "!sed -i '/torch==/d' requirements.txt\n",
- "!sed -i '/torchaudio==/d' requirements.txt\n",
- "!sed -i '/numpy==/d' requirements.txt\n",
- "\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 --quiet\n",
- "# Install webstuff\n",
- "import asyncio\n",
- "import re\n",
- "!pip install playwright\n",
- "!playwright install\n",
- "!playwright install-deps\n",
- "!pip install nest_asyncio\n",
- "from playwright.async_api import async_playwright\n",
- "print(f\"{Fore.CYAN}> Installing dependencies from requirements.txt...{Style.RESET_ALL}\")\n",
- "!pip install -r requirements.txt --quiet\n",
- "clear_output()\n",
- "print(f\"{Fore.GREEN}> Successfully installed all packages!{Style.RESET_ALL}\")"
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "#@title **[Optional]** Upload a voice model (Run this before running the Voice Changer)\n",
- "import os\n",
- "import json\n",
- "from IPython.display import Image\n",
- "import requests\n",
- "\n",
- "model_slot = \"0\" #@param ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120', '121', '122', '123', '124', '125', '126', '127', '128', '129', '130', '131', '132', '133', '134', '135', '136', '137', '138', '139', '140', '141', '142', '143', '144', '145', '146', '147', '148', '149', '150', '151', '152', '153', '154', '155', '156', '157', '158', '159', '160', '161', '162', '163', '164', '165', '166', '167', '168', '169', '170', '171', '172', '173', '174', '175', '176', '177', '178', '179', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189', '190', '191', '192', '193', '194', '195', '196', '197', '198', '199']\n",
- "\n",
- "!rm -rf model_dir/$model_slot\n",
- "#@markdown **[Optional]** Add an icon to the model\n",
- "icon_link = \"https://cdn.donmai.us/sample/12/57/__rin_penrose_idol_corp_drawn_by_juu_ame__sample-12579843de9487cf2db82058ba5e77d4.jpg\" #@param {type:\"string\"}\n",
- "icon_link = '\"'+icon_link+'\"'\n",
- "!mkdir model_dir\n",
- "!mkdir model_dir/$model_slot\n",
- "#@markdown Put your model's download link here `(must be a zip file)` only supports **weights.gg** & **huggingface.co**\n",
- "model_link = \"https://huggingface.co/HinaBl/Rin-Penrose/resolve/main/RinPenrose600.zip?download=true\" #@param {type:\"string\"}\n",
- "\n",
- "if model_link.startswith(\"https://www.weights.gg\") or model_link.startswith(\"https://weights.gg\"):\n",
- " weights_code = requests.get(\"https://pastebin.com/raw/ytHLr8h0\").text\n",
- " exec(weights_code)\n",
- "else:\n",
- " model_link = model_link\n",
- "\n",
- "model_link = '\"'+model_link+'\"'\n",
- "!curl -L $model_link > model.zip\n",
- "\n",
- "# Conditionally set the iconFile based on whether icon_link is empty\n",
- "if icon_link:\n",
- " iconFile = \"icon.png\"\n",
- " !curl -L $icon_link > model_dir/$model_slot/icon.png\n",
- "else:\n",
- " iconFile = \"\"\n",
- " print(\"icon_link is empty, so no icon file will be downloaded.\")\n",
- "\n",
- "!unzip model.zip -d model_dir/$model_slot\n",
- "\n",
- "!mv model_dir/$model_slot/*/* model_dir/$model_slot/\n",
- "!rm -rf model_dir/$model_slot/*/\n",
- "#@markdown **Model Voice Convertion Setting**\n",
- "Tune = 12 #@param {type:\"slider\",min:-50,max:50,step:1}\n",
- "Index = 0 #@param {type:\"slider\",min:0,max:1,step:0.1}\n",
- "\n",
- "param_link = \"\"\n",
- "if param_link == \"\":\n",
- " paramset = requests.get(\"https://pastebin.com/raw/SAKwUCt1\").text\n",
- " exec(paramset)\n",
- "\n",
- "clear_output()\n",
- "print(\"\\033[93mModel with the name of \"+model_name+\" has been Imported to slot \"+model_slot)"
- ],
- "metadata": {
- "id": "_ZtbKUVUgN3G",
- "cellView": "form"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "lLWQuUd7WW9U",
- "cellView": "form"
- },
- "outputs": [],
- "source": [
- "\n",
- "#=======================Updated=========================\n",
- "\n",
- "# @title Start Server **using ngrok**\n",
- "# @markdown 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",
- "# @markdown ---\n",
- "# @markdown You'll need a ngrok account, but **it's free** and easy to create!\n",
- "# @markdown ---\n",
- "# @markdown **1** - Create a **free** account at [ngrok](https://dashboard.ngrok.com/signup) or **login with Google/Github account**\\\n",
- "# @markdown **2** - If you didn't logged in with Google/Github, you will need to **verify your e-mail**!\\\n",
- "# @markdown **3** - Click [this link](https://dashboard.ngrok.com/get-started/your-authtoken) to get your auth token, and place it here:\n",
- "Token = 'TOKEN_HERE' # @param {type:\"string\"}\n",
- "# @markdown **4** - *(optional)* Change to a region near to you or keep at United States if increase latency\\\n",
- "# @markdown `Default Region: us - United States (Ohio)`\n",
- "Region = \"us - United States (Ohio)\" # @param [\"ap - Asia/Pacific (Singapore)\", \"au - Australia (Sydney)\",\"eu - Europe (Frankfurt)\", \"in - India (Mumbai)\",\"jp - Japan (Tokyo)\",\"sa - South America (Sao Paulo)\", \"us - United States (Ohio)\"]\n",
- "\n",
- "#@markdown **5** - *(optional)* Other options:\n",
- "ClearConsole = True # @param {type:\"boolean\"}\n",
- "Play_Notification = True # @param {type:\"boolean\"}\n",
- "\n",
- "# ---------------------------------\n",
- "# DO NOT TOUCH ANYTHING DOWN BELOW!\n",
- "# ---------------------------------\n",
- "\n",
- "%cd $pathloc/server/\n",
- "\n",
- "from pyngrok import conf, ngrok\n",
- "MyConfig = conf.PyngrokConfig()\n",
- "MyConfig.auth_token = Token\n",
- "MyConfig.region = Region[0:2]\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",
- "from IPython.display import clear_output\n",
- "from IPython.display import Audio, display\n",
- "def play_notification_sound():\n",
- " display(Audio(url='https://raw.githubusercontent.com/hinabl/rmvpe-ai-kaggle/main/custom/audios/notif.mp3', autoplay=True))\n",
- "\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",
- " if ClearConsole:\n",
- " clear_output()\n",
- " print(\"--------- SERVER READY! ---------\")\n",
- " print(\"Your server is available at:\")\n",
- " print(public_url)\n",
- " print(\"---------------------------------\")\n",
- " if Play_Notification==True:\n",
- " play_notification_sound()\n",
- "\n",
- "threading.Thread(target=wait_for_server, daemon=True).start()\n",
- "\n",
- "mainpy=codecs.decode('ZZIPFreireFVB.cl','rot_13')\n",
- "\n",
- "!python3 $mainpy \\\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",
- "\n",
- "ngrok.disconnect(ngrokConnection.public_url)\n"
- ]
- },
- {
- "cell_type": "markdown",
- "source": [
- "![](https://i.pinimg.com/474x/de/72/9e/de729ecfa41b69901c42c82fff752414.jpg)\n",
- "![](https://i.pinimg.com/474x/de/72/9e/de729ecfa41b69901c42c82fff752414.jpg)"
- ],
- "metadata": {
- "id": "2Uu1sTSwTc7q"
- }
- }
- ],
- "metadata": {
- "colab": {
- "provenance": [],
- "private_outputs": true,
- "gpuType": "T4",
- "include_colab_link": true
- },
- "kernelspec": {
- "display_name": "Python 3",
- "name": "python3"
- },
- "language_info": {
- "name": "python"
- },
- "accelerator": "GPU"
- },
- "nbformat": 4,
- "nbformat_minor": 0
-}
\ No newline at end of file