Import initial de la documentation : statut, roadmap, plans V1/V2, specs verticales (creche, sport), audits securite, plan de test, analyse concurrentielle et maquettes de design. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2570 lines
229 KiB
Plaintext
2570 lines
229 KiB
Plaintext
{
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0,
|
||
"metadata": {
|
||
"colab": {
|
||
"provenance": [],
|
||
"history_visible": true,
|
||
"gpuType": "T4"
|
||
},
|
||
"kernelspec": {
|
||
"name": "python3",
|
||
"display_name": "Python 3"
|
||
},
|
||
"language_info": {
|
||
"name": "python"
|
||
},
|
||
"accelerator": "GPU"
|
||
},
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"id": "92ac7f5a",
|
||
"outputId": "b7b816b4-72d1-43e8-ef30-fb44fc464aaa"
|
||
},
|
||
"source": [
|
||
"from google.colab import drive\n",
|
||
"drive.mount('/content/drive')"
|
||
],
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "6ddc9fbb"
|
||
},
|
||
"source": [
|
||
"## Cleanup Options (for training a new wake word)\n",
|
||
"\n",
|
||
"Use the cell below to clear previous training outputs if you're starting a new model or encountering issues. You can choose to delete generated models, configuration files, and test audio."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 411
|
||
},
|
||
"id": "7b189249",
|
||
"outputId": "4576b311-498d-46d8-c770-fd488a34c758"
|
||
},
|
||
"source": [
|
||
"# @title Clear Previous Training Outputs\n",
|
||
"import os\n",
|
||
"import shutil\n",
|
||
"\n",
|
||
"clear_generated_models = False #@param {type:\"boolean\", label:\"Clear models for the CURRENT wake word from Google Drive\"}\n",
|
||
"clear_config_file = True #@param {type:\"boolean\", label:\"Clear my_model.yaml configuration file\"}\n",
|
||
"clear_test_audio = True #@param {type:\"boolean\", label:\"Clear test_generation.wav audio file\"}\n",
|
||
"\n",
|
||
"if 'drive_output_dir' in locals() and 'target_word' in locals() and clear_generated_models:\n",
|
||
" # Construct the model-specific output directory based on the current target_word\n",
|
||
" current_model_name = target_word.replace(\" \", \"_\")\n",
|
||
" current_model_specific_output_dir = os.path.join(drive_output_dir, current_model_name)\n",
|
||
"\n",
|
||
" if os.path.exists(current_model_specific_output_dir):\n",
|
||
" print(f\"Deleting specific model directory for '{current_model_name}': {current_model_specific_output_dir}\")\n",
|
||
" shutil.rmtree(current_model_specific_output_dir)\n",
|
||
" else:\n",
|
||
" print(f\"Model directory for '{current_model_name}' not found: {current_model_specific_output_dir}\")\n",
|
||
"\n",
|
||
"if clear_config_file:\n",
|
||
" if os.path.exists('my_model.yaml'):\n",
|
||
" print(\"Deleting my_model.yaml\")\n",
|
||
" os.remove('my_model.yaml')\n",
|
||
" else:\n",
|
||
" print(\"my_model.yaml not found.\")\n",
|
||
"\n",
|
||
"if clear_test_audio:\n",
|
||
" if os.path.exists('test_generation.wav'):\n",
|
||
" print(\"Deleting test_generation.wav\")\n",
|
||
" os.remove('test_generation.wav')\n",
|
||
" else:\n",
|
||
" print(\"test_generation.wav not found.\")\n",
|
||
"\n",
|
||
"print(\"Cleanup complete. If you changed fundamental settings or encountered persistent issues, consider restarting the runtime via 'Runtime > Restart runtime...'.\")"
|
||
],
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Deleting generated models in: /content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "error",
|
||
"ename": "KeyboardInterrupt",
|
||
"evalue": "",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[0;32m/tmp/ipykernel_3679/1344692696.py\u001b[0m in \u001b[0;36m<cell line: 0>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdrive_output_dir\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Deleting generated models in: {drive_output_dir}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0mshutil\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrmtree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdrive_output_dir\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmakedirs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdrive_output_dir\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mexist_ok\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# Recreate the directory for future use\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||
"\u001b[0;32m/usr/lib/python3.12/shutil.py\u001b[0m in \u001b[0;36mrmtree\u001b[0;34m(path, ignore_errors, onerror, onexc, dir_fd)\u001b[0m\n\u001b[1;32m 757\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 758\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0mstack\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 759\u001b[0;31m \u001b[0m_rmtree_safe_fd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0monexc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 760\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 761\u001b[0m \u001b[0;31m# Close any file descriptors still on the stack.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||
"\u001b[0;32m/usr/lib/python3.12/shutil.py\u001b[0m in \u001b[0;36m_rmtree_safe_fd\u001b[0;34m(stack, onexc)\u001b[0m\n\u001b[1;32m 696\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 697\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 698\u001b[0;31m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mentry\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdir_fd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtopfd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 699\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0monexc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfullname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
||
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"id": "3c2a283c",
|
||
"outputId": "d4fb52e4-650c-458f-a0c6-2252b731551e"
|
||
},
|
||
"source": [
|
||
"import os\n",
|
||
"\n",
|
||
"# Create a directory in Google Drive to store the models\n",
|
||
"drive_output_dir = '/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword'\n",
|
||
"os.makedirs(drive_output_dir, exist_ok=True)\n",
|
||
"print(f\"Models will be saved in: {drive_output_dir}\")"
|
||
],
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Models will be saved in: /content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"source": [
|
||
"## Training your own openWakeWord models\n"
|
||
],
|
||
"metadata": {
|
||
"id": "vl_FIEj-auGq"
|
||
}
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"source": [
|
||
"***NOTE (2026-04-11):*** If you get error messages saying that the \"runtime needs to be restarted\" because packages have already been imported, select restart and run the notebook from the top again.\n",
|
||
"\n",
|
||
"**Quick-start:** If you just want to train a basic custom model for openWakeWord!\n",
|
||
"\n",
|
||
"Follow the instructions for Step 1 below. Each time you change the wake word, click the play icon to the left of the title to generate a sample and make sure it sounds correct. The first time it takes a few minutes but subsequent runs will be quick.\n",
|
||
"\n",
|
||
"Once you're satisfied with the pronounciation, go to the \"Runtime\" dropdown menu in the upper left of the page, and select \"run all\". Keep the tab open but feel free to do something else. After ~1 hour, your custom model will be ready and will automatically be downloaded to your computer!\n",
|
||
"\n",
|
||
"If you are a Home Assistant user with the openWakeWord add-on, follow the instructions [here](https://github.com/home-assistant/addons/blob/master/openwakeword/DOCS.md#custom-wake-word-models) to install and enable your custom model.\n",
|
||
"\n",
|
||
"---\n",
|
||
"\n",
|
||
"If you are interested in learning more about the custom model training process (and increasing the accuracy of your custom models), read through each step in this notebook and try experimenting with different training parameters. If you have any questions or problems, feel free to start a discussion at the openWakeWord [repo](https://github.com/dscripka/openWakeWord/discussions)."
|
||
],
|
||
"metadata": {
|
||
"id": "-Q9wEuRdwY_E"
|
||
}
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# @title { display-mode: \"form\" }\n",
|
||
"# @markdown # 1. Test Example Training Clip Generation\n",
|
||
"# @markdown Since openWakeWord models are trained on synthetic examples of your\n",
|
||
"# @markdown target wake word, it's a good idea to make sure that the examples\n",
|
||
"# @markdown sound correct. Type in your target wake word below, and run the\n",
|
||
"# @markdown cell to listen to it.\n",
|
||
"# @markdown\n",
|
||
"# @markdown Here are some tips that can help get the wake word to sound right:\n",
|
||
"\n",
|
||
"# @markdown - If your wake word isn't being pronounced in the way\n",
|
||
"# @markdown you want, try spelling out the sounds phonetically with underscores\n",
|
||
"# @markdown separating each part.\n",
|
||
"# @markdown For example: \"hey siri\" --> \"hey_seer_e\".\n",
|
||
"\n",
|
||
"# @markdown - Spell out numbers (\"2\" --> \"two\")\n",
|
||
"\n",
|
||
"# @markdown - Avoid all punctuation except for \"?\" and \"!\", and remove unicode characters\n",
|
||
"\n",
|
||
"import os\n",
|
||
"import sys\n",
|
||
"from IPython.display import Audio\n",
|
||
"\n",
|
||
"if not os.path.exists(\"./piper-sample-generator\"):\n",
|
||
" !git clone https://github.com/rhasspy/piper-sample-generator\n",
|
||
" !wget -O piper-sample-generator/models/en_US-libritts_r-medium.pt 'https://github.com/rhasspy/piper-sample-generator/releases/download/v2.0.0/en_US-libritts_r-medium.pt'\n",
|
||
" !cd piper-sample-generator && git checkout 213d4d5\n",
|
||
"\n",
|
||
" # Install system dependencies\n",
|
||
" !pip install piper-tts piper-phonemize-cross\n",
|
||
" !pip install webrtcvad\n",
|
||
" # !pip install 'torch<=2.5' torchvision torchaudio\n",
|
||
" !pip install torch==2.5.0 torchvision==0.20.0 torchaudio==2.5.0 --index-url https://download.pytorch.org/whl/cu121\n",
|
||
"\n",
|
||
"target_word = 'hey_viva' # @param {type:\"string\"}\n",
|
||
"\n",
|
||
"if \"piper-sample-generator/\" not in sys.path:\n",
|
||
" sys.path.append(\"piper-sample-generator/\")\n",
|
||
"from generate_samples import generate_samples\n",
|
||
"\n",
|
||
"def text_to_speech(text):\n",
|
||
" generate_samples(text = text,\n",
|
||
" max_samples=1,\n",
|
||
" length_scales=[1.1],\n",
|
||
" noise_scales=[0.7], noise_scale_ws = [0.7],\n",
|
||
" output_dir = './', batch_size=1, auto_reduce_batch_size=True,\n",
|
||
" file_names=[\"test_generation.wav\"]\n",
|
||
" )\n",
|
||
"\n",
|
||
"text_to_speech(target_word)\n",
|
||
"\n",
|
||
"from IPython.display import Audio\n",
|
||
"Audio(\"test_generation.wav\", autoplay=True)\n"
|
||
],
|
||
"metadata": {
|
||
"id": "1cbqBebHXjFD",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 130
|
||
},
|
||
"collapsed": true,
|
||
"outputId": "970c06f9-24c5-4fca-a3b0-b479a81850f8"
|
||
},
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stderr",
|
||
"text": [
|
||
"/content/piper-sample-generator/generate_samples.py:76: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
|
||
" torch_model = torch.load(model_path)\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.lib.display.Audio object>"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
" <audio controls=\"controls\" autoplay=\"autoplay\">\n",
|
||
" <source src=\"data:audio/x-wav;base64,UklGRgRXAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YeBWAAAnAEIAOwA3ACcAJAAhAB8AGwAXAA4ACAAKAAsADQAKAAcABAALABcAFwARABEAEAAYABgAGgAdAB4AIwAcACAAIgAeABoAHQAfACIAIwAjACUAJQAlACUAJQAmAC4AMAAwAC0AMgAyAC8AMwAvADIANwA3ADkAOQA3ADcAPgA+AEAAQAA9AEAAQQBJAEgATABPAE8AUQBNAFEAUQBSAFQAVwBaAFoAXQBZAFsAXgBaAFcAUQBMAFQATABMAFAASQBNAEoASgBMAEwASQBGAEcARQBDAD0AOQA5ADcAMAAtACwAJwAjACYAJgAkACgAJgAlACkAMAA6ADgAPwBIAEEARwBJAEsATQBCAD8APQA7ADwAOAAyAC0ALAArACcAJAAjACMAKAAmACoAJwAhAB0AIgAlAAwAKQBzAHwAZAB1AFAAPQBFAEMAVABSAGgAbQBkAGwAaQBmAGEAXwBnAGkAbwBxAHcAcQBwAHwAdwB5AHoAeACDAIUAjACSAJcAnACYAJ8AnQCfAKAApwCmAKkAtACvALYAuQC8ALkAtgDAAMUA0ADKAMIAygDPANMAzwDTANgA1QDUANQA2QDeANwA4QDkAN0A7ADnAOMA6gDvAPAA5QDvAPAA8AD6APkA+gD1APgA+gAAAQQBDAEVARoBJQEmASYBLQE2ATMBOQE0ATwBQgFNAU8BSgFYAVcBVgFdAWABZQFsAWkBdAF+AX8BgQGGAY0BlAGVAZkBlAGdAakBqAGqAaEBogGlAa0BogGpAa0BswG3AbUBxgHRAdUBywHJAdMB2gHQAc4BzwHVAdEB0QHRAcsB2QHYAdUB2AHaAdYB0gHoAe8B4gHhAeUB9AHoAecB7wHjAe0B7gHxAfQB+AH9AQQC9gHzAeoB3gHzAfAB9AH2AfQB8wH2AecB7gHoAeAB5QHcAeMB0QHRAcYBzQHEAb4BygG9AbIBpwG1AbEBrwGmAagBmQGOAaABoQGaAZgBgQF+AYwBeQF0AXEBfAFqAVkBbwFgAVsBXAFUAVoBTAFFAT0BQwFFAScBKAEoAR0BFQELARwBDwEIARQBAQH9APkA4wDiAOAA3wDQAMcAyQDUAM4AvADQAMAAvACzALMAwADAALcAugC0AKoApgCsAKwA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kQCIAG8AYwBcAFUAYgBlAGoAawBdAE0AOwAgAA8ADgAYACwAQABWAFYAUQA4AA4A8f/q//7/DgAmADYANwA0AC8AJAAxAEwAcACXALkAxQDDAL0AlwB/AIAAlQCbALMA0wDxAAwBEgEXASkBQgFKAU8BSAFTAVQBSwE5ASkBKQEtAS4BMAFAAUkBWAFlAW8BcAF2AYABeQF1AW4BUwFKATsBOwFKAU0BXwFdAWgBdgFxAWkBaQFXAVUBUAFPAVIBTgFgAWEBXwFzAXoBdQF7AX4BhgF8AYkBlAGPAZ4BogGiAagBrAGyAccB2AHhAfUB9AHuAfsB9AHuAe8B3wHhAegB5wHyAfcBDgILAgYCCgIGAggCCQINAgACBwIBAgEC+AH1AfYB8AH5Ae0B8wHwAfUB/gH4AfoBBwIPAgoCAwL9AfgB7AH3Af8B9QECAgYCCgILAgQCCQL3AfkBAwIJAhACDwIUAh0CJgIsAioCHQIcAh0CGQIdAhACBwIFAvMB6QHmAesB4AHqAQMCCQISAhgCFQIGAhAC+wH0ARICCQIHAh4CLAIdAiQCJwIvAjsCLAIuAiYCDgL7AfcB+AHrAeIB8AHkAdYBzQG/AbkBsAHGAcEBxQHbAeAB0wHMAc8BugHAAbIBrQGrAagBsQG3AbgBoQGrAakBnwGtAbwBvgG6AbsBvgG0AaQBnAGXAZ8BqQGhAaQBrAGqAbUBtwGyAagBmQGLAYYBkQGgAakBsgG/AdUB3gHPAbwBsgGoAZwBlAGZAaMBlwGIAYgBfgFvAWgBZQFrAXkBhQGPAZgBjwGXAaIBrAGvAbIBvwGuAbIBvAG0AbwBuAG8AcYByQHVAdMB1wHTAdoB1QHVAdUB3QHdAcgB0QHeAeMB6wHwAegB6gHuAe4BzAHXAdEB\" type=\"audio/x-wav\" />\n",
|
||
" Your browser does not support the audio element.\n",
|
||
" </audio>\n",
|
||
" "
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 1
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# @title { display-mode: \"form\" }\n",
|
||
"# @markdown # 2. Download Data\n",
|
||
"# @markdown Training custom models requires downloading a wide variety of data\n",
|
||
"# @markdown that will help make the model perform well in real-world scenarios.\n",
|
||
"# @markdown This example notebook will download small samples of background noise,\n",
|
||
"# @markdown music, and Room Impulse Responses (to add echo). This will still produce\n",
|
||
"# @markdown a custom model that performs well, but if you are interested in adding even more,\n",
|
||
"# @markdown feel free to extend this notebook to download the full datasets and even add\n",
|
||
"# @markdown your own!\n",
|
||
"# @markdown\n",
|
||
"# @markdown Downloading this example data will usually take about 15 minutes.\n",
|
||
"\n",
|
||
"# @markdown **Important note!** The data downloaded here has a mixture of different\n",
|
||
"# @markdown licenses and usage restrictions. As such, any custom models trained with this\n",
|
||
"# @markdown data should be considered as appropriate for **non-commercial** personal use only.\n",
|
||
"\n",
|
||
"# ## Install all dependencies\n",
|
||
"# !pip install datasets\n",
|
||
"# !pip install scipy\n",
|
||
"# !pip install tqdm\n",
|
||
"\n",
|
||
"import locale\n",
|
||
"def getpreferredencoding(do_setlocale = True):\n",
|
||
" return \"UTF-8\"\n",
|
||
"locale.getpreferredencoding = getpreferredencoding\n",
|
||
"\n",
|
||
"import os\n",
|
||
"import shutil # Import shutil for rmtree\n",
|
||
"\n",
|
||
"# install openwakeword (full installation to support training)\n",
|
||
"# Ensure a clean install by removing existing directory before cloning\n",
|
||
"if os.path.exists(\"./openwakeword\"):\n",
|
||
" shutil.rmtree(\"./openwakeword\")\n",
|
||
"# Added a shell-level removal for robustness in case python's rmtree fails\n",
|
||
"!rm -rf ./openwakeword\n",
|
||
"!git clone https://github.com/dscripka/openwakeword\n",
|
||
"!pip install -e ./openwakeword --no-deps\n",
|
||
"# !cd openwakeword\n",
|
||
"\n",
|
||
"# install other dependencies\n",
|
||
"!pip install mutagen==1.47.0\n",
|
||
"!pip install torchinfo==1.8.0\n",
|
||
"!pip install torchmetrics==1.2.0\n",
|
||
"!pip install speechbrain==0.5.14\n",
|
||
"!pip install audiomentations==0.33.0\n",
|
||
"!pip install torch-audiomentations==0.11.0\n",
|
||
"!pip install acoustics==0.2.6\n",
|
||
"# !pip uninstall tensorflow -y\n",
|
||
"# !pip install tensorflow-cpu==2.8.1\n",
|
||
"# !pip install protobuf==3.20.3\n",
|
||
"!pip install onnx_tf==1.10.0 # Added onnx_tf\n",
|
||
"!pip install onnxruntime==1.22.1 ai_edge_litert==1.4.0 onnxsim\n",
|
||
"!pip install onnx2tf\n",
|
||
"!pip install onnx==1.19.1\n",
|
||
"# !pip install ai_edge_litert==1.2.0\n",
|
||
"!pip install onnx_graphsurgeon\n",
|
||
"!pip install sng4onnx\n",
|
||
"!pip install pronouncing==0.2.0\n",
|
||
"!pip install datasets==2.14.6\n",
|
||
"!pip install deep-phonemizer==0.0.19\n",
|
||
"\n",
|
||
"# Download required models (workaround for Colab)\n",
|
||
"os.makedirs(\"./openwakeword/openwakeword/resources/models\", exist_ok=True)\n",
|
||
"!wget https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/embedding_model.onnx -O ./openwakeword/openwakeword/resources/models/embedding_model.onnx\n",
|
||
"!wget https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/embedding_model.tflite -O ./openwakeword/openwakeword/resources/models/embedding_model.tflite\n",
|
||
"!wget https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/melspectrogram.onnx -O ./openwakeword/openwakeword/resources/models/melspectrogram.onnx\n",
|
||
"!wget https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/melspectrogram.tflite -O ./openwakeword/openwakeword/resources/models/melspectrogram.tflite\n",
|
||
"\n",
|
||
"# Imports\n",
|
||
"import sys\n",
|
||
"\n",
|
||
"if \"piper-sample-generator/\" not in sys.path:\n",
|
||
" sys.path.append(\"piper-sample-generator/\")\n",
|
||
"from generate_samples import generate_samples\n",
|
||
"\n",
|
||
"import numpy as np\n",
|
||
"import torch\n",
|
||
"import sys\n",
|
||
"from pathlib import Path\n",
|
||
"import uuid\n",
|
||
"import yaml\n",
|
||
"import datasets\n",
|
||
"import scipy\n",
|
||
"from tqdm import tqdm\n",
|
||
"\n",
|
||
"## Download all data\n",
|
||
"\n",
|
||
"## Download MIR RIR data (takes about ~2 minutes)\n",
|
||
"output_dir = \"./mit_rirs\"\n",
|
||
"if not os.path.exists(output_dir):\n",
|
||
" os.mkdir(output_dir)\n",
|
||
" !git lfs install\n",
|
||
" !git clone https://huggingface.co/datasets/davidscripka/MIT_environmental_impulse_responses\n",
|
||
" rir_dataset = datasets.Dataset.from_dict({\"audio\": [str(i) for i in Path(\"./MIT_environmental_impulse_responses/16khz\").glob(\"*.wav\")]}).cast_column(\"audio\", datasets.Audio())\n",
|
||
" # Save clips to 16-bit PCM wav files\n",
|
||
" for row in tqdm(rir_dataset):\n",
|
||
" name = row['audio']['path'].split('/')[-1]\n",
|
||
" scipy.io.wavfile.write(os.path.join(output_dir, name), 16000, (row['audio']['array']*32767).astype(np.int16))\n",
|
||
"\n",
|
||
"## Download noise and background audio (takes about ~3 minutes)\n",
|
||
"\n",
|
||
"# Audioset Dataset (https://research.google.com/audioset/index.html)\n",
|
||
"# The previous download link for 'bal_train09.tar' resulted in a 404 Not Found error.\n",
|
||
"# To proceed, this section is commented out. The model will be trained without this\n",
|
||
"# part of the AudioSet dataset, which might affect its robustness in noisy environments.\n",
|
||
"# For full-scale training, it's recommended to find an updated or alternative source for\n",
|
||
"# a diverse background noise dataset.\n",
|
||
"\n",
|
||
"# if not os.path.exists(\"audioset\"):\n",
|
||
"# os.mkdir(\"audioset\")\n",
|
||
"\n",
|
||
"# fname = \"bal_train09.tar\"\n",
|
||
"# out_dir = f\"audioset/{fname}\"\n",
|
||
"# link = \"https://huggingface.co/datasets/agkphysics/AudioSet/resolve/main/data/\" + fname\n",
|
||
"# !wget -O {out_dir} {link}\n",
|
||
"# !cd audioset && tar -xvf bal_train09.tar\n",
|
||
"\n",
|
||
"# output_dir = \"./audioset_16k\"\n",
|
||
"# if not os.path.exists(output_dir):\n",
|
||
"# os.mkdir(output_dir)\n",
|
||
"\n",
|
||
"# # Save clips to 16-bit PCM wav files\n",
|
||
"# audioset_dataset = datasets.Dataset.from_dict({\"audio\": [str(i) for i in Path(\"audioset/audio\").glob(\"**/*.flac\")]})\n",
|
||
"# audioset_dataset = audioset_dataset.cast_column(\"audio\", datasets.Audio(sampling_rate=16000))\n",
|
||
"# for row in tqdm(audioset_dataset):\n",
|
||
"# name = row['audio']['path'].split('/')[-1].replace(\".flac\", \".wav\")\n",
|
||
"# scipy.io.wavfile.write(os.path.join(output_dir, name), 16000, (row['audio']['array']*32767).astype(np.int16))\n",
|
||
"\n",
|
||
"# Free Music Archive dataset\n",
|
||
"# https://github.com/mdeff/fma\n",
|
||
"\n",
|
||
"output_dir = \"./fma\"\n",
|
||
"if not os.path.exists(output_dir):\n",
|
||
" os.mkdir(output_dir)\n",
|
||
" fma_dataset = datasets.load_dataset(\"rudraml/fma\", name=\"small\", split=\"train\", streaming=True)\n",
|
||
" fma_dataset = iter(fma_dataset.cast_column(\"audio\", datasets.Audio(sampling_rate=16000)))\n",
|
||
"\n",
|
||
" # Save clips to 16-bit PCM wav files\n",
|
||
" n_hours = 1 # use only 1 hour of clips for this example notebook, recommend increasing for full-scale training\n",
|
||
" for i in tqdm(range(n_hours*3600//30)): # this works because the FMA dataset is all 30 second clips\n",
|
||
" row = next(fma_dataset)\n",
|
||
" name = row['audio']['path'].split('/')[-1].replace(\".mp3\", \".wav\")\n",
|
||
" scipy.io.wavfile.write(os.path.join(output_dir, name), 16000, (row['audio']['array']*32767).astype(np.int16))\n",
|
||
" i += 1\n",
|
||
" if i == n_hours*3600//30:\n",
|
||
" break\n",
|
||
"\n",
|
||
"# Download pre-computed openWakeWord features for training and validation\n",
|
||
"\n",
|
||
"# training set (~2,000 hours from the ACAV100M Dataset)\n",
|
||
"# See https://huggingface.co/datasets/davidscripka/openwakeword_features for more information\n",
|
||
"if not os.path.exists(\"./openwakeword_features_ACAV100M_2000_hrs_16bit.npy\"):\n",
|
||
" !wget https://huggingface.co/datasets/davidscripka/openwakeword_features/resolve/main/openwakeword_features_ACAV100M_2000_hrs_16bit.npy\n",
|
||
"\n",
|
||
"# validation set for false positive rate estimation (~11 hours)\n",
|
||
"if not os.path.exists(\"validation_set_features.npy\"):\n",
|
||
" !wget https://huggingface.co/datasets/davidscripka/openwakeword_features/resolve/main/validation_set_features.npy"
|
||
],
|
||
"metadata": {
|
||
"id": "oWahyFO20_mh",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "19aa2150-b4e5-4944-8654-e1c81ce1da5f"
|
||
},
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Cloning into 'openwakeword'...\n",
|
||
"remote: Enumerating objects: 1248, done.\u001b[K\n",
|
||
"remote: Counting objects: 100% (554/554), done.\u001b[K\n",
|
||
"remote: Compressing objects: 100% (146/146), done.\u001b[K\n",
|
||
"remote: Total 1248 (delta 446), reused 408 (delta 408), pack-reused 694 (from 2)\u001b[K\n",
|
||
"Receiving objects: 100% (1248/1248), 3.24 MiB | 12.36 MiB/s, done.\n",
|
||
"Resolving deltas: 100% (771/771), done.\n",
|
||
"Obtaining file:///content/openwakeword\n",
|
||
" Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
|
||
" Checking if build backend supports build_editable ... \u001b[?25l\u001b[?25hdone\n",
|
||
" Getting requirements to build editable ... \u001b[?25l\u001b[?25hdone\n",
|
||
" Preparing editable metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
|
||
"Building wheels for collected packages: openwakeword\n",
|
||
" Building editable for openwakeword (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
|
||
" Created wheel for openwakeword: filename=openwakeword-0.6.0-0.editable-py3-none-any.whl size=17481 sha256=d33e0714f1772eee280ab3245778a9daf33cb4a9b1b9d7eae1fe5ef8aaee2513\n",
|
||
" Stored in directory: /tmp/pip-ephem-wheel-cache-gxs_chb3/wheels/95/b4/6f/f887431fea7b3379ef42ac3594a92164114b83a95abb8b7969\n",
|
||
"Successfully built openwakeword\n",
|
||
"Installing collected packages: openwakeword\n",
|
||
" Attempting uninstall: openwakeword\n",
|
||
" Found existing installation: openwakeword 0.6.0\n",
|
||
" Uninstalling openwakeword-0.6.0:\n",
|
||
" Successfully uninstalled openwakeword-0.6.0\n",
|
||
"Successfully installed openwakeword-0.6.0\n",
|
||
"Requirement already satisfied: mutagen==1.47.0 in /usr/local/lib/python3.12/dist-packages (1.47.0)\n",
|
||
"Requirement already satisfied: torchinfo==1.8.0 in /usr/local/lib/python3.12/dist-packages (1.8.0)\n",
|
||
"Requirement already satisfied: torchmetrics==1.2.0 in /usr/local/lib/python3.12/dist-packages (1.2.0)\n",
|
||
"Requirement already satisfied: numpy>1.20.0 in /usr/local/lib/python3.12/dist-packages (from torchmetrics==1.2.0) (1.26.4)\n",
|
||
"Requirement already satisfied: torch>=1.8.1 in /usr/local/lib/python3.12/dist-packages (from torchmetrics==1.2.0) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: lightning-utilities>=0.8.0 in /usr/local/lib/python3.12/dist-packages (from torchmetrics==1.2.0) (0.15.3)\n",
|
||
"Requirement already satisfied: packaging>=22 in /usr/local/lib/python3.12/dist-packages (from lightning-utilities>=0.8.0->torchmetrics==1.2.0) (26.2)\n",
|
||
"Requirement already satisfied: typing_extensions in /usr/local/lib/python3.12/dist-packages (from lightning-utilities>=0.8.0->torchmetrics==1.2.0) (4.15.0)\n",
|
||
"Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (3.29.0)\n",
|
||
"Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (3.6.1)\n",
|
||
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (3.1.6)\n",
|
||
"Requirement already satisfied: fsspec in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (2023.10.0)\n",
|
||
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (9.1.0.70)\n",
|
||
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.3.1)\n",
|
||
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (11.0.2.54)\n",
|
||
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (10.3.2.106)\n",
|
||
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (11.4.5.107)\n",
|
||
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.0.106)\n",
|
||
"Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (2.21.5)\n",
|
||
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (12.1.105)\n",
|
||
"Requirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (3.1.0)\n",
|
||
"Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (75.2.0)\n",
|
||
"Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.8.1->torchmetrics==1.2.0) (1.13.1)\n",
|
||
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.12/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.8.1->torchmetrics==1.2.0) (12.9.86)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy==1.13.1->torch>=1.8.1->torchmetrics==1.2.0) (1.3.0)\n",
|
||
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.8.1->torchmetrics==1.2.0) (3.0.3)\n",
|
||
"Requirement already satisfied: speechbrain==0.5.14 in /usr/local/lib/python3.12/dist-packages (0.5.14)\n",
|
||
"Requirement already satisfied: hyperpyyaml in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (1.2.3)\n",
|
||
"Requirement already satisfied: joblib in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (1.5.3)\n",
|
||
"Requirement already satisfied: numpy in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (1.26.4)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (26.2)\n",
|
||
"Requirement already satisfied: scipy in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (1.16.3)\n",
|
||
"Requirement already satisfied: sentencepiece in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (0.2.1)\n",
|
||
"Requirement already satisfied: torch>=1.9 in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: torchaudio in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (4.67.1)\n",
|
||
"Requirement already satisfied: huggingface-hub in /usr/local/lib/python3.12/dist-packages (from speechbrain==0.5.14) (0.36.2)\n",
|
||
"Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (3.29.0)\n",
|
||
"Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (4.15.0)\n",
|
||
"Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (3.6.1)\n",
|
||
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (3.1.6)\n",
|
||
"Requirement already satisfied: fsspec in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (2023.10.0)\n",
|
||
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (9.1.0.70)\n",
|
||
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.3.1)\n",
|
||
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (11.0.2.54)\n",
|
||
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (10.3.2.106)\n",
|
||
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (11.4.5.107)\n",
|
||
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.0.106)\n",
|
||
"Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (2.21.5)\n",
|
||
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (12.1.105)\n",
|
||
"Requirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (3.1.0)\n",
|
||
"Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (75.2.0)\n",
|
||
"Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.9->speechbrain==0.5.14) (1.13.1)\n",
|
||
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.12/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.9->speechbrain==0.5.14) (12.9.86)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy==1.13.1->torch>=1.9->speechbrain==0.5.14) (1.3.0)\n",
|
||
"Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub->speechbrain==0.5.14) (1.5.0)\n",
|
||
"Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub->speechbrain==0.5.14) (6.0.3)\n",
|
||
"Requirement already satisfied: requests in /usr/local/lib/python3.12/dist-packages (from huggingface-hub->speechbrain==0.5.14) (2.32.4)\n",
|
||
"Requirement already satisfied: ruamel.yaml<0.19.0,>=0.17.28 in /usr/local/lib/python3.12/dist-packages (from hyperpyyaml->speechbrain==0.5.14) (0.18.17)\n",
|
||
"Requirement already satisfied: ruamel.yaml.clib>=0.2.15 in /usr/local/lib/python3.12/dist-packages (from ruamel.yaml<0.19.0,>=0.17.28->hyperpyyaml->speechbrain==0.5.14) (0.2.15)\n",
|
||
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.9->speechbrain==0.5.14) (3.0.3)\n",
|
||
"Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub->speechbrain==0.5.14) (3.4.7)\n",
|
||
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub->speechbrain==0.5.14) (3.15)\n",
|
||
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub->speechbrain==0.5.14) (2.5.0)\n",
|
||
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests->huggingface-hub->speechbrain==0.5.14) (2026.5.20)\n",
|
||
"Requirement already satisfied: audiomentations==0.33.0 in /usr/local/lib/python3.12/dist-packages (0.33.0)\n",
|
||
"Requirement already satisfied: numpy>=1.18.0 in /usr/local/lib/python3.12/dist-packages (from audiomentations==0.33.0) (1.26.4)\n",
|
||
"Requirement already satisfied: librosa!=0.10.0,<0.11.0,>=0.8.0 in /usr/local/lib/python3.12/dist-packages (from audiomentations==0.33.0) (0.10.2.post1)\n",
|
||
"Requirement already satisfied: scipy<2,>=1.4.0 in /usr/local/lib/python3.12/dist-packages (from audiomentations==0.33.0) (1.16.3)\n",
|
||
"Requirement already satisfied: soxr<1.0.0,>=0.3.2 in /usr/local/lib/python3.12/dist-packages (from audiomentations==0.33.0) (0.5.0.post1)\n",
|
||
"Requirement already satisfied: audioread>=2.1.9 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (3.1.0)\n",
|
||
"Requirement already satisfied: scikit-learn>=0.20.0 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (1.6.1)\n",
|
||
"Requirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (1.5.3)\n",
|
||
"Requirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (4.4.2)\n",
|
||
"Requirement already satisfied: numba>=0.51.0 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (0.60.0)\n",
|
||
"Requirement already satisfied: soundfile>=0.12.1 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (0.13.1)\n",
|
||
"Requirement already satisfied: pooch>=1.1 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (1.9.0)\n",
|
||
"Requirement already satisfied: typing-extensions>=4.1.1 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (4.15.0)\n",
|
||
"Requirement already satisfied: lazy-loader>=0.1 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (0.5)\n",
|
||
"Requirement already satisfied: msgpack>=1.0 in /usr/local/lib/python3.12/dist-packages (from librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (1.1.2)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from lazy-loader>=0.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (26.2)\n",
|
||
"Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.51.0->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (0.43.0)\n",
|
||
"Requirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (4.9.6)\n",
|
||
"Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.12/dist-packages (from pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (2.32.4)\n",
|
||
"Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn>=0.20.0->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (3.6.0)\n",
|
||
"Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.12/dist-packages (from soundfile>=0.12.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (2.0.0)\n",
|
||
"Requirement already satisfied: pycparser in /usr/local/lib/python3.12/dist-packages (from cffi>=1.0->soundfile>=0.12.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (3.0)\n",
|
||
"Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (3.4.7)\n",
|
||
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (3.15)\n",
|
||
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (2.5.0)\n",
|
||
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa!=0.10.0,<0.11.0,>=0.8.0->audiomentations==0.33.0) (2026.5.20)\n",
|
||
"Requirement already satisfied: torch-audiomentations==0.11.0 in /usr/local/lib/python3.12/dist-packages (0.11.0)\n",
|
||
"Requirement already satisfied: julius<0.3,>=0.2.3 in /usr/local/lib/python3.12/dist-packages (from torch-audiomentations==0.11.0) (0.2.7)\n",
|
||
"Requirement already satisfied: librosa>=0.6.0 in /usr/local/lib/python3.12/dist-packages (from torch-audiomentations==0.11.0) (0.10.2.post1)\n",
|
||
"Requirement already satisfied: torch>=1.7.0 in /usr/local/lib/python3.12/dist-packages (from torch-audiomentations==0.11.0) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: torchaudio>=0.7.0 in /usr/local/lib/python3.12/dist-packages (from torch-audiomentations==0.11.0) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: torch-pitch-shift>=1.2.2 in /usr/local/lib/python3.12/dist-packages (from torch-audiomentations==0.11.0) (1.2.5)\n",
|
||
"Requirement already satisfied: audioread>=2.1.9 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (3.1.0)\n",
|
||
"Requirement already satisfied: numpy!=1.22.0,!=1.22.1,!=1.22.2,>=1.20.3 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.26.4)\n",
|
||
"Requirement already satisfied: scipy>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.16.3)\n",
|
||
"Requirement already satisfied: scikit-learn>=0.20.0 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.6.1)\n",
|
||
"Requirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.5.3)\n",
|
||
"Requirement already satisfied: decorator>=4.3.0 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (4.4.2)\n",
|
||
"Requirement already satisfied: numba>=0.51.0 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (0.60.0)\n",
|
||
"Requirement already satisfied: soundfile>=0.12.1 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (0.13.1)\n",
|
||
"Requirement already satisfied: pooch>=1.1 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.9.0)\n",
|
||
"Requirement already satisfied: soxr>=0.3.2 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (0.5.0.post1)\n",
|
||
"Requirement already satisfied: typing-extensions>=4.1.1 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (4.15.0)\n",
|
||
"Requirement already satisfied: lazy-loader>=0.1 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (0.5)\n",
|
||
"Requirement already satisfied: msgpack>=1.0 in /usr/local/lib/python3.12/dist-packages (from librosa>=0.6.0->torch-audiomentations==0.11.0) (1.1.2)\n",
|
||
"Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (3.29.0)\n",
|
||
"Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (3.6.1)\n",
|
||
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (3.1.6)\n",
|
||
"Requirement already satisfied: fsspec in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (2023.10.0)\n",
|
||
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (9.1.0.70)\n",
|
||
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.3.1)\n",
|
||
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (11.0.2.54)\n",
|
||
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (10.3.2.106)\n",
|
||
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (11.4.5.107)\n",
|
||
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.0.106)\n",
|
||
"Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (2.21.5)\n",
|
||
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (12.1.105)\n",
|
||
"Requirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (3.1.0)\n",
|
||
"Requirement already satisfied: setuptools in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (75.2.0)\n",
|
||
"Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.7.0->torch-audiomentations==0.11.0) (1.13.1)\n",
|
||
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.12/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.7.0->torch-audiomentations==0.11.0) (12.9.86)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy==1.13.1->torch>=1.7.0->torch-audiomentations==0.11.0) (1.3.0)\n",
|
||
"Requirement already satisfied: primePy>=1.3 in /usr/local/lib/python3.12/dist-packages (from torch-pitch-shift>=1.2.2->torch-audiomentations==0.11.0) (1.3)\n",
|
||
"Requirement already satisfied: packaging>=21.3 in /usr/local/lib/python3.12/dist-packages (from torch-pitch-shift>=1.2.2->torch-audiomentations==0.11.0) (26.2)\n",
|
||
"Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.12/dist-packages (from numba>=0.51.0->librosa>=0.6.0->torch-audiomentations==0.11.0) (0.43.0)\n",
|
||
"Requirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (4.9.6)\n",
|
||
"Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.12/dist-packages (from pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (2.32.4)\n",
|
||
"Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.12/dist-packages (from scikit-learn>=0.20.0->librosa>=0.6.0->torch-audiomentations==0.11.0) (3.6.0)\n",
|
||
"Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.12/dist-packages (from soundfile>=0.12.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (2.0.0)\n",
|
||
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.12/dist-packages (from jinja2->torch>=1.7.0->torch-audiomentations==0.11.0) (3.0.3)\n",
|
||
"Requirement already satisfied: pycparser in /usr/local/lib/python3.12/dist-packages (from cffi>=1.0->soundfile>=0.12.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (3.0)\n",
|
||
"Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (3.4.7)\n",
|
||
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (3.15)\n",
|
||
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (2.5.0)\n",
|
||
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->pooch>=1.1->librosa>=0.6.0->torch-audiomentations==0.11.0) (2026.5.20)\n",
|
||
"Requirement already satisfied: acoustics==0.2.6 in /usr/local/lib/python3.12/dist-packages (0.2.6)\n",
|
||
"Requirement already satisfied: numpy>=1.8 in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (1.26.4)\n",
|
||
"Requirement already satisfied: scipy>=0.16 in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (1.16.3)\n",
|
||
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (3.10.0)\n",
|
||
"Requirement already satisfied: six>=1.4.1 in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (1.17.0)\n",
|
||
"Requirement already satisfied: pandas>=0.15 in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (2.2.2)\n",
|
||
"Requirement already satisfied: tabulate in /usr/local/lib/python3.12/dist-packages (from acoustics==0.2.6) (0.9.0)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas>=0.15->acoustics==0.2.6) (2.9.0.post0)\n",
|
||
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas>=0.15->acoustics==0.2.6) (2025.2)\n",
|
||
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas>=0.15->acoustics==0.2.6) (2026.2)\n",
|
||
"Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (1.3.3)\n",
|
||
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (0.12.1)\n",
|
||
"Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (4.63.0)\n",
|
||
"Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (1.5.0)\n",
|
||
"Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (26.2)\n",
|
||
"Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (11.3.0)\n",
|
||
"Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib->acoustics==0.2.6) (3.3.2)\n",
|
||
"Collecting onnx_tf==1.10.0\n",
|
||
" Using cached onnx_tf-1.10.0-py3-none-any.whl.metadata (510 bytes)\n",
|
||
"Requirement already satisfied: onnx>=1.10.2 in /usr/local/lib/python3.12/dist-packages (from onnx_tf==1.10.0) (1.19.1)\n",
|
||
"Requirement already satisfied: PyYAML in /usr/local/lib/python3.12/dist-packages (from onnx_tf==1.10.0) (6.0.3)\n",
|
||
"INFO: pip is looking at multiple versions of onnx-tf to determine which version is compatible with other requirements. This could take a while.\n",
|
||
"\u001b[31mERROR: Could not find a version that satisfies the requirement tensorflow-addons (from onnx-tf) (from versions: none)\u001b[0m\u001b[31m\n",
|
||
"\u001b[0m\u001b[31mERROR: No matching distribution found for tensorflow-addons\u001b[0m\u001b[31m\n",
|
||
"\u001b[0mCollecting onnxruntime==1.22.1\n",
|
||
" Using cached onnxruntime-1.22.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (4.9 kB)\n",
|
||
"Collecting ai_edge_litert==1.4.0\n",
|
||
" Using cached ai_edge_litert-1.4.0-cp312-cp312-manylinux_2_17_x86_64.whl.metadata (1.9 kB)\n",
|
||
"Requirement already satisfied: onnxsim in /usr/local/lib/python3.12/dist-packages (0.6.4)\n",
|
||
"Requirement already satisfied: coloredlogs in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (15.0.1)\n",
|
||
"Requirement already satisfied: flatbuffers in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (25.12.19)\n",
|
||
"Requirement already satisfied: numpy>=1.21.6 in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (1.26.4)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (26.2)\n",
|
||
"Requirement already satisfied: protobuf in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (4.25.5)\n",
|
||
"Requirement already satisfied: sympy in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.22.1) (1.13.1)\n",
|
||
"Requirement already satisfied: backports.strenum in /usr/local/lib/python3.12/dist-packages (from ai_edge_litert==1.4.0) (1.2.8)\n",
|
||
"Requirement already satisfied: tqdm in /usr/local/lib/python3.12/dist-packages (from ai_edge_litert==1.4.0) (4.67.1)\n",
|
||
"Requirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from ai_edge_litert==1.4.0) (4.15.0)\n",
|
||
"Requirement already satisfied: onnx in /usr/local/lib/python3.12/dist-packages (from onnxsim) (1.19.1)\n",
|
||
"Requirement already satisfied: rich in /usr/local/lib/python3.12/dist-packages (from onnxsim) (13.9.4)\n",
|
||
"Requirement already satisfied: humanfriendly>=9.1 in /usr/local/lib/python3.12/dist-packages (from coloredlogs->onnxruntime==1.22.1) (10.0)\n",
|
||
"Requirement already satisfied: ml_dtypes>=0.5.0 in /usr/local/lib/python3.12/dist-packages (from onnx->onnxsim) (0.5.1)\n",
|
||
"Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.12/dist-packages (from rich->onnxsim) (4.2.0)\n",
|
||
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.12/dist-packages (from rich->onnxsim) (2.20.0)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy->onnxruntime==1.22.1) (1.3.0)\n",
|
||
"Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.12/dist-packages (from markdown-it-py>=2.2.0->rich->onnxsim) (0.1.2)\n",
|
||
"Using cached onnxruntime-1.22.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.5 MB)\n",
|
||
"Using cached ai_edge_litert-1.4.0-cp312-cp312-manylinux_2_17_x86_64.whl (11.2 MB)\n",
|
||
"Installing collected packages: ai_edge_litert, onnxruntime\n",
|
||
" Attempting uninstall: ai_edge_litert\n",
|
||
" Found existing installation: ai-edge-litert 2.1.2\n",
|
||
" Uninstalling ai-edge-litert-2.1.2:\n",
|
||
" Successfully uninstalled ai-edge-litert-2.1.2\n",
|
||
" Attempting uninstall: onnxruntime\n",
|
||
" Found existing installation: onnxruntime 1.24.3\n",
|
||
" Uninstalling onnxruntime-1.24.3:\n",
|
||
" Successfully uninstalled onnxruntime-1.24.3\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",
|
||
"openwakeword 0.6.0 requires speexdsp-ns<1,>=0.1.2; platform_system == \"Linux\", which is not installed.\n",
|
||
"openwakeword 0.6.0 requires ai-edge-litert<3,>=2.0.2; platform_system == \"Linux\" or platform_system == \"Darwin\", but you have ai-edge-litert 1.4.0 which is incompatible.\n",
|
||
"onnx2tf 2.4.0 requires ai-edge-litert==2.1.2, but you have ai-edge-litert 1.4.0 which is incompatible.\n",
|
||
"onnx2tf 2.4.0 requires onnx==1.20.1, but you have onnx 1.19.1 which is incompatible.\n",
|
||
"onnx2tf 2.4.0 requires onnxruntime==1.24.3, but you have onnxruntime 1.22.1 which is incompatible.\u001b[0m\u001b[31m\n",
|
||
"\u001b[0mSuccessfully installed ai_edge_litert-1.4.0 onnxruntime-1.22.1\n",
|
||
"Requirement already satisfied: onnx2tf in /usr/local/lib/python3.12/dist-packages (2.4.0)\n",
|
||
"Requirement already satisfied: numpy==1.26.4 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (1.26.4)\n",
|
||
"Collecting onnx==1.20.1 (from onnx2tf)\n",
|
||
" Using cached onnx-1.20.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.4 kB)\n",
|
||
"Collecting onnxruntime==1.24.3 (from onnx2tf)\n",
|
||
" Using cached onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.1 kB)\n",
|
||
"Requirement already satisfied: opencv-python==4.11.0.86 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (4.11.0.86)\n",
|
||
"Requirement already satisfied: onnxsim-prebuilt==0.4.39.post2 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (0.4.39.post2)\n",
|
||
"Requirement already satisfied: onnxoptimizer==0.4.2 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (0.4.2)\n",
|
||
"Requirement already satisfied: onnxscript==0.6.2 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (0.6.2)\n",
|
||
"Collecting ai-edge-litert==2.1.2 (from onnx2tf)\n",
|
||
" Using cached ai_edge_litert-2.1.2-cp312-cp312-manylinux_2_27_x86_64.whl.metadata (2.1 kB)\n",
|
||
"Requirement already satisfied: sne4onnx==2.0.1 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (2.0.1)\n",
|
||
"Requirement already satisfied: sng4onnx==2.0.1 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (2.0.1)\n",
|
||
"Requirement already satisfied: psutil==5.9.5 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (5.9.5)\n",
|
||
"Requirement already satisfied: protobuf==4.25.5 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (4.25.5)\n",
|
||
"Requirement already satisfied: h5py==3.12.1 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (3.12.1)\n",
|
||
"Requirement already satisfied: ml-dtypes==0.5.1 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (0.5.1)\n",
|
||
"Requirement already satisfied: flatbuffers==25.12.19 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (25.12.19)\n",
|
||
"Requirement already satisfied: tqdm==4.67.1 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (4.67.1)\n",
|
||
"Requirement already satisfied: pytest==9.0.2 in /usr/local/lib/python3.12/dist-packages (from onnx2tf) (9.0.2)\n",
|
||
"Requirement already satisfied: backports.strenum in /usr/local/lib/python3.12/dist-packages (from ai-edge-litert==2.1.2->onnx2tf) (1.2.8)\n",
|
||
"Requirement already satisfied: typing-extensions in /usr/local/lib/python3.12/dist-packages (from ai-edge-litert==2.1.2->onnx2tf) (4.15.0)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.24.3->onnx2tf) (26.2)\n",
|
||
"Requirement already satisfied: sympy in /usr/local/lib/python3.12/dist-packages (from onnxruntime==1.24.3->onnx2tf) (1.13.1)\n",
|
||
"Requirement already satisfied: onnx_ir<2,>=0.1.15 in /usr/local/lib/python3.12/dist-packages (from onnxscript==0.6.2->onnx2tf) (0.2.1)\n",
|
||
"Requirement already satisfied: rich in /usr/local/lib/python3.12/dist-packages (from onnxsim-prebuilt==0.4.39.post2->onnx2tf) (13.9.4)\n",
|
||
"Requirement already satisfied: iniconfig>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from pytest==9.0.2->onnx2tf) (2.3.0)\n",
|
||
"Requirement already satisfied: pluggy<2,>=1.5 in /usr/local/lib/python3.12/dist-packages (from pytest==9.0.2->onnx2tf) (1.6.0)\n",
|
||
"Requirement already satisfied: pygments>=2.7.2 in /usr/local/lib/python3.12/dist-packages (from pytest==9.0.2->onnx2tf) (2.20.0)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy->onnxruntime==1.24.3->onnx2tf) (1.3.0)\n",
|
||
"Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.12/dist-packages (from rich->onnxsim-prebuilt==0.4.39.post2->onnx2tf) (4.2.0)\n",
|
||
"Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.12/dist-packages (from markdown-it-py>=2.2.0->rich->onnxsim-prebuilt==0.4.39.post2->onnx2tf) (0.1.2)\n",
|
||
"Using cached ai_edge_litert-2.1.2-cp312-cp312-manylinux_2_27_x86_64.whl (16.3 MB)\n",
|
||
"Using cached onnx-1.20.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.5 MB)\n",
|
||
"Using cached onnxruntime-1.24.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (17.2 MB)\n",
|
||
"Installing collected packages: ai-edge-litert, onnxruntime, onnx\n",
|
||
" Attempting uninstall: ai-edge-litert\n",
|
||
" Found existing installation: ai-edge-litert 1.4.0\n",
|
||
" Uninstalling ai-edge-litert-1.4.0:\n",
|
||
" Successfully uninstalled ai-edge-litert-1.4.0\n",
|
||
" Attempting uninstall: onnxruntime\n",
|
||
" Found existing installation: onnxruntime 1.22.1\n",
|
||
" Uninstalling onnxruntime-1.22.1:\n",
|
||
" Successfully uninstalled onnxruntime-1.22.1\n",
|
||
" Attempting uninstall: onnx\n",
|
||
" Found existing installation: onnx 1.19.1\n",
|
||
" Uninstalling onnx-1.19.1:\n",
|
||
" Successfully uninstalled onnx-1.19.1\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",
|
||
"openwakeword 0.6.0 requires speexdsp-ns<1,>=0.1.2; platform_system == \"Linux\", which is not installed.\u001b[0m\u001b[31m\n",
|
||
"\u001b[0mSuccessfully installed ai-edge-litert-2.1.2 onnx-1.20.1 onnxruntime-1.24.3\n",
|
||
"Collecting onnx==1.19.1\n",
|
||
" Using cached onnx-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (7.0 kB)\n",
|
||
"Requirement already satisfied: numpy>=1.22 in /usr/local/lib/python3.12/dist-packages (from onnx==1.19.1) (1.26.4)\n",
|
||
"Requirement already satisfied: protobuf>=4.25.1 in /usr/local/lib/python3.12/dist-packages (from onnx==1.19.1) (4.25.5)\n",
|
||
"Requirement already satisfied: typing_extensions>=4.7.1 in /usr/local/lib/python3.12/dist-packages (from onnx==1.19.1) (4.15.0)\n",
|
||
"Requirement already satisfied: ml_dtypes>=0.5.0 in /usr/local/lib/python3.12/dist-packages (from onnx==1.19.1) (0.5.1)\n",
|
||
"Using cached onnx-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (18.2 MB)\n",
|
||
"Installing collected packages: onnx\n",
|
||
" Attempting uninstall: onnx\n",
|
||
" Found existing installation: onnx 1.20.1\n",
|
||
" Uninstalling onnx-1.20.1:\n",
|
||
" Successfully uninstalled onnx-1.20.1\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",
|
||
"onnx2tf 2.4.0 requires onnx==1.20.1, but you have onnx 1.19.1 which is incompatible.\u001b[0m\u001b[31m\n",
|
||
"\u001b[0mSuccessfully installed onnx-1.19.1\n",
|
||
"Requirement already satisfied: onnx_graphsurgeon in /usr/local/lib/python3.12/dist-packages (0.6.1)\n",
|
||
"Requirement already satisfied: ml-dtypes in /usr/local/lib/python3.12/dist-packages (from onnx_graphsurgeon) (0.5.1)\n",
|
||
"Requirement already satisfied: numpy in /usr/local/lib/python3.12/dist-packages (from onnx_graphsurgeon) (1.26.4)\n",
|
||
"Requirement already satisfied: onnx>=1.14.0 in /usr/local/lib/python3.12/dist-packages (from onnx_graphsurgeon) (1.19.1)\n",
|
||
"Requirement already satisfied: protobuf>=4.25.1 in /usr/local/lib/python3.12/dist-packages (from onnx>=1.14.0->onnx_graphsurgeon) (4.25.5)\n",
|
||
"Requirement already satisfied: typing_extensions>=4.7.1 in /usr/local/lib/python3.12/dist-packages (from onnx>=1.14.0->onnx_graphsurgeon) (4.15.0)\n",
|
||
"Requirement already satisfied: sng4onnx in /usr/local/lib/python3.12/dist-packages (2.0.1)\n",
|
||
"Requirement already satisfied: pronouncing==0.2.0 in /usr/local/lib/python3.12/dist-packages (0.2.0)\n",
|
||
"Requirement already satisfied: cmudict>=0.4.0 in /usr/local/lib/python3.12/dist-packages (from pronouncing==0.2.0) (1.1.3)\n",
|
||
"Requirement already satisfied: importlib-metadata>=5 in /usr/local/lib/python3.12/dist-packages (from cmudict>=0.4.0->pronouncing==0.2.0) (8.7.1)\n",
|
||
"Requirement already satisfied: importlib-resources>=5 in /usr/local/lib/python3.12/dist-packages (from cmudict>=0.4.0->pronouncing==0.2.0) (7.1.0)\n",
|
||
"Requirement already satisfied: zipp>=3.20 in /usr/local/lib/python3.12/dist-packages (from importlib-metadata>=5->cmudict>=0.4.0->pronouncing==0.2.0) (4.1.0)\n",
|
||
"Requirement already satisfied: datasets==2.14.6 in /usr/local/lib/python3.12/dist-packages (2.14.6)\n",
|
||
"Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (1.26.4)\n",
|
||
"Requirement already satisfied: pyarrow>=8.0.0 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (18.1.0)\n",
|
||
"Requirement already satisfied: dill<0.3.8,>=0.3.0 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (0.3.7)\n",
|
||
"Requirement already satisfied: pandas in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (2.2.2)\n",
|
||
"Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (2.32.4)\n",
|
||
"Requirement already satisfied: tqdm>=4.62.1 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (4.67.1)\n",
|
||
"Requirement already satisfied: xxhash in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (3.7.0)\n",
|
||
"Requirement already satisfied: multiprocess in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (0.70.15)\n",
|
||
"Requirement already satisfied: fsspec<=2023.10.0,>=2023.1.0 in /usr/local/lib/python3.12/dist-packages (from fsspec[http]<=2023.10.0,>=2023.1.0->datasets==2.14.6) (2023.10.0)\n",
|
||
"Requirement already satisfied: aiohttp in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (3.13.5)\n",
|
||
"Requirement already satisfied: huggingface-hub<1.0.0,>=0.14.0 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (0.36.2)\n",
|
||
"Requirement already satisfied: packaging in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (26.2)\n",
|
||
"Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.12/dist-packages (from datasets==2.14.6) (6.0.3)\n",
|
||
"Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (2.6.2)\n",
|
||
"Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (1.4.0)\n",
|
||
"Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (26.1.0)\n",
|
||
"Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (1.8.0)\n",
|
||
"Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (6.7.1)\n",
|
||
"Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (0.5.2)\n",
|
||
"Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.12/dist-packages (from aiohttp->datasets==2.14.6) (1.24.2)\n",
|
||
"Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<1.0.0,>=0.14.0->datasets==2.14.6) (3.29.0)\n",
|
||
"Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<1.0.0,>=0.14.0->datasets==2.14.6) (1.5.0)\n",
|
||
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.12/dist-packages (from huggingface-hub<1.0.0,>=0.14.0->datasets==2.14.6) (4.15.0)\n",
|
||
"Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->datasets==2.14.6) (3.4.7)\n",
|
||
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->datasets==2.14.6) (3.15)\n",
|
||
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->datasets==2.14.6) (2.5.0)\n",
|
||
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.12/dist-packages (from requests>=2.19.0->datasets==2.14.6) (2026.5.20)\n",
|
||
"Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.12/dist-packages (from pandas->datasets==2.14.6) (2.9.0.post0)\n",
|
||
"Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.12/dist-packages (from pandas->datasets==2.14.6) (2025.2)\n",
|
||
"Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas->datasets==2.14.6) (2026.2)\n",
|
||
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.12/dist-packages (from python-dateutil>=2.8.2->pandas->datasets==2.14.6) (1.17.0)\n",
|
||
"Requirement already satisfied: deep-phonemizer==0.0.19 in /usr/local/lib/python3.12/dist-packages (0.0.19)\n",
|
||
"Requirement already satisfied: torch>=1.2.0 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (2.5.0+cu121)\n",
|
||
"Requirement already satisfied: tqdm>=4.38.0 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (4.67.1)\n",
|
||
"Requirement already satisfied: PyYAML>=5.1 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (6.0.3)\n",
|
||
"Requirement already satisfied: tensorboard in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (2.20.0)\n",
|
||
"Requirement already satisfied: certifi>=2022.12.7 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (2026.5.20)\n",
|
||
"Requirement already satisfied: wheel>=0.38.0 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (0.47.0)\n",
|
||
"Requirement already satisfied: setuptools>=65.5.1 in /usr/local/lib/python3.12/dist-packages (from deep-phonemizer==0.0.19) (75.2.0)\n",
|
||
"Requirement already satisfied: filelock in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (3.29.0)\n",
|
||
"Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (4.15.0)\n",
|
||
"Requirement already satisfied: networkx in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (3.6.1)\n",
|
||
"Requirement already satisfied: jinja2 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (3.1.6)\n",
|
||
"Requirement already satisfied: fsspec in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (2023.10.0)\n",
|
||
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.105)\n",
|
||
"Requirement already satisfied: nvidia-cudnn-cu12==9.1.0.70 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (9.1.0.70)\n",
|
||
"Requirement already satisfied: nvidia-cublas-cu12==12.1.3.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.3.1)\n",
|
||
"Requirement already satisfied: nvidia-cufft-cu12==11.0.2.54 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (11.0.2.54)\n",
|
||
"Requirement already satisfied: nvidia-curand-cu12==10.3.2.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (10.3.2.106)\n",
|
||
"Requirement already satisfied: nvidia-cusolver-cu12==11.4.5.107 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (11.4.5.107)\n",
|
||
"Requirement already satisfied: nvidia-cusparse-cu12==12.1.0.106 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.0.106)\n",
|
||
"Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (2.21.5)\n",
|
||
"Requirement already satisfied: nvidia-nvtx-cu12==12.1.105 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (12.1.105)\n",
|
||
"Requirement already satisfied: triton==3.1.0 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (3.1.0)\n",
|
||
"Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.12/dist-packages (from torch>=1.2.0->deep-phonemizer==0.0.19) (1.13.1)\n",
|
||
"Requirement already satisfied: nvidia-nvjitlink-cu12 in /usr/local/lib/python3.12/dist-packages (from nvidia-cusolver-cu12==11.4.5.107->torch>=1.2.0->deep-phonemizer==0.0.19) (12.9.86)\n",
|
||
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.12/dist-packages (from sympy==1.13.1->torch>=1.2.0->deep-phonemizer==0.0.19) (1.3.0)\n",
|
||
"Requirement already satisfied: packaging>=24.0 in /usr/local/lib/python3.12/dist-packages (from wheel>=0.38.0->deep-phonemizer==0.0.19) (26.2)\n",
|
||
"Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (1.4.0)\n",
|
||
"Requirement already satisfied: grpcio>=1.48.2 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (1.80.0)\n",
|
||
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (3.10.2)\n",
|
||
"Requirement already satisfied: numpy>=1.12.0 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (1.26.4)\n",
|
||
"Requirement already satisfied: pillow in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (11.3.0)\n",
|
||
"Requirement already satisfied: protobuf!=4.24.0,>=3.19.6 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (4.25.5)\n",
|
||
"Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (0.7.2)\n",
|
||
"Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from tensorboard->deep-phonemizer==0.0.19) (3.1.8)\n",
|
||
"Requirement already satisfied: markupsafe>=2.1.1 in /usr/local/lib/python3.12/dist-packages (from werkzeug>=1.0.1->tensorboard->deep-phonemizer==0.0.19) (3.0.3)\n",
|
||
"--2026-06-02 11:43:26-- https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/embedding_model.onnx\n",
|
||
"Resolving github.com (github.com)... 140.82.114.3\n",
|
||
"Connecting to github.com (github.com)|140.82.114.3|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://release-assets.githubusercontent.com/github-production-release-asset/497407399/0233db07-b8db-4fc3-b026-b75d77fd7ae6?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A32%3A35Z&rscd=attachment%3B+filename%3Dembedding_model.onnx&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A31%3A36Z&ske=2026-06-02T12%3A32%3A35Z&sks=b&skv=2018-11-09&sig=Vf%2BnJ571pbzyURFyqco4q%2BmSJrfu8jhVX7kGpTIo4x0%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNiwibmJmIjoxNzgwNDAwNjA2LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.COCSZ6vlsvQNyO_m45EcB_qmXOMXztAfHzayE9D4cQI&response-content-disposition=attachment%3B%20filename%3Dembedding_model.onnx&response-content-type=application%2Foctet-stream [following]\n",
|
||
"--2026-06-02 11:43:26-- https://release-assets.githubusercontent.com/github-production-release-asset/497407399/0233db07-b8db-4fc3-b026-b75d77fd7ae6?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A32%3A35Z&rscd=attachment%3B+filename%3Dembedding_model.onnx&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A31%3A36Z&ske=2026-06-02T12%3A32%3A35Z&sks=b&skv=2018-11-09&sig=Vf%2BnJ571pbzyURFyqco4q%2BmSJrfu8jhVX7kGpTIo4x0%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNiwibmJmIjoxNzgwNDAwNjA2LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.COCSZ6vlsvQNyO_m45EcB_qmXOMXztAfHzayE9D4cQI&response-content-disposition=attachment%3B%20filename%3Dembedding_model.onnx&response-content-type=application%2Foctet-stream\n",
|
||
"Resolving release-assets.githubusercontent.com (release-assets.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n",
|
||
"Connecting to release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.108.133|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 1326578 (1.3M) [application/octet-stream]\n",
|
||
"Saving to: ‘./openwakeword/openwakeword/resources/models/embedding_model.onnx’\n",
|
||
"\n",
|
||
"./openwakeword/open 100%[===================>] 1.26M --.-KB/s in 0.05s \n",
|
||
"\n",
|
||
"2026-06-02 11:43:26 (23.3 MB/s) - ‘./openwakeword/openwakeword/resources/models/embedding_model.onnx’ saved [1326578/1326578]\n",
|
||
"\n",
|
||
"--2026-06-02 11:43:26-- https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/embedding_model.tflite\n",
|
||
"Resolving github.com (github.com)... 140.82.113.4\n",
|
||
"Connecting to github.com (github.com)|140.82.113.4|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://release-assets.githubusercontent.com/github-production-release-asset/497407399/4bfa8f05-dd30-45f6-b47c-c55548bb5ffc?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A32%3A09Z&rscd=attachment%3B+filename%3Dembedding_model.tflite&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A32%3A06Z&ske=2026-06-02T12%3A32%3A09Z&sks=b&skv=2018-11-09&sig=aynNR4mmOWtJmXmY8hk1msqZ%2FgIqFw5j46FhiLk0iJg%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dembedding_model.tflite&response-content-type=application%2Foctet-stream [following]\n",
|
||
"--2026-06-02 11:43:27-- https://release-assets.githubusercontent.com/github-production-release-asset/497407399/4bfa8f05-dd30-45f6-b47c-c55548bb5ffc?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A32%3A09Z&rscd=attachment%3B+filename%3Dembedding_model.tflite&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A32%3A06Z&ske=2026-06-02T12%3A32%3A09Z&sks=b&skv=2018-11-09&sig=aynNR4mmOWtJmXmY8hk1msqZ%2FgIqFw5j46FhiLk0iJg%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dembedding_model.tflite&response-content-type=application%2Foctet-stream\n",
|
||
"Resolving release-assets.githubusercontent.com (release-assets.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...\n",
|
||
"Connecting to release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.108.133|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 1330312 (1.3M) [application/octet-stream]\n",
|
||
"Saving to: ‘./openwakeword/openwakeword/resources/models/embedding_model.tflite’\n",
|
||
"\n",
|
||
"./openwakeword/open 100%[===================>] 1.27M --.-KB/s in 0.05s \n",
|
||
"\n",
|
||
"2026-06-02 11:43:27 (24.1 MB/s) - ‘./openwakeword/openwakeword/resources/models/embedding_model.tflite’ saved [1330312/1330312]\n",
|
||
"\n",
|
||
"--2026-06-02 11:43:27-- https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/melspectrogram.onnx\n",
|
||
"Resolving github.com (github.com)... 140.82.114.3\n",
|
||
"Connecting to github.com (github.com)|140.82.114.3|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://release-assets.githubusercontent.com/github-production-release-asset/497407399/6b613c12-b693-4220-82d5-01be396893d9?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A29%3A31Z&rscd=attachment%3B+filename%3Dmelspectrogram.onnx&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A28%3A57Z&ske=2026-06-02T12%3A29%3A31Z&sks=b&skv=2018-11-09&sig=WQTUn%2F0C5exAFRGvWwMKASgPtgDg7PdSfczfYb7R8Rg%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dmelspectrogram.onnx&response-content-type=application%2Foctet-stream [following]\n",
|
||
"--2026-06-02 11:43:27-- https://release-assets.githubusercontent.com/github-production-release-asset/497407399/6b613c12-b693-4220-82d5-01be396893d9?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A29%3A31Z&rscd=attachment%3B+filename%3Dmelspectrogram.onnx&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A28%3A57Z&ske=2026-06-02T12%3A29%3A31Z&sks=b&skv=2018-11-09&sig=WQTUn%2F0C5exAFRGvWwMKASgPtgDg7PdSfczfYb7R8Rg%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dmelspectrogram.onnx&response-content-type=application%2Foctet-stream\n",
|
||
"Resolving release-assets.githubusercontent.com (release-assets.githubusercontent.com)... 185.199.108.133, 185.199.110.133, 185.199.109.133, ...\n",
|
||
"Connecting to release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.108.133|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 1087958 (1.0M) [application/octet-stream]\n",
|
||
"Saving to: ‘./openwakeword/openwakeword/resources/models/melspectrogram.onnx’\n",
|
||
"\n",
|
||
"./openwakeword/open 100%[===================>] 1.04M --.-KB/s in 0.05s \n",
|
||
"\n",
|
||
"2026-06-02 11:43:27 (21.2 MB/s) - ‘./openwakeword/openwakeword/resources/models/melspectrogram.onnx’ saved [1087958/1087958]\n",
|
||
"\n",
|
||
"--2026-06-02 11:43:27-- https://github.com/dscripka/openWakeWord/releases/download/v0.5.1/melspectrogram.tflite\n",
|
||
"Resolving github.com (github.com)... 140.82.113.3\n",
|
||
"Connecting to github.com (github.com)|140.82.113.3|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://release-assets.githubusercontent.com/github-production-release-asset/497407399/14a5e610-f7fa-4157-ae44-fdaabf875683?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A30%3A26Z&rscd=attachment%3B+filename%3Dmelspectrogram.tflite&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A29%3A42Z&ske=2026-06-02T12%3A30%3A26Z&sks=b&skv=2018-11-09&sig=gqBN9ASeBjjppUkX00siqwnmvd1fVa%2BXBrEIq4%2BmHJI%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dmelspectrogram.tflite&response-content-type=application%2Foctet-stream [following]\n",
|
||
"--2026-06-02 11:43:27-- https://release-assets.githubusercontent.com/github-production-release-asset/497407399/14a5e610-f7fa-4157-ae44-fdaabf875683?sp=r&sv=2018-11-09&sr=b&spr=https&se=2026-06-02T12%3A30%3A26Z&rscd=attachment%3B+filename%3Dmelspectrogram.tflite&rsct=application%2Foctet-stream&skoid=96c2d410-5711-43a1-aedd-ab1947aa7ab0&sktid=398a6654-997b-47e9-b12b-9515b896b4de&skt=2026-06-02T11%3A29%3A42Z&ske=2026-06-02T12%3A30%3A26Z&sks=b&skv=2018-11-09&sig=gqBN9ASeBjjppUkX00siqwnmvd1fVa%2BXBrEIq4%2BmHJI%3D&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmVsZWFzZS1hc3NldHMuZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwia2V5Ijoia2V5MSIsImV4cCI6MTc4MDQwMDkwNywibmJmIjoxNzgwNDAwNjA3LCJwYXRoIjoicmVsZWFzZWFzc2V0cHJvZHVjdGlvbi5ibG9iLmNvcmUud2luZG93cy5uZXQifQ.e4d0osgK6nomrSXwSZYQrE7V6lQwRMMMu72YH85P3Is&response-content-disposition=attachment%3B%20filename%3Dmelspectrogram.tflite&response-content-type=application%2Foctet-stream\n",
|
||
"Resolving release-assets.githubusercontent.com (release-assets.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.110.133, ...\n",
|
||
"Connecting to release-assets.githubusercontent.com (release-assets.githubusercontent.com)|185.199.109.133|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 1092516 (1.0M) [application/octet-stream]\n",
|
||
"Saving to: ‘./openwakeword/openwakeword/resources/models/melspectrogram.tflite’\n",
|
||
"\n",
|
||
"./openwakeword/open 100%[===================>] 1.04M --.-KB/s in 0.05s \n",
|
||
"\n",
|
||
"2026-06-02 11:43:28 (22.4 MB/s) - ‘./openwakeword/openwakeword/resources/models/melspectrogram.tflite’ saved [1092516/1092516]\n",
|
||
"\n",
|
||
"--2026-06-02 11:43:29-- https://huggingface.co/datasets/davidscripka/openwakeword_features/resolve/main/openwakeword_features_ACAV100M_2000_hrs_16bit.npy\n",
|
||
"Resolving huggingface.co (huggingface.co)... 3.170.185.35, 3.170.185.25, 3.170.185.14, ...\n",
|
||
"Connecting to huggingface.co (huggingface.co)|3.170.185.35|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://cas-bridge.xethub.hf.co/xet-bridge-us/64f3a0b6918ffcc15af6923c/7e1cade4c3fda6a5081158383c8d43c4a3e1e42555150b596b373efddf9b5194?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cas%2F20260602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260602T114329Z&X-Amz-Expires=3600&X-Amz-Signature=53f757663248703c6e32acd052fb6a1cac60d4e66aa80eaeddb3e2f850c6e81c&X-Amz-SignedHeaders=host&X-Xet-Cas-Uid=public&response-content-disposition=inline%3B+filename*%3DUTF-8%27%27openwakeword_features_ACAV100M_2000_hrs_16bit.npy%3B+filename%3D%22openwakeword_features_ACAV100M_2000_hrs_16bit.npy%22%3B&x-amz-checksum-mode=ENABLED&x-id=GetObject&Expires=1780404209&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc4MDQwNDIwOX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2FzLWJyaWRnZS54ZXRodWIuaGYuY28veGV0LWJyaWRnZS11cy82NGYzYTBiNjkxOGZmY2MxNWFmNjkyM2MvN2UxY2FkZTRjM2ZkYTZhNTA4MTE1ODM4M2M4ZDQzYzRhM2UxZTQyNTU1MTUwYjU5NmIzNzNlZmRkZjliNTE5NCoifV19&Signature=gc%7E5x3RtBNpTEa75lLO6aZsOSUp0tVRgufIR0mQ-1SIt7F0CjPlMKLo-9jhGI9KwHM4yO27d1wGGoan%7EFSp4mR7OSL8deKuxZqywbzdE%7EkTK5IA7XefzMtbSm-FYrgKVZrZLHqu49dm-LrGf1OudVPv7IWDEyAd-lE56BJvIsvtFVZRDAkixLZ9F6OFxkJ8rrNXsGqt8HVPtpoF2OvjbzGlgW%7EF55wyMX-E4101tsXT9psIJFG-vxqvOA6XiJ7bsenuePzVMfpcI2xUSZMpiaRnTqk455UOaSK4xgO2oJcLDCut9etYWvTf6Y92vNIAg7qXFjmjDxir8PXlemK-UWQ__&Key-Pair-Id=K2L8F4GPSG1IFC [following]\n",
|
||
"--2026-06-02 11:43:29-- https://cas-bridge.xethub.hf.co/xet-bridge-us/64f3a0b6918ffcc15af6923c/7e1cade4c3fda6a5081158383c8d43c4a3e1e42555150b596b373efddf9b5194?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cas%2F20260602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260602T114329Z&X-Amz-Expires=3600&X-Amz-Signature=53f757663248703c6e32acd052fb6a1cac60d4e66aa80eaeddb3e2f850c6e81c&X-Amz-SignedHeaders=host&X-Xet-Cas-Uid=public&response-content-disposition=inline%3B+filename*%3DUTF-8%27%27openwakeword_features_ACAV100M_2000_hrs_16bit.npy%3B+filename%3D%22openwakeword_features_ACAV100M_2000_hrs_16bit.npy%22%3B&x-amz-checksum-mode=ENABLED&x-id=GetObject&Expires=1780404209&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc4MDQwNDIwOX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2FzLWJyaWRnZS54ZXRodWIuaGYuY28veGV0LWJyaWRnZS11cy82NGYzYTBiNjkxOGZmY2MxNWFmNjkyM2MvN2UxY2FkZTRjM2ZkYTZhNTA4MTE1ODM4M2M4ZDQzYzRhM2UxZTQyNTU1MTUwYjU5NmIzNzNlZmRkZjliNTE5NCoifV19&Signature=gc%7E5x3RtBNpTEa75lLO6aZsOSUp0tVRgufIR0mQ-1SIt7F0CjPlMKLo-9jhGI9KwHM4yO27d1wGGoan%7EFSp4mR7OSL8deKuxZqywbzdE%7EkTK5IA7XefzMtbSm-FYrgKVZrZLHqu49dm-LrGf1OudVPv7IWDEyAd-lE56BJvIsvtFVZRDAkixLZ9F6OFxkJ8rrNXsGqt8HVPtpoF2OvjbzGlgW%7EF55wyMX-E4101tsXT9psIJFG-vxqvOA6XiJ7bsenuePzVMfpcI2xUSZMpiaRnTqk455UOaSK4xgO2oJcLDCut9etYWvTf6Y92vNIAg7qXFjmjDxir8PXlemK-UWQ__&Key-Pair-Id=K2L8F4GPSG1IFC\n",
|
||
"Resolving cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)... 18.160.213.37, 18.160.213.34, 18.160.213.16, ...\n",
|
||
"Connecting to cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)|18.160.213.37|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 17280000128 (16G)\n",
|
||
"Saving to: ‘openwakeword_features_ACAV100M_2000_hrs_16bit.npy’\n",
|
||
"\n",
|
||
"openwakeword_featur 100%[===================>] 16.09G 53.3MB/s in 2m 12s \n",
|
||
"\n",
|
||
"2026-06-02 11:45:41 (125 MB/s) - ‘openwakeword_features_ACAV100M_2000_hrs_16bit.npy’ saved [17280000128/17280000128]\n",
|
||
"\n",
|
||
"--2026-06-02 11:45:41-- https://huggingface.co/datasets/davidscripka/openwakeword_features/resolve/main/validation_set_features.npy\n",
|
||
"Resolving huggingface.co (huggingface.co)... 3.170.185.33, 3.170.185.14, 3.170.185.25, ...\n",
|
||
"Connecting to huggingface.co (huggingface.co)|3.170.185.33|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: https://cas-bridge.xethub.hf.co/xet-bridge-us/64f3a0b6918ffcc15af6923c/d06b67aa405c24aab66854c32fe850f58387e668e24d58f9c1885d81d86c94cd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cas%2F20260602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260602T114541Z&X-Amz-Expires=3600&X-Amz-Signature=87b5038ae866e217c38957dcf4ac2f25169d7031622adb1f46fcbba4a12e1736&X-Amz-SignedHeaders=host&X-Xet-Cas-Uid=public&response-content-disposition=inline%3B+filename*%3DUTF-8%27%27validation_set_features.npy%3B+filename%3D%22validation_set_features.npy%22%3B&x-amz-checksum-mode=ENABLED&x-id=GetObject&Expires=1780404341&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc4MDQwNDM0MX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2FzLWJyaWRnZS54ZXRodWIuaGYuY28veGV0LWJyaWRnZS11cy82NGYzYTBiNjkxOGZmY2MxNWFmNjkyM2MvZDA2YjY3YWE0MDVjMjRhYWI2Njg1NGMzMmZlODUwZjU4Mzg3ZTY2OGUyNGQ1OGY5YzE4ODVkODFkODZjOTRjZCoifV19&Signature=B4bmn74-VtTYQSVeZo5zFdGGALT6JfWJnnqTypuQ%7El1XFwmRdi%7E-yx1dvigtebSeHQLJ-46ttSgogE3Uxqprdpc0Hllz4CogDr9eUYArJ9VwOSzYnets4Fc-T-15ZVzZXYkbxRuSYyDKsA1fYzd65PM9ekC6KU7Bi5zF-o89RPATa5husI8qBAS5ras9j-gOVO6Yzq92VXUQSwwHL2lOZAzddbUQQ2WM%7EeC1u6ADvB5YqVg3L1sYXDyWWNZgBKFomsDuDF84l0Gfn8khYqB0ZSPjTxw0RPkH6ak903tfuYPttvOuNiOYvouBhFK6chO5k8tYwaqBaAvo0XI0WUlwNw__&Key-Pair-Id=K2L8F4GPSG1IFC [following]\n",
|
||
"--2026-06-02 11:45:41-- https://cas-bridge.xethub.hf.co/xet-bridge-us/64f3a0b6918ffcc15af6923c/d06b67aa405c24aab66854c32fe850f58387e668e24d58f9c1885d81d86c94cd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cas%2F20260602%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260602T114541Z&X-Amz-Expires=3600&X-Amz-Signature=87b5038ae866e217c38957dcf4ac2f25169d7031622adb1f46fcbba4a12e1736&X-Amz-SignedHeaders=host&X-Xet-Cas-Uid=public&response-content-disposition=inline%3B+filename*%3DUTF-8%27%27validation_set_features.npy%3B+filename%3D%22validation_set_features.npy%22%3B&x-amz-checksum-mode=ENABLED&x-id=GetObject&Expires=1780404341&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc4MDQwNDM0MX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2FzLWJyaWRnZS54ZXRodWIuaGYuY28veGV0LWJyaWRnZS11cy82NGYzYTBiNjkxOGZmY2MxNWFmNjkyM2MvZDA2YjY3YWE0MDVjMjRhYWI2Njg1NGMzMmZlODUwZjU4Mzg3ZTY2OGUyNGQ1OGY5YzE4ODVkODFkODZjOTRjZCoifV19&Signature=B4bmn74-VtTYQSVeZo5zFdGGALT6JfWJnnqTypuQ%7El1XFwmRdi%7E-yx1dvigtebSeHQLJ-46ttSgogE3Uxqprdpc0Hllz4CogDr9eUYArJ9VwOSzYnets4Fc-T-15ZVzZXYkbxRuSYyDKsA1fYzd65PM9ekC6KU7Bi5zF-o89RPATa5husI8qBAS5ras9j-gOVO6Yzq92VXUQSwwHL2lOZAzddbUQQ2WM%7EeC1u6ADvB5YqVg3L1sYXDyWWNZgBKFomsDuDF84l0Gfn8khYqB0ZSPjTxw0RPkH6ak903tfuYPttvOuNiOYvouBhFK6chO5k8tYwaqBaAvo0XI0WUlwNw__&Key-Pair-Id=K2L8F4GPSG1IFC\n",
|
||
"Resolving cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)... 18.160.213.84, 18.160.213.34, 18.160.213.16, ...\n",
|
||
"Connecting to cas-bridge.xethub.hf.co (cas-bridge.xethub.hf.co)|18.160.213.84|:443... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 184836608 (176M)\n",
|
||
"Saving to: ‘validation_set_features.npy’\n",
|
||
"\n",
|
||
"validation_set_feat 100%[===================>] 176.27M 31.5MB/s in 4.9s \n",
|
||
"\n",
|
||
"2026-06-02 11:45:46 (36.0 MB/s) - ‘validation_set_features.npy’ saved [184836608/184836608]\n",
|
||
"\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"# @title { display-mode: \"form\" }\n",
|
||
"# @markdown # 3. Train the Model\n",
|
||
"# @markdown Now that you have verified your target wake word and downloaded the data,\n",
|
||
"# @markdown the last step is to adjust the training paramaters (or keep\n",
|
||
"# @markdown the defaults below) and start the training!\n",
|
||
"\n",
|
||
"# @markdown Each paramater controls a different aspect of training:\n",
|
||
"# @markdown - `number_of_examples` controls how many examples of your wakeword\n",
|
||
"# @markdown are generated. The default (1,000) usually produces a good model,\n",
|
||
"# @markdown but between 30,000 and 50,000 is often the best.\n",
|
||
"\n",
|
||
"# @markdown - `number_of_training_steps` controls how long to train the model.\n",
|
||
"# @markdown Similar to the number of examples, the default (10,000) usually works well\n",
|
||
"# @markdown but training longer usually helps.\n",
|
||
"\n",
|
||
"# @markdown - `false_activation_penalty` controls how strongly false activations\n",
|
||
"# @markdown are penalized during the training process. Higher values can make the model\n",
|
||
"# @markdown much less likely to activate when it shouldn't, but may also cause it\n",
|
||
"# @markdown to not activate when the wake word isn't spoken clearly and there is\n",
|
||
"# @markdown background noise.\n",
|
||
"\n",
|
||
"# @markdown With the default values shown below,\n",
|
||
"# @markdown this takes about 30 - 60 minutes total on the normal CPU Colab runtime.\n",
|
||
"# @markdown If you want to train on more examples or train for longer,\n",
|
||
"# @markdown try changing the runtime type to a GPU to significantly speedup\n",
|
||
"# @markdown the example generating and model training.\n",
|
||
"\n",
|
||
"# @markdown When the model finishes training, you can navigate to the `my_custom_model` folder\n",
|
||
"# @markdown in the file browser on the left (click on the folder icon), and download\n",
|
||
"# @markdown the [your target wake word].onnx or <your target wake word>.tflite files.\n",
|
||
"# @markdown You can then use these as you would any other openWakeWord model!\n",
|
||
"\n",
|
||
"# Load default YAML config file for training\n",
|
||
"import yaml\n",
|
||
"import os # Import os for path manipulation\n",
|
||
"import shutil # Import shutil for file operations\n",
|
||
"\n",
|
||
"config = yaml.load(open(\"openwakeword/examples/custom_model.yml\", 'r').read(), yaml.Loader)\n",
|
||
"\n",
|
||
"# Modify values in the config and save a new version\n",
|
||
"number_of_examples = 5000 # @param {type:\"slider\", min:100, max:50000, step:50}\n",
|
||
"number_of_training_steps = 12500 # @param {type:\"slider\", min:0, max:50000, step:100}\n",
|
||
"false_activation_penalty = 1500 # @param {type:\"slider\", min:100, max:5000, step:50}\n",
|
||
"config[\"target_phrase\"] = [target_word]\n",
|
||
"config[\"model_name\"] = config[\"target_phrase\"][0].replace(\" \", \"_\")\n",
|
||
"config[\"n_samples\"] = number_of_examples\n",
|
||
"config[\"n_samples_val\"] = max(500, number_of_examples//10)\n",
|
||
"config[\"steps\"] = number_of_training_steps\n",
|
||
"config[\"target_accuracy\"] = 0.5\n",
|
||
"config[\"target_recall\"] = 0.25\n",
|
||
"\n",
|
||
"# Define the final model output directory in Google Drive\n",
|
||
"# This path will contain only the final .onnx and .tflite models\n",
|
||
"final_drive_output_dir = os.path.join(drive_output_dir, config['model_name'])\n",
|
||
"os.makedirs(final_drive_output_dir, exist_ok=True)\n",
|
||
"\n",
|
||
"# Define a local temporary directory for all intermediate training artifacts\n",
|
||
"# This will improve I/O performance during clip generation and training\n",
|
||
"local_intermediate_dir = './openwakeword_training_temp'\n",
|
||
"os.makedirs(local_intermediate_dir, exist_ok=True)\n",
|
||
"\n",
|
||
"config[\"output_dir\"] = local_intermediate_dir # Set training output to the local temporary directory\n",
|
||
"config[\"max_negative_weight\"] = false_activation_penalty\n",
|
||
"\n",
|
||
"config[\"background_paths\"] = ['./fma'] # Removed './audioset_16k' as it was not downloaded\n",
|
||
"config[\"false_positive_validation_data_path\"] = \"validation_set_features.npy\"\n",
|
||
"config[\"feature_data_files\"] = {\"ACAV100M_sample\": \"openwakeword_features_ACAV100M_2000_hrs_16bit.npy\"}\n",
|
||
"\n",
|
||
"with open('my_model.yaml', 'w') as file:\n",
|
||
" documents = yaml.dump(config, file)\n",
|
||
"\n",
|
||
"# Generate clips (outputs to local_intermediate_dir)\n",
|
||
"!{sys.executable} openwakeword/openwakeword/train.py --training_config my_model.yaml --generate_clips\n",
|
||
"\n",
|
||
"# Step 2: Augment the generated clips (outputs to local_intermediate_dir)\n",
|
||
"!{sys.executable} openwakeword/openwakeword/train.py --training_config my_model.yaml --augment_clips\n",
|
||
"\n",
|
||
"# Step 3: Train model (outputs initial ONNX to local_intermediate_dir)\n",
|
||
"!{sys.executable} openwakeword/openwakeword/train.py --training_config my_model.yaml --train_model\n",
|
||
"\n",
|
||
"# Copy the final ONNX model from the local temporary directory to Google Drive\n",
|
||
"local_onnx_model_path = os.path.join(local_intermediate_dir, f\"{config['model_name']}.onnx\")\n",
|
||
"final_drive_onnx_model_path = os.path.join(final_drive_output_dir, f\"{config['model_name']}.onnx\")\n",
|
||
"shutil.copy(local_onnx_model_path, final_drive_onnx_model_path)\n",
|
||
"print(f\"Copied final ONNX model to Google Drive: {final_drive_onnx_model_path}\")\n",
|
||
"\n",
|
||
"# Convert ONNX model to tflite using `onnx2tf` library\n",
|
||
"# This conversion will now operate on the ONNX model in Google Drive and output the TFLite model to Google Drive\n",
|
||
"onnx_model_path_for_conversion = final_drive_onnx_model_path # Use the ONNX model from Drive for conversion\n",
|
||
"drive_tflite_name1 = f\"{final_drive_output_dir}/{config['model_name']}_float32.tflite\"\n",
|
||
"drive_tflite_name2 = f\"{final_drive_output_dir}/{config['model_name']}.tflite\"\n",
|
||
"\n",
|
||
"!onnx2tf -i \"{onnx_model_path_for_conversion}\" -o \"{final_drive_output_dir}\" -kat onnx____Flatten_0\n",
|
||
"!mv \"{drive_tflite_name1}\" \"{drive_tflite_name2}\"\n",
|
||
"\n",
|
||
"print(f\"ONNX model converted to TFLite and saved to: {drive_tflite_name2}\")\n",
|
||
"\n",
|
||
"# Automatically download the trained model files from Google Drive\n",
|
||
"from google.colab import files # Ensure files is imported\n",
|
||
"\n",
|
||
"files.download(final_drive_onnx_model_path)\n",
|
||
"files.download(drive_tflite_name2)"
|
||
],
|
||
"metadata": {
|
||
"id": "qgaKWIY6WlJ1",
|
||
"outputId": "e4ac4985-eb34-42d7-a947-d7a4fdaf155c",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 1000
|
||
}
|
||
},
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/utils/io.py:27: UserWarning: torchaudio._backend.set_audio_backend has been deprecated. With dispatcher enabled, this function is no-op. You can remove the function call.\n",
|
||
" torchaudio.set_audio_backend(\"soundfile\")\n",
|
||
"INFO:root:##################################################\n",
|
||
"Generating positive clips for training\n",
|
||
"##################################################\n",
|
||
"DEBUG:generate_samples:Loading /content/piper-sample-generator/models/en_US-libritts_r-medium.pt\n",
|
||
"/content/piper-sample-generator/generate_samples.py:76: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
|
||
" torch_model = torch.load(model_path)\n",
|
||
"INFO:generate_samples:Successfully loaded the model\n",
|
||
"DEBUG:generate_samples:Batch 1/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 2/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 3/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 4/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 5/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 6/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 7/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 8/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 9/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 10/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 11/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 12/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 13/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 14/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 15/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 16/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 17/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 18/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 19/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 20/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 21/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 22/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 23/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 24/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 25/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 26/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 27/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 28/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 29/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 30/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 31/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 32/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 33/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 34/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 35/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 36/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 37/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 38/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 39/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 40/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 41/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 42/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 43/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 44/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 45/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 46/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 47/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 48/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 49/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 50/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 51/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 52/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 53/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 54/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 55/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 56/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 57/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 58/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 59/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 60/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 61/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 62/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 63/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 64/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 65/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 66/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 67/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 68/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 69/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 70/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 71/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 72/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 73/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 74/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 75/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 76/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 77/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 78/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 79/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 80/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 81/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 82/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 83/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 84/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 85/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 86/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 87/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 88/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 89/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 90/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 91/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 92/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 93/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 94/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 95/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 96/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 97/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 98/99 complete\n",
|
||
"DEBUG:generate_samples:Batch 99/99 complete\n",
|
||
"INFO:generate_samples:Done\n",
|
||
"INFO:root:##################################################\n",
|
||
"Generating positive clips for testing\n",
|
||
"##################################################\n",
|
||
"DEBUG:generate_samples:Loading /content/piper-sample-generator/models/en_US-libritts_r-medium.pt\n",
|
||
"INFO:generate_samples:Successfully loaded the model\n",
|
||
"DEBUG:generate_samples:Batch 1/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 2/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 3/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 4/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 5/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 6/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 7/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 8/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 9/10 complete\n",
|
||
"DEBUG:generate_samples:Batch 10/10 complete\n",
|
||
"INFO:generate_samples:Done\n",
|
||
"INFO:root:##################################################\n",
|
||
"Generating negative clips for training\n",
|
||
"##################################################\n",
|
||
"WARNING:root:Downloading phonemizer model from DeepPhonemizer library...\n",
|
||
"DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): public-asai-dl-models.s3.eu-central-1.amazonaws.com:443\n",
|
||
"DEBUG:urllib3.connectionpool:https://public-asai-dl-models.s3.eu-central-1.amazonaws.com:443 \"GET /DeepPhonemizer/en_us_cmudict_forward.pt HTTP/1.1\" 200 66725366\n",
|
||
"/usr/local/lib/python3.12/dist-packages/dp/model/model.py:306: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
|
||
" checkpoint = torch.load(checkpoint_path, map_location=device)\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch/nn/modules/transformer.py:379: UserWarning: enable_nested_tensor is True, but self.use_nested_tensor is False because encoder_layer.self_attn.batch_first was not True(use batch_first for better inference performance)\n",
|
||
" warnings.warn(\n",
|
||
"DEBUG:dp.phonemizer:Initializing phonemizer with model step 1120000\n",
|
||
"WARNING:root:The word 'hey_viva' was not found in the pronunciation dictionary! Using the DeepPhonemizer library to predict the phonemes.\n",
|
||
"WARNING:root:Phones for 'hey_viva': [HH][EY][V][IY][V][AH]\n",
|
||
"DEBUG:generate_samples:Loading /content/piper-sample-generator/models/en_US-libritts_r-medium.pt\n",
|
||
"INFO:generate_samples:Successfully loaded the model\n",
|
||
"DEBUG:generate_samples:Batch 1/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 2/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 3/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 4/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 5/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 6/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 7/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 8/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 9/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 10/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 11/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 12/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 13/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 14/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 15/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 16/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 17/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 18/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 19/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 20/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 21/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 22/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 23/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 24/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 25/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 26/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 27/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 28/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 29/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 30/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 31/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 32/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 33/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 34/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 35/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 36/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 37/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 38/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 39/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 40/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 41/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 42/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 43/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 44/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 45/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 46/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 47/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 48/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 49/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 50/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 51/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 52/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 53/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 54/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 55/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 56/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 57/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 58/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 59/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 60/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 61/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 62/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 63/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 64/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 65/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 66/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 67/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 68/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 69/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 70/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 71/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 72/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 73/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 74/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 75/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 76/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 77/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 78/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 79/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 80/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 81/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 82/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 83/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 84/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 85/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 86/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 87/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 88/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 89/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 90/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 91/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 92/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 93/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 94/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 95/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 96/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 97/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 98/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 99/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 100/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 101/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 102/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 103/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 104/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 105/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 106/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 107/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 108/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 109/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 110/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 111/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 112/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 113/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 114/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 115/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 116/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 117/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 118/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 119/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 120/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 121/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 122/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 123/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 124/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 125/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 126/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 127/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 128/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 129/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 130/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 131/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 132/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 133/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 134/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 135/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 136/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 137/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 138/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 139/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 140/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 141/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 142/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 143/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 144/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 145/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 146/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 147/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 148/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 149/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 150/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 151/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 152/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 153/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 154/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 155/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 156/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 157/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 158/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 159/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 160/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 161/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 162/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 163/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 164/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 165/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 166/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 167/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 168/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 169/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 170/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 171/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 172/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 173/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 174/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 175/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 176/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 177/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 178/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 179/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 180/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 181/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 182/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 183/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 184/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 185/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 186/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 187/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 188/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 189/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 190/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 191/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 192/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 193/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 194/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 195/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 196/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 197/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 198/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 199/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 200/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 201/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 202/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 203/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 204/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 205/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 206/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 207/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 208/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 209/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 210/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 211/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 212/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 213/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 214/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 215/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 216/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 217/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 218/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 219/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 220/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 221/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 222/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 223/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 224/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 225/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 226/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 227/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 228/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 229/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 230/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 231/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 232/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 233/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 234/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 235/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 236/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 237/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 238/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 239/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 240/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 241/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 242/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 243/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 244/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 245/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 246/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 247/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 248/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 249/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 250/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 251/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 252/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 253/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 254/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 255/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 256/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 257/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 258/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 259/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 260/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 261/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 262/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 263/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 264/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 265/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 266/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 267/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 268/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 269/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 270/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 271/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 272/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 273/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 274/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 275/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 276/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 277/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 278/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 279/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 280/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 281/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 282/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 283/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 284/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 285/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 286/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 287/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 288/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 289/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 290/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 291/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 292/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 293/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 294/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 295/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 296/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 297/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 298/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 299/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 300/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 301/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 302/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 303/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 304/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 305/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 306/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 307/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 308/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 309/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 310/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 311/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 312/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 313/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 314/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 315/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 316/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 317/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 318/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 319/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 320/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 321/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 322/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 323/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 324/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 325/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 326/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 327/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 328/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 329/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 330/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 331/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 332/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 333/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 334/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 335/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 336/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 337/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 338/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 339/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 340/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 341/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 342/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 343/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 344/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 345/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 346/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 347/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 348/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 349/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 350/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 351/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 352/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 353/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 354/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 355/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 356/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 357/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 358/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 359/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 360/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 361/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 362/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 363/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 364/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 365/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 366/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 367/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 368/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 369/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 370/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 371/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 372/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 373/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 374/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 375/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 376/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 377/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 378/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 379/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 380/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 381/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 382/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 383/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 384/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 385/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 386/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 387/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 388/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 389/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 390/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 391/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 392/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 393/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 394/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 395/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 396/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 397/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 398/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 399/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 400/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 401/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 402/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 403/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 404/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 405/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 406/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 407/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 408/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 409/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 410/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 411/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 412/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 413/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 414/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 415/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 416/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 417/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 418/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 419/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 420/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 421/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 422/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 423/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 424/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 425/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 426/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 427/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 428/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 429/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 430/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 431/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 432/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 433/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 434/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 435/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 436/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 437/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 438/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 439/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 440/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 441/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 442/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 443/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 444/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 445/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 446/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 447/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 448/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 449/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 450/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 451/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 452/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 453/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 454/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 455/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 456/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 457/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 458/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 459/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 460/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 461/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 462/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 463/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 464/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 465/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 466/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 467/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 468/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 469/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 470/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 471/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 472/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 473/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 474/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 475/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 476/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 477/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 478/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 479/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 480/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 481/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 482/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 483/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 484/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 485/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 486/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 487/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 488/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 489/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 490/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 491/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 492/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 493/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 494/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 495/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 496/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 497/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 498/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 499/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 500/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 501/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 502/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 503/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 504/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 505/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 506/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 507/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 508/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 509/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 510/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 511/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 512/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 513/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 514/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 515/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 516/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 517/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 518/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 519/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 520/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 521/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 522/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 523/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 524/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 525/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 526/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 527/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 528/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 529/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 530/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 531/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 532/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 533/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 534/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 535/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 536/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 537/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 538/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 539/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 540/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 541/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 542/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 543/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 544/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 545/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 546/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 547/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 548/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 549/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 550/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 551/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 552/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 553/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 554/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 555/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 556/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 557/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 558/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 559/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 560/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 561/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 562/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 563/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 564/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 565/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 566/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 567/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 568/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 569/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 570/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 571/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 572/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 573/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 574/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 575/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 576/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 577/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 578/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 579/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 580/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 581/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 582/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 583/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 584/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 585/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 586/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 587/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 588/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 589/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 590/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 591/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 592/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 593/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 594/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 595/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 596/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 597/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 598/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 599/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 600/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 601/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 602/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 603/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 604/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 605/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 606/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 607/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 608/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 609/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 610/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 611/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 612/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 613/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 614/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 615/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 616/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 617/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 618/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 619/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 620/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 621/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 622/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 623/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 624/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 625/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 626/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 627/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 628/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 629/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 630/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 631/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 632/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 633/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 634/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 635/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 636/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 637/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 638/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 639/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 640/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 641/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 642/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 643/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 644/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 645/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 646/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 647/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 648/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 649/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 650/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 651/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 652/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 653/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 654/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 655/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 656/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 657/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 658/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 659/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 660/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 661/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 662/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 663/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 664/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 665/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 666/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 667/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 668/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 669/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 670/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 671/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 672/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 673/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 674/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 675/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 676/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 677/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 678/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 679/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 680/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 681/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 682/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 683/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 684/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 685/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 686/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 687/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 688/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 689/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 690/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 691/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 692/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 693/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 694/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 695/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 696/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 697/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 698/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 699/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 700/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 701/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 702/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 703/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 704/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 705/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 706/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 707/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 708/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 709/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 710/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 711/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 712/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 713/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 714/714 complete\n",
|
||
"DEBUG:generate_samples:Batch 715/714 complete\n",
|
||
"INFO:generate_samples:Done\n",
|
||
"INFO:root:##################################################\n",
|
||
"Generating negative clips for testing\n",
|
||
"##################################################\n",
|
||
"DEBUG:dp.phonemizer:Initializing phonemizer with model step 1120000\n",
|
||
"WARNING:root:The word 'hey_viva' was not found in the pronunciation dictionary! Using the DeepPhonemizer library to predict the phonemes.\n",
|
||
"WARNING:root:Phones for 'hey_viva': [HH][EY][V][IY][V][AH]\n",
|
||
"DEBUG:generate_samples:Loading /content/piper-sample-generator/models/en_US-libritts_r-medium.pt\n",
|
||
"INFO:generate_samples:Successfully loaded the model\n",
|
||
"DEBUG:generate_samples:Batch 1/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 2/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 3/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 4/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 5/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 6/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 7/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 8/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 9/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 10/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 11/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 12/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 13/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 14/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 15/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 16/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 17/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 18/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 19/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 20/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 21/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 22/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 23/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 24/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 25/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 26/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 27/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 28/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 29/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 30/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 31/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 32/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 33/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 34/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 35/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 36/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 37/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 38/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 39/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 40/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 41/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 42/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 43/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 44/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 45/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 46/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 47/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 48/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 49/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 50/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 51/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 52/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 53/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 54/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 55/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 56/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 57/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 58/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 59/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 60/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 61/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 62/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 63/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 64/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 65/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 66/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 67/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 68/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 69/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 70/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 71/71 complete\n",
|
||
"DEBUG:generate_samples:Batch 72/71 complete\n",
|
||
"INFO:generate_samples:Done\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/utils/io.py:27: UserWarning: torchaudio._backend.set_audio_backend has been deprecated. With dispatcher enabled, this function is no-op. You can remove the function call.\n",
|
||
" torchaudio.set_audio_backend(\"soundfile\")\n",
|
||
"INFO:root:##################################################\n",
|
||
"Computing openwakeword features for generated samples\n",
|
||
"##################################################\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/core/transforms_interface.py:77: FutureWarning: Transforms now expect an `output_type` argument that currently defaults to 'tensor', will default to 'dict' in v0.12, and will be removed in v0.13. Make sure to update your code to something like:\n",
|
||
" >>> augment = PitchShift(..., output_type='dict')\n",
|
||
" >>> augmented_samples = augment(samples).samples\n",
|
||
" warnings.warn(\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/core/transforms_interface.py:77: FutureWarning: Transforms now expect an `output_type` argument that currently defaults to 'tensor', will default to 'dict' in v0.12, and will be removed in v0.13. Make sure to update your code to something like:\n",
|
||
" >>> augment = BandStopFilter(..., output_type='dict')\n",
|
||
" >>> augmented_samples = augment(samples).samples\n",
|
||
" warnings.warn(\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/core/transforms_interface.py:77: FutureWarning: Transforms now expect an `output_type` argument that currently defaults to 'tensor', will default to 'dict' in v0.12, and will be removed in v0.13. Make sure to update your code to something like:\n",
|
||
" >>> augment = AddColoredNoise(..., output_type='dict')\n",
|
||
" >>> augmented_samples = augment(samples).samples\n",
|
||
" warnings.warn(\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/core/transforms_interface.py:77: FutureWarning: Transforms now expect an `output_type` argument that currently defaults to 'tensor', will default to 'dict' in v0.12, and will be removed in v0.13. Make sure to update your code to something like:\n",
|
||
" >>> augment = Gain(..., output_type='dict')\n",
|
||
" >>> augmented_samples = augment(samples).samples\n",
|
||
" warnings.warn(\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/core/composition.py:42: FutureWarning: Transforms now expect an `output_type` argument that currently defaults to 'tensor', will default to 'dict' in v0.12, and will be removed in v0.13. Make sure to update your code to something like:\n",
|
||
" >>> augment = Compose(..., output_type='dict')\n",
|
||
" >>> augmented_samples = augment(samples).samples\n",
|
||
" warnings.warn(\n",
|
||
"/usr/local/lib/python3.12/dist-packages/audiomentations/core/transforms_interface.py:61: UserWarning: Warning: input samples dtype is np.float64. Converting to np.float32\n",
|
||
" warnings.warn(\n",
|
||
"Computing features: 100% 312/312 [08:02<00:00, 1.55s/it]\n",
|
||
"Trimming empty rows: 5it [00:00, 35.43it/s] \n",
|
||
"Computing features: 100% 312/312 [09:04<00:00, 1.74s/it]\n",
|
||
"Trimming empty rows: 5it [00:00, 25.96it/s] \n",
|
||
"Computing features: 100% 31/31 [00:50<00:00, 1.62s/it]\n",
|
||
"Trimming empty rows: 1it [00:00, 62.16it/s]\n",
|
||
"Computing features: 100% 31/31 [00:42<00:00, 1.38s/it]\n",
|
||
"Trimming empty rows: 1it [00:00, 67.15it/s]\n",
|
||
"/usr/local/lib/python3.12/dist-packages/torch_audiomentations/utils/io.py:27: UserWarning: torchaudio._backend.set_audio_backend has been deprecated. With dispatcher enabled, this function is no-op. You can remove the function call.\n",
|
||
" torchaudio.set_audio_backend(\"soundfile\")\n",
|
||
"INFO:root:##################################################\n",
|
||
"Starting training sequence 1...\n",
|
||
"##################################################\n",
|
||
"Training: 100% 12499/12500 [10:04<00:00, 20.67it/s]\n",
|
||
"INFO:root:##################################################\n",
|
||
"Starting training sequence 2...\n",
|
||
"##################################################\n",
|
||
"INFO:root:Increasing weight on negative examples to reduce false positives...\n",
|
||
"Training: 100% 1249/1250.0 [04:04<00:00, 5.12it/s]\n",
|
||
"INFO:root:##################################################\n",
|
||
"Starting training sequence 3...\n",
|
||
"##################################################\n",
|
||
"INFO:root:Increasing weight on negative examples to reduce false positives...\n",
|
||
"Training: 100% 1249/1250.0 [03:46<00:00, 5.51it/s]\n",
|
||
"INFO:root:Merging checkpoints above the 90th percentile into single model...\n",
|
||
"INFO:root:\n",
|
||
"################\n",
|
||
"Final Model Accuracy: 0.871999979019165\n",
|
||
"Final Model Recall: 0.7480000257492065\n",
|
||
"Final Model False Positives per Hour: 0.0\n",
|
||
"################\n",
|
||
"\n",
|
||
"INFO:root:####\n",
|
||
"Saving ONNX mode as '/content/openwakeword_training_temp/hey_viva.onnx'\n",
|
||
"Traceback (most recent call last):\n",
|
||
" File \"/content/openwakeword/openwakeword/train.py\", line 909, in <module>\n",
|
||
" convert_onnx_to_tflite(os.path.join(config[\"output_dir\"], config[\"model_name\"] + \".onnx\"),\n",
|
||
" File \"/content/openwakeword/openwakeword/train.py\", line 578, in convert_onnx_to_tflite\n",
|
||
" from onnx_tf.backend import prepare\n",
|
||
"ModuleNotFoundError: No module named 'onnx_tf'\n",
|
||
"Copied final ONNX model to Google Drive: /content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_viva/hey_viva.onnx\n",
|
||
"\n",
|
||
"\u001b[07mModel optimizing started\u001b[0m ============================================================\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 14 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 200.6KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 12 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 201.4KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 12 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 201.4KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"\u001b[32mModel optimizing complete!\u001b[0m\n",
|
||
"\n",
|
||
"\u001b[07mAutomatic generation of each OP name started\u001b[0m ========================================\n",
|
||
"\u001b[32mAutomatic generation of each OP name complete!\u001b[0m\n",
|
||
"\n",
|
||
"\u001b[07mModel loaded\u001b[0m ========================================================================\n",
|
||
"\n",
|
||
"\u001b[07mflatbuffer_direct fast path started\u001b[0m ===============================================\n",
|
||
"flatbuffer_direct lowering: 100% 25/25 [00:00<00:00, 8207.39it/s]\n",
|
||
"flatbuffer_direct post-lowering [6/6] topological sort: 100% 6/6 [00:00<00:00, 180.88it/s]\n",
|
||
"flatbuffer_direct write timing: stage=float32 mode=builder_direct total=0.016s serialize=0.004s (sanitize=0.000s build=0.001s pack=0.003s output=0.000s) write=0.011s size=0.20MB\n",
|
||
"flatbuffer_direct write timing: stage=float16 mode=builder_direct total=0.017s serialize=0.005s (sanitize=0.000s build=0.002s pack=0.003s output=0.000s) write=0.011s size=0.10MB\n",
|
||
"flatbuffer_direct export [4/3] write float16 tflite: 4it [00:00, 72.42it/s]\n",
|
||
"\u001b[32mFloat32 tflite output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_viva/hey_viva_float32.tflite)\u001b[0m\n",
|
||
"\u001b[32mFloat16 tflite output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_viva/hey_viva_float16.tflite)\u001b[0m\n",
|
||
"\u001b[32mTensor correspondence report output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_viva/hey_viva_tensor_correspondence_report.json)\u001b[0m\n",
|
||
"ONNX model converted to TFLite and saved to: /content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_viva/hey_viva.tflite\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"\n",
|
||
" async function download(id, filename, size) {\n",
|
||
" if (!google.colab.kernel.accessAllowed) {\n",
|
||
" return;\n",
|
||
" }\n",
|
||
" const div = document.createElement('div');\n",
|
||
" const label = document.createElement('label');\n",
|
||
" label.textContent = `Downloading \"${filename}\": `;\n",
|
||
" div.appendChild(label);\n",
|
||
" const progress = document.createElement('progress');\n",
|
||
" progress.max = size;\n",
|
||
" div.appendChild(progress);\n",
|
||
" document.body.appendChild(div);\n",
|
||
"\n",
|
||
" const buffers = [];\n",
|
||
" let downloaded = 0;\n",
|
||
"\n",
|
||
" const channel = await google.colab.kernel.comms.open(id);\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
"\n",
|
||
" for await (const message of channel.messages) {\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
" if (message.buffers) {\n",
|
||
" for (const buffer of message.buffers) {\n",
|
||
" buffers.push(buffer);\n",
|
||
" downloaded += buffer.byteLength;\n",
|
||
" progress.value = downloaded;\n",
|
||
" }\n",
|
||
" }\n",
|
||
" }\n",
|
||
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
||
" const a = document.createElement('a');\n",
|
||
" a.href = window.URL.createObjectURL(blob);\n",
|
||
" a.download = filename;\n",
|
||
" div.appendChild(a);\n",
|
||
" a.click();\n",
|
||
" div.remove();\n",
|
||
" }\n",
|
||
" "
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"download(\"download_154a91ef-7177-4618-98ce-ac0a3ce209cf\", \"hey_viva.onnx\", 206276)"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"\n",
|
||
" async function download(id, filename, size) {\n",
|
||
" if (!google.colab.kernel.accessAllowed) {\n",
|
||
" return;\n",
|
||
" }\n",
|
||
" const div = document.createElement('div');\n",
|
||
" const label = document.createElement('label');\n",
|
||
" label.textContent = `Downloading \"${filename}\": `;\n",
|
||
" div.appendChild(label);\n",
|
||
" const progress = document.createElement('progress');\n",
|
||
" progress.max = size;\n",
|
||
" div.appendChild(progress);\n",
|
||
" document.body.appendChild(div);\n",
|
||
"\n",
|
||
" const buffers = [];\n",
|
||
" let downloaded = 0;\n",
|
||
"\n",
|
||
" const channel = await google.colab.kernel.comms.open(id);\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
"\n",
|
||
" for await (const message of channel.messages) {\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
" if (message.buffers) {\n",
|
||
" for (const buffer of message.buffers) {\n",
|
||
" buffers.push(buffer);\n",
|
||
" downloaded += buffer.byteLength;\n",
|
||
" progress.value = downloaded;\n",
|
||
" }\n",
|
||
" }\n",
|
||
" }\n",
|
||
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
||
" const a = document.createElement('a');\n",
|
||
" a.href = window.URL.createObjectURL(blob);\n",
|
||
" a.download = filename;\n",
|
||
" div.appendChild(a);\n",
|
||
" a.click();\n",
|
||
" div.remove();\n",
|
||
" }\n",
|
||
" "
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"download(\"download_cc09a920-6d16-49f5-b290-df53a75371aa\", \"hey_viva.tflite\", 206992)"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "47aabd38"
|
||
},
|
||
"source": [
|
||
"## Convert ONNX to TFLite\n",
|
||
"\n",
|
||
"This section converts the trained ONNX model to TFLite format and saves it to your Google Drive."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [
|
||
"!pip install onnx_tf==1.10.0 # Added onnx_tf"
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"id": "j3hDpw88nKPw",
|
||
"outputId": "1882d735-eb4a-4ab6-9d4c-a09e69d01bf3"
|
||
},
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Collecting onnx_tf==1.10.0\n",
|
||
" Downloading onnx_tf-1.10.0-py3-none-any.whl.metadata (510 bytes)\n",
|
||
"Requirement already satisfied: onnx>=1.10.2 in /usr/local/lib/python3.12/dist-packages (from onnx_tf==1.10.0) (1.19.1)\n",
|
||
"Requirement already satisfied: PyYAML in /usr/local/lib/python3.12/dist-packages (from onnx_tf==1.10.0) (6.0.3)\n",
|
||
"INFO: pip is looking at multiple versions of onnx-tf to determine which version is compatible with other requirements. This could take a while.\n",
|
||
"\u001b[31mERROR: Could not find a version that satisfies the requirement tensorflow-addons (from onnx-tf) (from versions: none)\u001b[0m\u001b[31m\n",
|
||
"\u001b[0m\u001b[31mERROR: No matching distribution found for tensorflow-addons\u001b[0m\u001b[31m\n",
|
||
"\u001b[0m"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 1000
|
||
},
|
||
"id": "733055a2",
|
||
"outputId": "9fb2376a-5a5a-4c6e-a85e-47d4cb559aa2"
|
||
},
|
||
"source": [
|
||
"import os\n",
|
||
"from google.colab import files\n",
|
||
"\n",
|
||
"# Ensure drive_output_dir and config['model_name'] are available\n",
|
||
"# (These variables are typically defined in previous cells)\n",
|
||
"\n",
|
||
"# Define the model-specific output directory\n",
|
||
"# This cell should be run after cell qgaKWIY6WlJ1 for config to be defined\n",
|
||
"model_specific_output_dir = os.path.join(drive_output_dir, config['model_name'])\n",
|
||
"\n",
|
||
"# Construct the paths for the ONNX and TFLite models\n",
|
||
"onnx_model_path = f\"{model_specific_output_dir}/{config['model_name']}.onnx\"\n",
|
||
"name1, name2 = f\"{model_specific_output_dir}/{config['model_name']}_float32.tflite\", f\"{model_specific_output_dir}/{config['model_name']}.tflite\"\n",
|
||
"\n",
|
||
"# Convert ONNX model to tflite using `onnx2tf` library\n",
|
||
"# Paths are quoted to handle spaces in directory names\n",
|
||
"!onnx2tf -i \"{onnx_model_path}\" -o \"{model_specific_output_dir}\" -kat onnx____Flatten_0\n",
|
||
"\n",
|
||
"# Rename the generated float32 TFLite model to the desired name\n",
|
||
"!mv \"{name1}\" \"{name2}\"\n",
|
||
"\n",
|
||
"print(f\"ONNX model converted to TFLite and saved to: {name2}\")\n",
|
||
"\n",
|
||
"# Automatically download the trained model files for convenience\n",
|
||
"files.download(onnx_model_path)\n",
|
||
"files.download(name2)"
|
||
],
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"\n",
|
||
"\u001b[07mModel optimizing started\u001b[0m ============================================================\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 14 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 200.6KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 12 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 201.4KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"Simplifying...\n",
|
||
"Finish! Here is the difference:\n",
|
||
"┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓\n",
|
||
"┃ ┃ Original Model ┃ Simplified Model ┃\n",
|
||
"┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩\n",
|
||
"│ Add │ 4 │ 4 │\n",
|
||
"│ Constant │ 12 │ 12 │\n",
|
||
"│ Div │ 2 │ 2 │\n",
|
||
"│ Flatten │ 1 │ 1 │\n",
|
||
"│ Gemm │ 3 │ 3 │\n",
|
||
"│ Mul │ 2 │ 2 │\n",
|
||
"│ Pow │ 2 │ 2 │\n",
|
||
"│ ReduceMean │ 4 │ 4 │\n",
|
||
"│ Relu │ 2 │ 2 │\n",
|
||
"│ Sigmoid │ 1 │ 1 │\n",
|
||
"│ Sqrt │ 2 │ 2 │\n",
|
||
"│ Sub │ 2 │ 2 │\n",
|
||
"│ Model Size │ 201.4KiB │ 201.4KiB │\n",
|
||
"└────────────┴────────────────┴──────────────────┘\n",
|
||
"\n",
|
||
"\u001b[32mModel optimizing complete!\u001b[0m\n",
|
||
"\n",
|
||
"\u001b[07mAutomatic generation of each OP name started\u001b[0m ========================================\n",
|
||
"\u001b[32mAutomatic generation of each OP name complete!\u001b[0m\n",
|
||
"\n",
|
||
"\u001b[07mModel loaded\u001b[0m ========================================================================\n",
|
||
"\n",
|
||
"\u001b[07mflatbuffer_direct fast path started\u001b[0m ===============================================\n",
|
||
"flatbuffer_direct lowering: 100% 25/25 [00:00<00:00, 8477.45it/s]\n",
|
||
"flatbuffer_direct post-lowering [6/6] topological sort: 100% 6/6 [00:00<00:00, 176.30it/s]\n",
|
||
"flatbuffer_direct write timing: stage=float32 mode=builder_direct total=0.012s serialize=0.003s (sanitize=0.000s build=0.000s pack=0.003s output=0.000s) write=0.007s size=0.20MB\n",
|
||
"flatbuffer_direct write timing: stage=float16 mode=builder_direct total=0.010s serialize=0.003s (sanitize=0.000s build=0.000s pack=0.003s output=0.000s) write=0.007s size=0.10MB\n",
|
||
"flatbuffer_direct export [4/3] write float16 tflite: 4it [00:00, 110.80it/s]\n",
|
||
"\u001b[32mFloat32 tflite output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_visit_float32.tflite)\u001b[0m\n",
|
||
"\u001b[32mFloat16 tflite output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_visit_float16.tflite)\u001b[0m\n",
|
||
"\u001b[32mTensor correspondence report output complete! (/content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_visit_tensor_correspondence_report.json)\u001b[0m\n",
|
||
"ONNX model converted to TFLite and saved to: /content/drive/My Drive/Colab Notebooks/Wakeword/openwakeword/hey_visit.tflite\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"\n",
|
||
" async function download(id, filename, size) {\n",
|
||
" if (!google.colab.kernel.accessAllowed) {\n",
|
||
" return;\n",
|
||
" }\n",
|
||
" const div = document.createElement('div');\n",
|
||
" const label = document.createElement('label');\n",
|
||
" label.textContent = `Downloading \"${filename}\": `;\n",
|
||
" div.appendChild(label);\n",
|
||
" const progress = document.createElement('progress');\n",
|
||
" progress.max = size;\n",
|
||
" div.appendChild(progress);\n",
|
||
" document.body.appendChild(div);\n",
|
||
"\n",
|
||
" const buffers = [];\n",
|
||
" let downloaded = 0;\n",
|
||
"\n",
|
||
" const channel = await google.colab.kernel.comms.open(id);\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
"\n",
|
||
" for await (const message of channel.messages) {\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
" if (message.buffers) {\n",
|
||
" for (const buffer of message.buffers) {\n",
|
||
" buffers.push(buffer);\n",
|
||
" downloaded += buffer.byteLength;\n",
|
||
" progress.value = downloaded;\n",
|
||
" }\n",
|
||
" }\n",
|
||
" }\n",
|
||
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
||
" const a = document.createElement('a');\n",
|
||
" a.href = window.URL.createObjectURL(blob);\n",
|
||
" a.download = filename;\n",
|
||
" div.appendChild(a);\n",
|
||
" a.click();\n",
|
||
" div.remove();\n",
|
||
" }\n",
|
||
" "
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"download(\"download_e9bc5315-3bfa-4c18-ae9b-70acb70df689\", \"hey_visit.onnx\", 206276)"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"\n",
|
||
" async function download(id, filename, size) {\n",
|
||
" if (!google.colab.kernel.accessAllowed) {\n",
|
||
" return;\n",
|
||
" }\n",
|
||
" const div = document.createElement('div');\n",
|
||
" const label = document.createElement('label');\n",
|
||
" label.textContent = `Downloading \"${filename}\": `;\n",
|
||
" div.appendChild(label);\n",
|
||
" const progress = document.createElement('progress');\n",
|
||
" progress.max = size;\n",
|
||
" div.appendChild(progress);\n",
|
||
" document.body.appendChild(div);\n",
|
||
"\n",
|
||
" const buffers = [];\n",
|
||
" let downloaded = 0;\n",
|
||
"\n",
|
||
" const channel = await google.colab.kernel.comms.open(id);\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
"\n",
|
||
" for await (const message of channel.messages) {\n",
|
||
" // Send a message to notify the kernel that we're ready.\n",
|
||
" channel.send({})\n",
|
||
" if (message.buffers) {\n",
|
||
" for (const buffer of message.buffers) {\n",
|
||
" buffers.push(buffer);\n",
|
||
" downloaded += buffer.byteLength;\n",
|
||
" progress.value = downloaded;\n",
|
||
" }\n",
|
||
" }\n",
|
||
" }\n",
|
||
" const blob = new Blob(buffers, {type: 'application/binary'});\n",
|
||
" const a = document.createElement('a');\n",
|
||
" a.href = window.URL.createObjectURL(blob);\n",
|
||
" a.download = filename;\n",
|
||
" div.appendChild(a);\n",
|
||
" a.click();\n",
|
||
" div.remove();\n",
|
||
" }\n",
|
||
" "
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.Javascript object>"
|
||
],
|
||
"application/javascript": [
|
||
"download(\"download_b2484f91-5e85-4345-80e9-39320670138c\", \"hey_visit.tflite\", 206992)"
|
||
]
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |