{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "45857cb2", "metadata": { "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", "execution": { "iopub.execute_input": "2024-02-18T14:43:46.735480Z", "iopub.status.busy": "2024-02-18T14:43:46.735183Z", "iopub.status.idle": "2024-02-18T14:48:10.724175Z", "shell.execute_reply": "2024-02-18T14:48:10.723059Z" }, "papermill": { "duration": 263.994935, "end_time": "2024-02-18T14:48:10.726613", "exception": false, "start_time": "2024-02-18T14:43:46.731678", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "!git clone https://github.com/RVC-Boss/GPT-SoVITS.git\n", "%cd GPT-SoVITS\n", "!apt-get update && apt-get install -y --no-install-recommends tzdata ffmpeg libsox-dev parallel aria2 git git-lfs && git lfs install\n", "!pip install -r requirements.txt" ] }, { "cell_type": "code", "execution_count": null, "id": "b9d346b4", "metadata": { "execution": { "iopub.execute_input": "2024-02-18T14:48:10.815802Z", "iopub.status.busy": "2024-02-18T14:48:10.814899Z", "iopub.status.idle": "2024-02-18T14:50:31.253276Z", "shell.execute_reply": "2024-02-18T14:50:31.252024Z" }, "papermill": { "duration": 140.484893, "end_time": "2024-02-18T14:50:31.255720", "exception": false, "start_time": "2024-02-18T14:48:10.770827", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "# @title Download pretrained models 下载预训练模型\n", "!mkdir -p /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models\n", "!mkdir -p /kaggle/working/GPT-SoVITS/tools/damo_asr/models\n", "!mkdir -p /kaggle/working/GPT-SoVITS/tools/uvr5\n", "%cd /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models\n", "!git clone https://huggingface.co/lj1995/GPT-SoVITS\n", "%cd /kaggle/working/GPT-SoVITS/tools/damo_asr/models\n", "!git clone https://www.modelscope.cn/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git\n", "!git clone https://www.modelscope.cn/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch.git\n", "!git clone https://www.modelscope.cn/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git\n", "# # @title UVR5 pretrains 安装uvr5模型\n", "%cd /kaggle/working/GPT-SoVITS/tools/uvr5\n", "!git clone https://huggingface.co/Delik/uvr5_weights\n", "!git config core.sparseCheckout true\n", "!mv /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models/GPT-SoVITS/* /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models/" ] }, { "cell_type": "code", "execution_count": null, "id": "ea94d245", "metadata": { "execution": { "iopub.execute_input": "2024-02-18T14:29:01.071549Z", "iopub.status.busy": "2024-02-18T14:29:01.070592Z", "iopub.status.idle": "2024-02-18T14:40:45.318368Z", "shell.execute_reply": "2024-02-18T14:40:45.317130Z", "shell.execute_reply.started": "2024-02-18T14:29:01.071512Z" }, "papermill": { "duration": null, "end_time": null, "exception": false, "start_time": "2024-02-18T14:50:31.309013", "status": "running" }, "tags": [] }, "outputs": [], "source": [ "# @title launch WebUI 启动WebUI\n", "%cd /kaggle/working/GPT-SoVITS/\n", "!npm install -g localtunnel\n", "import subprocess\n", "import threading\n", "import time\n", "import socket\n", "import urllib.request\n", "def iframe_thread(port):\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", "\n", " from colorama import Fore, Style\n", " print (Fore.GREEN + \"\\nIP: \", Fore. RED, urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"), \"\\n\", Style. RESET_ALL)\n", " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", " for line in p.stdout:\n", " print(line.decode(), end='')\n", "threading.Thread (target=iframe_thread, daemon=True, args=(9874,)).start()\n", "\n", "!python webui.py" ] }, { "cell_type": "code", "execution_count": null, "id": "dda88a6d", "metadata": { "execution": { "iopub.execute_input": "2024-02-18T14:40:56.880608Z", "iopub.status.busy": "2024-02-18T14:40:56.879879Z" }, "papermill": { "duration": null, "end_time": null, "exception": null, "start_time": null, "status": "pending" }, "tags": [] }, "outputs": [], "source": [ "# 开启推理页面\n", "%cd /kaggle/working/GPT-SoVITS/\n", "!npm install -g localtunnel\n", "import subprocess\n", "import threading\n", "import time\n", "import socket\n", "import urllib.request\n", "def iframe_thread(port):\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", "\n", " from colorama import Fore, Style\n", " print (Fore.GREEN + \"\\nIP: \", Fore. RED, urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"), \"\\n\", Style. RESET_ALL)\n", " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", " for line in p.stdout:\n", " print(line.decode(), end='')\n", "threading.Thread (target=iframe_thread, daemon=True, args=(9872,)).start()\n", "\n", "!python ./GPT_SoVITS/inference_webui.py" ] } ], "metadata": { "kaggle": { "accelerator": "nvidiaTeslaT4", "dataSources": [ { "datasetId": 4459328, "sourceId": 7649639, "sourceType": "datasetVersion" } ], "dockerImageVersionId": 30646, "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.10.13" }, "papermill": { "default_parameters": {}, "duration": null, "end_time": null, "environment_variables": {}, "exception": null, "input_path": "__notebook__.ipynb", "output_path": "__notebook__.ipynb", "parameters": {}, "start_time": "2024-02-18T14:43:44.011910", "version": "2.5.0" } }, "nbformat": 4, "nbformat_minor": 5 }