From 3f26c554a660d4e2fb4576a80dfb94d004343659 Mon Sep 17 00:00:00 2001 From: Mateo Cedillo <54605382+rmcpantoja@users.noreply.github.com> Date: Sun, 9 Jul 2023 06:14:26 -0500 Subject: [PATCH] Fixed some package compatibility issues with exporter notebook. --- notebooks/piper_model_exporter.ipynb | 225 +++++++++++++++++++++++++-- 1 file changed, 214 insertions(+), 11 deletions(-) diff --git a/notebooks/piper_model_exporter.ipynb b/notebooks/piper_model_exporter.ipynb index 4093f96..ae297b8 100644 --- a/notebooks/piper_model_exporter.ipynb +++ b/notebooks/piper_model_exporter.ipynb @@ -5,7 +5,7 @@ "colab": { "provenance": [], "gpuType": "T4", - "authorship_tag": "ABX9TyOULEPr6wG6WSnjG8EviQHg", + "authorship_tag": "ABX9TyPKhrhJQuxhFJG2C1A+aMsQ", "include_colab_link": true }, "kernelspec": { @@ -44,9 +44,72 @@ "execution_count": null, "metadata": { "cellView": "form", - "id": "FfMKr8v2RVOm" + "id": "FfMKr8v2RVOm", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "b4456f3d-726d-4602-8811-2476263ec5c2" }, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Installing...\n", + "/content/piper/src/python\n", + "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "torchaudio 2.0.2+cu118 requires torch==2.0.1, but you have torch 1.11.0 which is incompatible.\n", + "torchdata 0.6.1 requires torch==2.0.1, but you have torch 1.11.0 which is incompatible.\n", + "torchtext 0.15.2 requires torch==2.0.1, but you have torch 1.11.0 which is incompatible.\n", + "torchvision 0.15.2+cu118 requires torch==2.0.1, but you have torch 1.11.0 which is incompatible.\u001b[0m\u001b[31m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m14.6/14.6 MB\u001b[0m \u001b[31m40.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m121.6/121.6 MB\u001b[0m \u001b[31m6.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m4.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m7.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "Reading package lists... Done\n", + "Building dependency tree \n", + "Reading state information... Done\n", + "The following additional packages will be installed:\n", + " espeak-ng-data libespeak-ng1 libpcaudio0 libsonic0\n", + "The following NEW packages will be installed:\n", + " espeak-ng espeak-ng-data libespeak-ng1 libpcaudio0 libsonic0\n", + "0 upgraded, 5 newly installed, 0 to remove and 15 not upgraded.\n", + "Need to get 4,215 kB of archives.\n", + "After this operation, 12.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", + "Fetched 4,215 kB in 1s (3,726 kB/s)\n", + "Selecting previously unselected package libpcaudio0:amd64.\n", + "(Reading database ... 123105 files and directories currently installed.)\n", + "Preparing to unpack .../libpcaudio0_1.1-4_amd64.deb ...\n", + "Unpacking libpcaudio0:amd64 (1.1-4) ...\n", + "Selecting previously unselected package libsonic0:amd64.\n", + "Preparing to unpack .../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 .../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 .../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 .../espeak-ng_1.50+dfsg-6_amd64.deb ...\n", + "Unpacking espeak-ng (1.50+dfsg-6) ...\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 man-db (2.9.1-1) ...\n", + "Processing triggers for libc-bin (2.31-0ubuntu9.9) ...\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m67.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hDone!\n" + ] + } + ], "source": [ "#@title Install software\n", "\n", @@ -58,6 +121,8 @@ "!bash build_monotonic_align.sh\n", "!apt-get install espeak-ng\n", "!pip install -q torchtext==0.12.0\n", + "# fixing recent compativility isswes:\n", + "!pip install -q torchaudio==0.11.0 torchmetrics==0.11.4\n", "print(\"Done!\")" ] }, @@ -74,9 +139,9 @@ "guideurl = \"https://github.com/rmcpantoja/piper/blob/master/notebooks/wav/en\"\n", "#@markdown #### Download:\n", "#@markdown **Drive ID or direct download link of the model in another cloud:**\n", - "model_id = \"https://drive.google.com/file/d/1JmphSxbd9YxA9lRb3y5amOX8ah-ald59/view?usp=sharing\" #@param {type:\"string\"}\n", + "model_id = \"\" #@param {type:\"string\"}\n", "#@markdown **Drive ID or direct download link of the config.json file:**\n", - "config_id = \"1-2Bh3M9oesgKibcXED7k3AALRH9yn7tM\" #@param {type:\"string\"}\n", + "config_id = \"\" #@param {type:\"string\"}\n", "#@markdown ---\n", "\n", "#@markdown #### Creation process:\n", @@ -85,7 +150,7 @@ "#@markdown You can see a list of language codes and names [here](https://www.loc.gov/standards/iso639-2/php/English_list.php)\n", "\n", "language = \"en-us\" #@param [\"ca\", \"da\", \"de\", \"en\", \"en-us\", \"es\", \"fi\", \"fr\", \"grc\", \"is\", \"it\", \"k\", \"nb\", \"ne\", \"nl\", \"pl\", \"pt-br\", \"ru\", \"sv\", \"uk\", \"vi-vn-x-central\", \"yue\"]\n", - "voice_name = \"myvoice\" #@param {type:\"string\"}\n", + "voice_name = \"Myvoice\" #@param {type:\"string\"}\n", "voice_name = voice_name.lower()\n", "quality = \"medium\" #@param [\"high\", \"low\", \"medium\", \"x-low\"]\n", "def start_process():\n", @@ -119,7 +184,7 @@ "else:\n", " !wget \"{config_id}\" -O \"{export_voice_path}/{export_voice_name}.onnx.json\"\n", "#@markdown **Do you want to write a model card?**\n", - "write_model_card = True #@param {type:\"boolean\"}\n", + "write_model_card = False #@param {type:\"boolean\"}\n", "if write_model_card:\n", " with open(f\"{export_voice_path}/{export_voice_name}.onnx.json\", \"r\") as file:\n", " config = json.load(file)\n", @@ -150,10 +215,134 @@ ], "metadata": { "cellView": "form", - "id": "PqcoBb26V5xA" + "id": "PqcoBb26V5xA", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "outputId": "27f230fd-a212-4734-dfe8-9df2121086d8" }, "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "/content/piper/src/python\n", + "Downloading model and his config...\n", + "/usr/local/lib/python3.10/dist-packages/torchvision/io/image.py:13: UserWarning: Failed to load image Python extension: '/usr/local/lib/python3.10/dist-packages/torchvision/image.so: undefined symbol: _ZN3c104impl8GPUTrace13gpuTraceStateE'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?\n", + " warn(\n", + "INFO:torch.distributed.nn.jit.instantiator:Created a temporary directory at /tmp/tmpb81gzwb3\n", + "INFO:torch.distributed.nn.jit.instantiator:Writing /tmp/tmpb81gzwb3/_remote_module_non_sriptable.py\n", + "Removing weight norm...\n", + "/content/piper/src/python/piper_train/vits/attentions.py:235: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " t_s == t_t\n", + "/content/piper/src/python/piper_train/vits/attentions.py:295: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " pad_length = max(length - (self.window_size + 1), 0)\n", + "/content/piper/src/python/piper_train/vits/attentions.py:296: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " slice_start_position = max((self.window_size + 1) - length, 0)\n", + "/content/piper/src/python/piper_train/vits/attentions.py:298: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " if pad_length > 0:\n", + "/content/piper/src/python/piper_train/vits/transforms.py:174: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n", + " assert (discriminant >= 0).all(), discriminant\n", + "/usr/local/lib/python3.10/dist-packages/torch/onnx/symbolic_helper.py:719: UserWarning: allowzero=0 by default. In order to honor zero value in shape use allowzero=1\n", + " warnings.warn(\"allowzero=0 by default. In order to honor zero value in shape use allowzero=1\")\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "WARNING: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "WARNING: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "WARNING: The shape inference of prim::Constant type is missing, so it may result in wrong shape inference for the exported graph. Please consider adding it in symbolic function.\n", + "Warning: Constant folding - Only steps=1 can be constant folded for opset >= 10 onnx::Slice op. Constant folding not applied.\n", + "INFO:piper_train.export_onnx:Exported model to /content/project/voice-es-narrador-medium/es-narrador-medium.onnx\n", + "compressing...\n", + "./\n", + "./es-narrador-medium.onnx.json\n", + "./es-narrador-medium.onnx\n", + "Done!\n" + ] + } + ] }, { "cell_type": "code", @@ -179,10 +368,24 @@ ], "metadata": { "cellView": "form", - "id": "Hu3V9CJeWc4Y" + "id": "Hu3V9CJeWc4Y", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "f18ecafa-cc62-4bdb-d552-141360e5d68e" }, "execution_count": null, - "outputs": [] + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Exporting package...\n", + "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n", + "Done! You can find the generated voice package at: /content/drive/MyDrive/piper voice packages.\n" + ] + } + ] }, { "cell_type": "markdown",