{ "cells": [ { "cell_type": "markdown", "source": [ "# Setup" ], "metadata": { "id": "mgKdZzBDruRS" }, "id": "mgKdZzBDruRS" }, { "cell_type": "code", "source": [ "!nvidia-smi -L" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "raVu4jC33uDG", "outputId": "5fc9358c-a1d0-4bb1-812a-c72a4de216bf" }, "id": "raVu4jC33uDG", "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "GPU 0: Tesla T4 (UUID: GPU-4e5a36bb-7165-6d78-e032-b481c4cc3ba5)\n" ] } ] }, { "cell_type": "markdown", "id": "3a830c1c-f7c4-42aa-96ab-d83c4164f640", "metadata": { "id": "3a830c1c-f7c4-42aa-96ab-d83c4164f640", "tags": [] }, "source": [ "## Clone Tac2\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "3c1c3891-9531-444d-b563-087f63fa99d9", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3c1c3891-9531-444d-b563-087f63fa99d9", "outputId": "29fc8a8c-978d-4b76-b3e2-59602e7f4bc4" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Cloning into 'Comprehensive-Tacotron2'...\n", "remote: Enumerating objects: 294, done.\u001b[K\n", "remote: Counting objects: 100% (93/93), done.\u001b[K\n", "remote: Compressing objects: 100% (71/71), done.\u001b[K\n", "remote: Total 294 (delta 41), reused 66 (delta 22), pack-reused 201\u001b[K\n", "Receiving objects: 100% (294/294), 133.23 MiB | 42.26 MiB/s, done.\n", "Resolving deltas: 100% (51/51), done.\n", "/content/Comprehensive-Tacotron2\n", "Reading package lists... Done\n", "Building dependency tree \n", "Reading state information... Done\n", "build-essential is already the newest version (12.8ubuntu1.1).\n", "libsndfile1 is already the newest version (1.0.28-7ubuntu0.1).\n", "unzip is already the newest version (6.0-25ubuntu1.1).\n", "The following additional packages will be installed:\n", " espeak-ng-data libespeak-ng1 libpcaudio0 libsonic0\n", "Suggested packages:\n", " byobu | screenie | iselect ncurses-term\n", "The following NEW packages will be installed:\n", " espeak-ng espeak-ng-data libespeak-ng1 libpcaudio0 libsonic0 screen\n", "0 upgraded, 6 newly installed, 0 to remove and 23 not upgraded.\n", "Need to get 4,792 kB of archives.\n", "After this operation, 13.0 MB of additional disk space will be used.\n", "Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 libpcaudio0 amd64 1.1-4 [7,908 B]\n", "Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 libsonic0 amd64 0.2.0-8 [13.1 kB]\n", "Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 espeak-ng-data amd64 1.50+dfsg-6 [3,682 kB]\n", "Get:4 http://archive.ubuntu.com/ubuntu focal/main amd64 libespeak-ng1 amd64 1.50+dfsg-6 [189 kB]\n", "Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 espeak-ng amd64 1.50+dfsg-6 [322 kB]\n", "Get:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 screen amd64 4.8.0-1ubuntu0.1 [577 kB]\n", "Fetched 4,792 kB in 1s (8,349 kB/s)\n", "Selecting previously unselected package libpcaudio0:amd64.\n", "(Reading database ... 128276 files and directories currently installed.)\n", "Preparing to unpack .../0-libpcaudio0_1.1-4_amd64.deb ...\n", "Unpacking libpcaudio0:amd64 (1.1-4) ...\n", "Selecting previously unselected package libsonic0:amd64.\n", "Preparing to unpack .../1-libsonic0_0.2.0-8_amd64.deb ...\n", "Unpacking libsonic0:amd64 (0.2.0-8) ...\n", "Selecting previously unselected package espeak-ng-data:amd64.\n", "Preparing to unpack .../2-espeak-ng-data_1.50+dfsg-6_amd64.deb ...\n", "Unpacking espeak-ng-data:amd64 (1.50+dfsg-6) ...\n", "Selecting previously unselected package libespeak-ng1:amd64.\n", "Preparing to unpack .../3-libespeak-ng1_1.50+dfsg-6_amd64.deb ...\n", "Unpacking libespeak-ng1:amd64 (1.50+dfsg-6) ...\n", "Selecting previously unselected package espeak-ng.\n", "Preparing to unpack .../4-espeak-ng_1.50+dfsg-6_amd64.deb ...\n", "Unpacking espeak-ng (1.50+dfsg-6) ...\n", "Selecting previously unselected package screen.\n", "Preparing to unpack .../5-screen_4.8.0-1ubuntu0.1_amd64.deb ...\n", "Unpacking screen (4.8.0-1ubuntu0.1) ...\n", "Setting up screen (4.8.0-1ubuntu0.1) ...\n", "Setting up libpcaudio0:amd64 (1.1-4) ...\n", "Setting up libsonic0:amd64 (0.2.0-8) ...\n", "Setting up espeak-ng-data:amd64 (1.50+dfsg-6) ...\n", "Setting up libespeak-ng1:amd64 (1.50+dfsg-6) ...\n", "Setting up espeak-ng (1.50+dfsg-6) ...\n", "Processing triggers for systemd (245.4-4ubuntu3.20) ...\n", "Processing triggers for man-db (2.9.1-1) ...\n", "Processing triggers for libc-bin (2.31-0ubuntu9.9) ...\n", "Archive: ./hifigan/generator_universal.pth.tar.zip\n", " inflating: generator_universal.pth.tar \n", "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n", "Collecting g2p-en\n", " Downloading g2p_en-2.1.0-py3-none-any.whl (3.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m36.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting phonemizer\n", " Downloading phonemizer-3.2.1-py3-none-any.whl (90 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m90.6/90.6 KB\u001b[0m \u001b[31m12.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: inflect in /usr/local/lib/python3.9/dist-packages (6.0.2)\n", "Collecting librosa==0.9.2\n", " Downloading librosa-0.9.2-py3-none-any.whl (214 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m214.3/214.3 KB\u001b[0m \u001b[31m26.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.9/dist-packages (3.7.1)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.9/dist-packages (1.4.4)\n", "Collecting pypinyin\n", " Downloading pypinyin-0.48.0-py2.py3-none-any.whl (1.4 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.4/1.4 MB\u001b[0m \u001b[31m74.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting python_speech_features\n", " Downloading python_speech_features-0.6.tar.gz (5.6 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting pyworld\n", " Downloading pyworld-0.3.2.tar.gz (214 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m214.4/214.4 KB\u001b[0m \u001b[31m26.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: PyYAML in /usr/local/lib/python3.9/dist-packages (6.0)\n", "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.9/dist-packages (1.2.2)\n", "Requirement already satisfied: scikit-image in /usr/local/lib/python3.9/dist-packages (0.19.3)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.9/dist-packages (1.10.1)\n", "Requirement already satisfied: soundfile in /usr/local/lib/python3.9/dist-packages (0.12.1)\n", "Requirement already satisfied: tensorboard in /usr/local/lib/python3.9/dist-packages (2.11.2)\n", "Collecting tgt\n", " Downloading tgt-1.4.4.tar.gz (21 kB)\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: tqdm in /usr/local/lib/python3.9/dist-packages (4.65.0)\n", "Collecting unidecode\n", " Downloading Unidecode-1.3.6-py3-none-any.whl (235 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m235.9/235.9 KB\u001b[0m \u001b[31m26.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (1.1.1)\n", "Requirement already satisfied: numpy>=1.17.0 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (1.22.4)\n", "Requirement already satisfied: numba>=0.45.1 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (0.56.4)\n", "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (23.0)\n", "Requirement already satisfied: audioread>=2.1.9 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (3.0.0)\n", "Requirement already satisfied: pooch>=1.0 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (1.7.0)\n", "Collecting resampy>=0.2.2\n", " Downloading resampy-0.4.2-py3-none-any.whl (3.1 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m98.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: decorator>=4.0.10 in /usr/local/lib/python3.9/dist-packages (from librosa==0.9.2) (4.4.2)\n", "Requirement already satisfied: nltk>=3.2.4 in /usr/local/lib/python3.9/dist-packages (from g2p-en) (3.8.1)\n", "Collecting distance>=0.1.3\n", " Downloading Distance-0.1.3.tar.gz (180 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m180.3/180.3 KB\u001b[0m \u001b[31m21.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Requirement already satisfied: attrs>=18.1 in /usr/local/lib/python3.9/dist-packages (from phonemizer) (22.2.0)\n", "Collecting segments\n", " Downloading segments-2.2.1-py2.py3-none-any.whl (15 kB)\n", "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/dist-packages (from phonemizer) (4.5.0)\n", "Collecting dlinfo\n", " Downloading dlinfo-1.2.1-py3-none-any.whl (3.6 kB)\n", "Requirement already satisfied: pydantic>=1.9.1 in /usr/local/lib/python3.9/dist-packages (from inflect) (1.10.6)\n", "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (0.11.0)\n", "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (8.4.0)\n", "Requirement already satisfied: importlib-resources>=3.2.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (5.12.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (1.4.4)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (3.0.9)\n", "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (2.8.2)\n", "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (1.0.7)\n", "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (4.39.0)\n", "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.9/dist-packages (from pandas) (2022.7.1)\n", "Requirement already satisfied: cython in /usr/local/lib/python3.9/dist-packages (from pyworld) (0.29.33)\n", "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.9/dist-packages (from scikit-learn) (3.1.0)\n", "Requirement already satisfied: imageio>=2.4.1 in /usr/local/lib/python3.9/dist-packages (from scikit-image) (2.9.0)\n", "Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.9/dist-packages (from scikit-image) (2023.3.15)\n", "Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.9/dist-packages (from scikit-image) (1.4.1)\n", "Requirement already satisfied: networkx>=2.2 in /usr/local/lib/python3.9/dist-packages (from scikit-image) (3.0)\n", "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.9/dist-packages (from soundfile) (1.15.1)\n", "Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (1.51.3)\n", "Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (2.2.3)\n", "Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (2.16.2)\n", "Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (3.4.1)\n", "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (0.6.1)\n", "Requirement already satisfied: protobuf<4,>=3.9.2 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (3.19.6)\n", "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (2.27.1)\n", "Requirement already satisfied: wheel>=0.26 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (0.40.0)\n", "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (1.8.1)\n", "Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (63.4.3)\n", "Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (1.4.0)\n", "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.9/dist-packages (from tensorboard) (0.4.6)\n", "Requirement already satisfied: pycparser in /usr/local/lib/python3.9/dist-packages (from cffi>=1.0->soundfile) (2.21)\n", "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.9/dist-packages (from google-auth<3,>=1.6.3->tensorboard) (4.9)\n", "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.9/dist-packages (from google-auth<3,>=1.6.3->tensorboard) (5.3.0)\n", "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.9/dist-packages (from google-auth<3,>=1.6.3->tensorboard) (0.2.8)\n", "Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.9/dist-packages (from google-auth<3,>=1.6.3->tensorboard) (1.15.0)\n", "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.9/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard) (1.3.1)\n", "Requirement already satisfied: zipp>=3.1.0 in /usr/local/lib/python3.9/dist-packages (from importlib-resources>=3.2.0->matplotlib) (3.15.0)\n", "Requirement already satisfied: importlib-metadata>=4.4 in /usr/local/lib/python3.9/dist-packages (from markdown>=2.6.8->tensorboard) (6.0.0)\n", "Requirement already satisfied: click in /usr/local/lib/python3.9/dist-packages (from nltk>=3.2.4->g2p-en) (8.1.3)\n", "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.9/dist-packages (from nltk>=3.2.4->g2p-en) (2022.10.31)\n", "Requirement already satisfied: llvmlite<0.40,>=0.39.0dev0 in /usr/local/lib/python3.9/dist-packages (from numba>=0.45.1->librosa==0.9.2) (0.39.1)\n", "Requirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.9/dist-packages (from pooch>=1.0->librosa==0.9.2) (3.1.1)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests<3,>=2.21.0->tensorboard) (1.26.15)\n", "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.9/dist-packages (from requests<3,>=2.21.0->tensorboard) (2.0.12)\n", "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests<3,>=2.21.0->tensorboard) (3.4)\n", "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from requests<3,>=2.21.0->tensorboard) (2022.12.7)\n", "Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.9/dist-packages (from werkzeug>=1.0.1->tensorboard) (2.1.2)\n", "Collecting csvw>=1.5.6\n", " Downloading csvw-3.1.3-py2.py3-none-any.whl (56 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.7/56.7 KB\u001b[0m \u001b[31m7.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting clldutils>=1.7.3\n", " Downloading clldutils-3.19.0-py2.py3-none-any.whl (1.7 MB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m88.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: lxml in /usr/local/lib/python3.9/dist-packages (from clldutils>=1.7.3->segments->phonemizer) (4.9.2)\n", "Requirement already satisfied: tabulate>=0.7.7 in /usr/local/lib/python3.9/dist-packages (from clldutils>=1.7.3->segments->phonemizer) (0.8.10)\n", "Collecting colorlog\n", " Downloading colorlog-6.7.0-py2.py3-none-any.whl (11 kB)\n", "Collecting pylatexenc\n", " Downloading pylatexenc-2.10.tar.gz (162 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m162.6/162.6 KB\u001b[0m \u001b[31m17.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n", "Collecting rdflib\n", " Downloading rdflib-6.3.1-py3-none-any.whl (527 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m527.0/527.0 KB\u001b[0m \u001b[31m36.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: uritemplate>=3.0.0 in /usr/local/lib/python3.9/dist-packages (from csvw>=1.5.6->segments->phonemizer) (4.1.1)\n", "Collecting rfc3986<2\n", " Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)\n", "Collecting language-tags\n", " Downloading language_tags-1.2.0-py3-none-any.whl (213 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m213.4/213.4 KB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hCollecting isodate\n", " Downloading isodate-0.6.1-py2.py3-none-any.whl (41 kB)\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.7/41.7 KB\u001b[0m \u001b[31m5.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25hRequirement already satisfied: jsonschema in /usr/local/lib/python3.9/dist-packages (from csvw>=1.5.6->segments->phonemizer) (4.3.3)\n", "Collecting colorama\n", " Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\n", "Requirement already satisfied: babel in /usr/local/lib/python3.9/dist-packages (from csvw>=1.5.6->segments->phonemizer) (2.12.1)\n", "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.9/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard) (0.4.8)\n", "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.9/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard) (3.2.2)\n", "Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.9/dist-packages (from jsonschema->csvw>=1.5.6->segments->phonemizer) (0.19.3)\n", "Building wheels for collected packages: python_speech_features, pyworld, tgt, distance, pylatexenc\n", " Building wheel for python_speech_features (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for python_speech_features: filename=python_speech_features-0.6-py3-none-any.whl size=5886 sha256=10005a477437c854bdcd3443924d25f210f52d2c8b43c107899274371a0a0670\n", " Stored in directory: /root/.cache/pip/wheels/09/a1/04/08e2688d2562d8f9ff89e77c6ddfbf7268e07dae1a6f22455e\n", " Building wheel for pyworld (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pyworld: filename=pyworld-0.3.2-cp39-cp39-linux_x86_64.whl size=895509 sha256=0972d3db2bdfd9ed7607df30de59a40c5394b83d9dc516dd232bc6c7a7960532\n", " Stored in directory: /root/.cache/pip/wheels/c5/91/01/58aa68f1f055ce534049e668292b710500100da0262079b8f5\n", " Building wheel for tgt (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for tgt: filename=tgt-1.4.4-py3-none-any.whl size=28922 sha256=8951b645de2e465e47ba604ecc0811c4960701d1da828c8ef51968a2c7b2032f\n", " Stored in directory: /root/.cache/pip/wheels/e0/d4/e5/039c9c6c19848fcc33223ee8da975d73b2da572d25da27bea7\n", " Building wheel for distance (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for distance: filename=Distance-0.1.3-py3-none-any.whl size=16275 sha256=8ad7d222ea9d6eb078426b4e745c9d399e85fd5f4a83775063938738dd221086\n", " Stored in directory: /root/.cache/pip/wheels/fb/b3/aa/04241cced6d1722b132273b1d6aafba317887ec004f48b853a\n", " Building wheel for pylatexenc (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for pylatexenc: filename=pylatexenc-2.10-py3-none-any.whl size=136831 sha256=00cac89153b91dd229faf35ea940eb804ff79becad1d2da02b19408c67b3071b\n", " Stored in directory: /root/.cache/pip/wheels/a3/68/66/2f15abd0673d83c02f354115feedeb89c3daed2ac319b11090\n", "Successfully built python_speech_features pyworld tgt distance pylatexenc\n", "Installing collected packages: tgt, rfc3986, python_speech_features, pylatexenc, language-tags, dlinfo, distance, unidecode, pyworld, pypinyin, isodate, colorlog, colorama, resampy, rdflib, librosa, g2p-en, csvw, clldutils, segments, phonemizer\n", " Attempting uninstall: librosa\n", " Found existing installation: librosa 0.10.0\n", " Uninstalling librosa-0.10.0:\n", " Successfully uninstalled librosa-0.10.0\n", "Successfully installed clldutils-3.19.0 colorama-0.4.6 colorlog-6.7.0 csvw-3.1.3 distance-0.1.3 dlinfo-1.2.1 g2p-en-2.1.0 isodate-0.6.1 language-tags-1.2.0 librosa-0.9.2 phonemizer-3.2.1 pylatexenc-2.10 pypinyin-0.48.0 python_speech_features-0.6 pyworld-0.3.2 rdflib-6.3.1 resampy-0.4.2 rfc3986-1.5.0 segments-2.2.1 tgt-1.4.4 unidecode-1.3.6\n" ] } ], "source": [ "!git clone https://github.com/ZDisket/Comprehensive-Tacotron2.git -b ATSA\n", "%cd Comprehensive-Tacotron2\n", "!apt-get -y install espeak-ng build-essential screen unzip libsndfile1\n", "!unzip ./hifigan/generator_universal.pth.tar.zip\n", "!mv generator_universal.pth.tar ./hifigan\n", "!pip install g2p-en phonemizer inflect librosa==0.9.2 matplotlib pandas pypinyin python_speech_features pyworld PyYAML scikit-learn scikit-image scipy soundfile tensorboard tgt tqdm unidecode" ] }, { "cell_type": "markdown", "id": "7ccf27e9-2d2e-405a-9ba9-42759ff54bba", "metadata": { "id": "7ccf27e9-2d2e-405a-9ba9-42759ff54bba" }, "source": [ "## Auxiliary functions\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "a426faaf-fb79-4054-ba25-fd5c4a3927c0", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "a426faaf-fb79-4054-ba25-fd5c4a3927c0", "outputId": "1e4cd086-69b3-465a-9da1-d4f338d93387" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Mounted at /content/gdrive\n" ] } ], "source": [ "SampleRate = 22050 \n", "#==================================\n", "root_path = \"tac2out\"\n", "sarate = SampleRate # Your sampe rate\n", "#==================================\n", "import subprocess\n", "import json\n", "import os\n", "import librosa\n", "\n", "from IPython.display import HTML, display\n", "import time\n", "\n", "def godir(condir):\n", " if os.getcwd() != condir:\n", " os.chdir(condir)\n", "\n", "def shexec(ex):\n", " return subprocess.run(ex,shell=True)\n", "\n", "import string\n", "import random\n", "def randomString(stringLength=10):\n", " \"\"\"Generate a random string of fixed length \"\"\"\n", " letters = string.ascii_lowercase\n", " return ''.join(random.choice(letters) for i in range(stringLength))\n", "\n", "\n", "\n", "def safemkdir(dirn):\n", " if not os.path.isdir(dirn):\n", " os.mkdir(dirn)\n", "\n", "\n", "import os\n", "\n", "# Automatically fetches a Google Drive ID from a GD link\n", "# Supports both https://drive.google.com/uc?id=XXX and https://drive.google.com/file/d/XXX/view?usp=sharing\n", "def auto_fetch_gdid(gd_link):\n", " link_splits = gd_link.split(\"/\")\n", " for li_chunk in link_splits:\n", " proc_chunk = li_chunk.replace(\"uc?id=\",\"\")\n", " if len(proc_chunk) == 33:\n", " return proc_chunk\n", " \n", " return \"\"\n", "\n", "\n", "def download_gdrive(file_id,out_filename,size_over_mb = 0):\n", " o_file_id = file_id\n", " if \"https\" in file_id:\n", " print(\"Link detected\")\n", " file_id = auto_fetch_gdid(file_id)\n", " \n", " #sometimes it downloads a .html file of the virus warning, doesn't happen in the second time\n", " !curl -L -o '{out_filename}' 'https://drive.google.com/u/0/uc?id={file_id}&export=download&confirm=t'\n", " if \".py\" in out_filename:\n", " !curl -L -o '{out_filename}' 'https://drive.google.com/u/0/uc?id={file_id}&export=download&confirm=t'\n", "\n", " #ensure that we didn't download an html\n", " if size_over_mb > 0 and os.path.getsize(out_filename) / 1e+6 < size_over_mb:\n", " !gdown --fuzzy {o_file_id} -O {out_filename}\n", "\n", "from google.colab import drive\n", "drive.mount('/content/gdrive')\n", "safemkdir(\"/content/gdrive/My Drive/colab\")\n", "\n", "root_path = os.path.join(\"/content/gdrive/My Drive/colab\", root_path)\n", "safemkdir(root_path)\n" ] }, { "cell_type": "markdown", "source": [ "#Import dataset" ], "metadata": { "id": "3YJNRq2Br1LT" }, "id": "3YJNRq2Br1LT" }, { "cell_type": "markdown", "source": [ "To import from your own source, it has to end up so that there is a folder named `datasets`, and inside said folder is `wavs` where your wavs go, and any amount of .txt files in format `wavs/file.wav|transcript` for each line, again inside the `datasets` folder. For example:\n", "\n", "\n", "* datasets\n", "* - datasets/wavs: \n", "* - datasets/filelist.txt\n", "\n", "The name of the txt files doesn't matter, before processing we run code to grab all of them. Sampling rate ideally should be equivalent to the one of current config (22KHz), but the same code also automatically resamples files.\n" ], "metadata": { "id": "Rf2xznXK734h" }, "id": "Rf2xznXK734h" }, { "cell_type": "markdown", "id": "db753f7f-6403-48ef-bc4c-6dc12182540d", "metadata": { "id": "db753f7f-6403-48ef-bc4c-6dc12182540d" }, "source": [ "## Dataset from Automatic Super-Speaker Filtered Audio Processing" ] }, { "cell_type": "code", "execution_count": 4, "id": "86cb662d-ac63-4f3a-becf-29fa87c96c3e", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "86cb662d-ac63-4f3a-becf-29fa87c96c3e", "outputId": "38620743-ad61-44de-99a3-e10721d492a5" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Link detected\n", " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n", " 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n", "100 116M 100 116M 0 0 70.7M 0 0:00:01 0:00:01 --:--:-- 121M\n", "rmdir: failed to remove 'datasets': No such file or directory\n" ] } ], "source": [ "import shutil\n", "\n", "\n", "gdid = \"https://drive.google.com/file/d/1pVRHnUHcc8-_CIXSZm6R0z2GqeKXnRpb/view?usp=share_link\"\n", "\n", "\n", "download_gdrive(gdid,\"dat.tar.gz\",10)\n", "!tar xzf dat.tar.gz\n", "\n", "!rm -rf datasets/*\n", "!rmdir datasets\n", "\n", "!mv data datasets" ] }, { "cell_type": "markdown", "source": [ "## Way 2" ], "metadata": { "id": "5F8VDOOer4iE" }, "id": "5F8VDOOer4iE" }, { "cell_type": "code", "execution_count": null, "id": "0062b3ca-2167-447a-b31c-bbd188bbc0dc", "metadata": { "id": "0062b3ca-2167-447a-b31c-bbd188bbc0dc" }, "outputs": [], "source": [ "import shutil\n", "\n", "\n", "gdid = \"https://drive.google.com/file/d/1f0aswc88b7vUiUb4-D_kDOHzMj11Am3j/view?usp=share_link\"\n", "\n", "\n", "download_gdrive(gdid,\"dat.tar.bz2\",10)\n", "!tar -xf dat.tar.bz2" ] }, { "cell_type": "markdown", "source": [ "# Process dataset" ], "metadata": { "id": "jM7S2NKGxLKO" }, "id": "jM7S2NKGxLKO" }, { "cell_type": "markdown", "source": [ "## Prepare transcriptions\n", "This will take all filelists and create a unified one with both ARPA and normal transcripts" ], "metadata": { "id": "745lZ-uSxMqd" }, "id": "745lZ-uSxMqd" }, { "cell_type": "code", "source": [ "import shutil\n", "from text.cleaners import to_arpa \n", "from tqdm.notebook import tqdm # Modern Notebook TQDM\n", "\n", "import glob, librosa\n", "import soundfile as sf\n", "all_lines = []\n", "\n", "for txtf in glob.glob(\"datasets/*.txt\"):\n", " print(f\"Found filelist {txtf} for adding\")\n", " with open(txtf) as f:\n", " filines = f.readlines()\n", " \n", " all_lines.extend(filines)\n", "\n", "\n", "%cd datasets\n", "ensureformat = True\n", "newfl = open(\"filelist_p.txt\",\"w\")\n", "num_resample_warns = 0\n", "num_resample_warn_max = 10\n", "\n", "\n", "for li in tqdm(all_lines):\n", " path, trans = li.strip().split(\"|\")\n", " if \"{\" in trans:\n", " continue\n", " \n", " if ensureformat:\n", " audat, zsarate = librosa.load(path,sr=None)\n", " if zsarate != sarate:\n", " if num_resample_warns < num_resample_warn_max:\n", " print(f\"File {path} SR {zsarate} != {sarate}, resampling\")\n", " num_resample_warns += 1\n", " if num_resample_warns == 1:\n", " print(f\"This warning will only print {num_resample_warn_max} times\")\n", " \n", " \n", " nudat = librosa.resample(audat,zsarate,sarate)\n", " sf.write(path,nudat,sarate,\"PCM_16\")\n", "\n", " new_path = path.replace(\".wav\",\"_ARPA.wav\")\n", " \n", " fi_li = f\"{path}|{trans}\"\n", " se_li = f\"{new_path}|{to_arpa(trans)}\"\n", " newfl.write(f\"{fi_li}\\n{se_li}\\n\")\n", " \n", " shutil.copy(path,new_path)\n", "\n", "newfl.close()\n", "%cd .." ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "xF-3V5GewCdx", "outputId": "8b6c3a14-9b8e-4ae0-a0df-a28ff87bad5b" }, "id": "xF-3V5GewCdx", "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ "/content/Comprehensive-Tacotron2/text/__init__.py:78: SyntaxWarning: \"is not\" with a literal. Did you mean \"!=\"?\n", " return s in _symbol_to_id and s is not '_' and s is not '~'\n", "/content/Comprehensive-Tacotron2/text/__init__.py:78: SyntaxWarning: \"is not\" with a literal. Did you mean \"!=\"?\n", " return s in _symbol_to_id and s is not '_' and s is not '~'\n", "[nltk_data] Downloading package averaged_perceptron_tagger to\n", "[nltk_data] /root/nltk_data...\n", "[nltk_data] Unzipping taggers/averaged_perceptron_tagger.zip.\n", "[nltk_data] Downloading package cmudict to /root/nltk_data...\n", "[nltk_data] Unzipping corpora/cmudict.zip.\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "Found filelist datasets/filelist.txt for adding\n", "Found filelist datasets/valist.txt for adding\n", "/content/Comprehensive-Tacotron2/datasets\n", "File wavs/clbyzvfuoe_2.wav SR 44100 != 22050, resampling\n", "This warning will only print 10 times\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ ":38: FutureWarning: Pass orig_sr=44100, target_sr=22050 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", " nudat = librosa.resample(audat,zsarate,sarate)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "File wavs/clbyzvfuoe_16.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_23.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_27.wav SR 44100 != 22050, resampling\n" ] }, { "output_type": "stream", "name": "stderr", "text": [ ":38: FutureWarning: Pass orig_sr=44100, target_sr=22050 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", " nudat = librosa.resample(audat,zsarate,sarate)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ "File wavs/clbyzvfuoe_38.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_45.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_51.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_59.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_63.wav SR 44100 != 22050, resampling\n", "File wavs/clbyzvfuoe_69.wav SR 44100 != 22050, resampling\n", "/content/Comprehensive-Tacotron2\n" ] } ] }, { "cell_type": "markdown", "source": [ "## Preprocess\n", "This will run the preprocessor to prepare files for the training script" ], "metadata": { "id": "wNudGdlsxXh5" }, "id": "wNudGdlsxXh5" }, { "cell_type": "code", "execution_count": 6, "id": "7cbef768-a1af-419b-b00e-f06993bbfcaf", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "7cbef768-a1af-419b-b00e-f06993bbfcaf", "outputId": "3f222fe6-b34d-4700-f785-89345c76dc07" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "/content/Comprehensive-Tacotron2/audio/stft.py:41: FutureWarning: Pass size=1024 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", " fft_window = pad_center(fft_window, filter_length)\n", "/content/Comprehensive-Tacotron2/audio/stft.py:126: FutureWarning: Pass sr=22050, n_fft=1024, n_mels=80, fmin=0, fmax=8000 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", " mel_basis = librosa_mel_fn(\n", "Processing Data ...\n", "\r 0% 0/1114 [00:00" ], "application/javascript": [ "\n", " (async () => {\n", " const url = new URL(await google.colab.kernel.proxyPort(6006, {'cache': true}));\n", " url.searchParams.set('tensorboardColab', 'true');\n", " const iframe = document.createElement('iframe');\n", " iframe.src = url;\n", " iframe.setAttribute('width', '100%');\n", " iframe.setAttribute('height', '800');\n", " iframe.setAttribute('frameborder', 0);\n", " document.body.appendChild(iframe);\n", " })();\n", " " ] }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "## Start training\n", "\n", "Should take 5k - 10k steps to start sounding good, at about 30k will be surely done." ], "metadata": { "id": "s6Im5Sjw7IYQ" }, "id": "s6Im5Sjw7IYQ" }, { "cell_type": "code", "execution_count": null, "id": "b29ac285-122d-4874-a300-0257839c1f71", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "b29ac285-122d-4874-a300-0257839c1f71", "outputId": "308f6d29-6ef7-4595-b4e8-b06754c378ca" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Checkpoints will be stored every 2500 steps in /content/gdrive/My Drive/colab/tac2out/Tucker/checkpoints\n", "Every 1000 steps evaluation audios will be generated\n", "Prepare training ...\n", "Warm starting from checkpoint pretrained.pth.tar\n", "Overriding checkpoint interval to 2500\n", "Number of Tacotron2 Parameters: 29967377\n", "Removing weight norm...\n", "2023-03-18 23:21:43.158865: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2023-03-18 23:21:44.160322: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/lib64-nvidia\n", "2023-03-18 23:21:44.160465: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/lib64-nvidia\n", "2023-03-18 23:21:44.160486: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly.\n", "Training: 0% 0/900000 [00:00 colab-connect-button\").shadowRoot.querySelector(\"#connect\").click() } setInterval(ConnectButton,60000);\n" ], "metadata": { "id": "fDJwxN-HDiTH" }, "id": "fDJwxN-HDiTH" } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8" }, "colab": { "provenance": [] }, "accelerator": "GPU", "gpuClass": "standard" }, "nbformat": 4, "nbformat_minor": 5 }