From 061027975f7db2d8ebb7f583ad02c3faa21b51fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Pag=C3=A9s?= <55240756+clement-pages@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:57:36 +0200 Subject: [PATCH] doc: add tutorial evaluating the joint diarization/separation metrics (#1716) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hervé BREDIN --- README.md | 3 +- .../community/eval_separation_pipeline.ipynb | 3590 +++++++++++++++++ 2 files changed, 3592 insertions(+), 1 deletion(-) create mode 100644 tutorials/community/eval_separation_pipeline.ipynb diff --git a/README.md b/README.md index abef6de01..9fd708f48 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Using `pyannote.audio` open-source toolkit in production? +Using `pyannote.audio` open-source toolkit in production? Consider switching to [pyannoteAI](https://www.pyannote.ai) for better and faster options. # `pyannote.audio` speaker diarization toolkit @@ -73,6 +73,7 @@ for turn, _, speaker in diarization.itertracks(yield_label=True): - [First release of pyannote.audio](https://www.youtube.com/watch?v=37R_R82lfwA) / ICASSP 2020 / 8 min - Community contributions (not maintained by the core team) - 2024-04-05 > [Offline speaker diarization (speaker-diarization-3.1)](tutorials/community/offline_usage_speaker_diarization.ipynb) by [Simon Ottenhaus](https://github.com/simonottenhauskenbun) + - 2024-09-24 > [Evaluating `pyannote` pretrained speech separation pipelines](tutorials/community/eval_separation_pipeline.ipynb) by [Clément Pagés](https://github.com/) ## Benchmark diff --git a/tutorials/community/eval_separation_pipeline.ipynb b/tutorials/community/eval_separation_pipeline.ipynb new file mode 100644 index 000000000..afc710fab --- /dev/null +++ b/tutorials/community/eval_separation_pipeline.ipynb @@ -0,0 +1,3590 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "FH-jF23ogFiH" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gem8uWvYJJBH" + }, + "source": [ + "# Evaluating `pyannote` pretrained speech separation pipelines\n", + "\n", + "> Tutorial contributed by [Clément Pagés](https://github.com/clement-pages/)\n", + "\n", + "In this tutorial, we will evaluate `pyannote` pretrained speech separation pipeline.\n", + "\n", + "More precisely, we rely on the pretrained `ToTaToNet` separation model and pipeline, on the tasks of speaker diarization and automatic speech recognition (ASR). \n", + "More details about them are available in [this paper](https://www.isca-archive.org/odyssey_2024/kalda24_odyssey.pdf) which won the best student paper award at [Odyssey 2024](https://www.odyssey2024.org/).\n", + "\n", + "```bibtex\n", + "@inproceedings{kalda24_odyssey,\n", + " title = {PixIT: Joint Training of Speaker Diarization and Speech Separation from Real-world Multi-speaker Recordings},\n", + " author = {Joonas Kalda and Clément Pagés and Ricard Marxer and Tanel Alumäe and Hervé Bredin},\n", + " year = {2024},\n", + " booktitle = {The Speaker and Language Recognition Workshop (Odyssey 2024)},\n", + " pages = {115--122},\n", + " doi = {10.21437/odyssey.2024-17},\n", + "}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Qr02VgSaJgHv" + }, + "source": [ + "## Tutorial setup\n", + "\n", + "### Google Colab Setup\n", + "\n", + "If you are running this tutorial on Colab, execute the following commands in order to setup the environment. \n", + "These commands will install `pyannote.audio`, and other required dependencies." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "collapsed": true, + "id": "bUQOHa_rJEQc", + "outputId": "269ebe26-c22a-4a2a-cc00-e16239ddef6f" + }, + "outputs": [], + "source": [ + "!pip install -qq speechbrain==0.5.16\n", + "!pip install -qq ipython==7.34.0\n", + "!pip install -qq ipywidgets openai-whisper whisperx==3.1.5 meeteval\n", + "!pip install -qq pyannote.audio[separation]" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fWr_lB51Qk2P" + }, + "source": [ + "⚠ Make sure that you switch to a GPU runtime (Runtime > Change runtime type) then restart the runtime (Runtime > Restart session).\n", + "Otherwise, everything will be extremely slow." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1A7a2prlSyt2" + }, + "source": [ + "### Non Google Colab setup\n", + "\n", + "If you are not using Colab, this tutorial assumes that the following dependencies have been installed:\n", + " - `pyannote.audio[separation]` for joint speech diarization and separation (as well as the evaluation of speaker diarization)\n", + " - `openai-whisper` and `whisperx` for speech transcription\n", + " - `meeteval` for the evaluation of speech transcription\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yBdGZ_GpHTPX" + }, + "source": [ + "### General setup (whatever the environment)\n", + "\n", + "Update `ROOT_DIR` to the path where you want to download assets used in this tutorial." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "BVfQIlXmcuOG" + }, + "outputs": [], + "source": [ + "import os\n", + "\n", + "# update ROOT_DIR according to your setup\n", + "ROOT_DIR = \"path/to/pyannote-audio\"\n", + "ROOT_DIR = \"/Users/hbredin/Development/pyannote/pyannote-audio\"\n", + "os.environ[\"ASSET_DIR\"] = ROOT_DIR + \"/tutorials/assets/separation\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "Vimpdx0Rm-tm" + }, + "outputs": [], + "source": [ + "# create ASSET_DIR repertory\n", + "!mkdir -p ${ASSET_DIR}/sources\n", + "\n", + "# Download audio files from AMI-SDM dataset used in this tutorial\n", + "!wget --continue -q -O ${ASSET_DIR}/mixture.wav https://groups.inf.ed.ac.uk/ami/AMICorpusMirror//amicorpus/ES2004a/audio/ES2004a.Mix-Headset.wav\n", + "!wget --continue -q -O ${ASSET_DIR}/sources/source0.wav https://groups.inf.ed.ac.uk/ami/AMICorpusMirror//amicorpus/ES2004a/audio/ES2004a.Headset-0.wav\n", + "!wget --continue -q -O ${ASSET_DIR}/sources/source1.wav https://groups.inf.ed.ac.uk/ami/AMICorpusMirror//amicorpus/ES2004a/audio/ES2004a.Headset-1.wav\n", + "!wget --continue -q -O ${ASSET_DIR}/sources/source2.wav https://groups.inf.ed.ac.uk/ami/AMICorpusMirror//amicorpus/ES2004a/audio/ES2004a.Headset-2.wav\n", + "!wget --continue -q -O ${ASSET_DIR}/sources/source3.wav https://groups.inf.ed.ac.uk/ami/AMICorpusMirror//amicorpus/ES2004a/audio/ES2004a.Headset-3.wav\n", + "\n", + "# Download rttm file\n", + "!wget --continue -q -O ${ASSET_DIR}/mixture.rttm https://raw.githubusercontent.com/pyannote/AMI-diarization-setup/main/only_words/rttms/test/ES2004a.rttm" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "BIfT-DwoIFjw" + }, + "source": [ + "In the following parts, we will work on a one-minute long chunk excerpt from a meeting involving 4 speakers." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "KyRhUEY_wJ79" + }, + "outputs": [], + "source": [ + "# set visualization scope to this specific one-minute segment\n", + "from pyannote.core import notebook, Segment\n", + "segment = Segment(750, 810)\n", + "notebook.crop = segment" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aWSJqd7CToji" + }, + "source": [ + "## Speaker diarization\n", + "\n", + "First, we are going to evaluate the joint diarization/separation pipeline in terms of diarization performance by computing the [Diarization Error Rate](https://pyannote.github.io/pyannote-metrics/reference.html?highlight=diarization%20error%20rate#diarization) (DER) on the audio mixture. \n", + "\n", + "We will rely on the implementation of this metric available inn [`pyannote.metrics`](https://github.com/pyannote/pyannote-metrics).\n", + "\n", + "Let's load the example mixture and its corresponding reference (manual) annotation." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "_w_HvNWQkOUx" + }, + "outputs": [], + "source": [ + "from pyannote.database.util import load_rttm\n", + "from pyannote.audio.core.io import Audio\n", + "\n", + "audio = Audio()\n", + "\n", + "uri = \"ES2004a\" # original file name\n", + "file = os.environ[\"ASSET_DIR\"] + \"/mixture.wav\"\n", + "mixture, sample_rate = audio.crop(file=file, segment=segment)\n", + "\n", + "annotations = load_rttm(os.environ[\"ASSET_DIR\"] + \"/mixture.rttm\")[uri]\n", + "annotations = annotations.crop(segment)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SEFkR3QmGVWN" + }, + "source": [ + "Let's take a look at the annotations, and listen the audio corresponding to the chunk." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 247 + }, + "id": "3wAe634dhkmX", + "outputId": "336aaf75-18a3-4587-8722-849f0261dbcc" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABjwAAADyCAYAAAD5q2z1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAm7ElEQVR4nO3deXRX5Z0/8E/CEiAhhC0sFkRBxYUWl984MFNLqyKWo7ZOpSp1QUerg1a7UPSI2uqo1Wodqz06dcSqU6RubR13BDsV5YdLpW4cECrSXyVQiWGHQPL8/uDwbWNYkpAvyY2v1zk5h++9z/c+z73PzSeXvPO9tyCllAIAAAAAACDDClt6AAAAAAAAALtL4AEAAAAAAGSewAMAAAAAAMg8gQcAAAAAAJB5Ag8AAAAAACDzBB4AAAAAAEDmCTwAAAAAAIDME3gAAAAAAACZJ/AAAAAAAAAyT+ABAAAAAABknsADAAAAAADIPIEHAAAAAACQeQIPAAAAAAAg8wQeAAAAAABA5gk8AAAAAACAzBN4AAAAAAAAmSfw2I6zzz47CgoK6n0tWrRoh+vGjBmTe/+gQYO22+ZHP/pRrs3SpUtj7Nix0aVLlygvL49JkybFli1bcuuXLVsWp59+euy///5RWFgYl156ab1xPvbYY3HEEUdEWVlZFBcXx/Dhw+OBBx7I67HJsqzMa0REVVVVTJw4Mfr16xdFRUWx//77x1NPPZW3Y5N12+bvggsuqLdu4sSJUVBQEGeffXadtq1lrreZPn16FBQUxFe+8pXdOhZtXXPPdUTEyy+/HF/+8peje/fu0alTpxg2bFj85Cc/iZqamjrtKisrY/z48VFaWhplZWVx7rnnxtq1a3PrN27cGGeffXYMGzYs2rdvv925/N3vfrfdMVVUVOz+wQEAAAD4lGvfEp3WrFy5x/pq17Nnk943ZsyYuPfee+ss69279w7XFRUV1Xl9zTXXxHnnnVdnWdeuXSMioqamJsaOHRt9+/aNl19+OZYtWxZnnnlmdOjQIa6//vqIiNi0aVP07t07pkyZErfeeut2x9ijR4+44oorYujQodGxY8d44oknYsKECVFeXh7HHXdck/Z7d3y8rnqP9te9uGOj35OFea2uro5jjz02ysvL45FHHom99torPvjggygrK2v0/jaXDas27tH+Onfr1Oj3DBgwIKZPnx633nprdO7cOSK2/gJ62rRpMXDgwDptW8tcb7NkyZL43ve+F5///Ocbvd/NadWmVXu0v25F3Zr0vuac61//+tcxbty4mDBhQrzwwgtRVlYWzz//fHz/+9+POXPmxEMPPRQFBQURETF+/PhYtmxZzJgxIzZv3hwTJkyI888/P6ZNmxYRW8+Lzp07x7e+9a149NFHd7oPCxYsiNLS0tzr8vLyJh0LAAAAAP6mRQKPis8O32N97fWXPzfpfUVFRdG3b99Gr9uma9euO2zz3HPPxbvvvhvPP/989OnTJ4YPHx7XXnttTJ48OX7wgx9Ex44dY9CgQXHbbbdFRMTUqVO3u51Ro0bVeX3JJZfEfffdF7Nnz26RwOP4m17Yo/393x82fh+zMK9Tp06NysrKePnll6NDhw4RsfUTBy3p/jMf2aP9ffO332j0ew477LBYvHhxPPbYYzF+/PiI2PopqIEDB8Y+++xTp21rmeuIrb8kHz9+fPzwhz+MF198Maqqqhqx183rjKdP36P9Pf6VJ5v0vuaa63Xr1sV5550XJ554Yvz85z/PLf/Xf/3X6NOnT5x44onx0EMPxde//vWYP39+PPPMM/Hqq6/GEUccERERt99+e3z5y1+Om2++Ofr37x/FxcVx5513RkTESy+9tNO5LC8vb9EQEwAAAKAtckurFjBnzpwYNmxY9OnTJ7fsuOOOi9WrV8c777zTpG2mlGLmzJmxYMGCOOqoo5prqDRCc83r448/HiNGjIiJEydGnz594pBDDonrr7++3u11qO+cc86p89f8U6dOjQkTJjR7P835PXzNNddEeXl5nHvuuc09zDatOeb6ueeei5UrV8b3vve9eutOOOGE2H///ePBBx+MiK1zXlZWlgs7IiKOOeaYKCwsjLlz5zZ6/MOHD49+/frFscceGy+99FKj3w8AAABAfQKPHXjiiSeipKQk93XKKafscF1JSUnuNjbbTJ48uV6bF198MSIiKioq6vyiNCJyrxt7H/dVq1ZFSUlJdOzYMcaOHRu33357HHvssU3Z5U+FLMzrn/70p3jkkUeipqYmnnrqqbjyyivjlltuiX//939v6m5/anzjG9+I2bNnxwcffBAffPBBvPTSS/GNb9T/tEhrmevZs2fHPffcE3fffXdjd/VTrznmeuHChRERceCBB263j6FDh+baVFRU1LvtVPv27aNHjx6NmvN+/frFXXfdFY8++mg8+uijMWDAgBg1alT84Q9/aPA2AAAAANi+FrmlVRZ88YtfzN2aJCKiuLh4h+sitj5P4+9NmjQp9+Dcbfbaa69mH2fXrl1j3rx5sXbt2pg5c2Z85zvfiX333bfe7a7YKgvzWltbG+Xl5fHzn/882rVrF4cffnj85S9/iR//+Mdx9dVXN2tfbU3v3r1j7Nix8Ytf/CJSSjF27Njo1atXvXatYa7XrFkTZ5xxRtx9993bHSM715xznVLK61j/3gEHHBAHHHBA7vXIkSNj8eLFceutt8YDDzywx8YBAAAA0Ba1SODR9815LdFtoxQXF8eQIUMavW6bXr167bBN375945VXXqmzbPny5bl1jVFYWJjrZ/jw4TF//vy44YYbWiTwePr7X9zjfTZWFua1X79+0aFDh2jXrl1u2YEHHhgVFRVRXV0dHTs2/mHtu+vM+7+2x/tsqnPOOScuuuiiiIj42c9+tt02rWGuFy9eHEuWLIkTTjght6y2tjYitn5yYMGCBTF48OAGbau5PHD8tD3a3+7a3bnef//9IyJi/vz5MXLkyHrr58+fHwcddFBEbJ3XFStW1Fm/ZcuWqKysbHTd/qR/+Id/iNmzZ+/WNgAAAABoocCjXc+eLdFtqzFixIi47rrrYsWKFblbpMyYMSNKS0tzv1xrqtra2ti0aVNzDLPRuhfv+V/EtybNNa//9E//FNOmTYva2tooLNx617mFCxdGv379WiTsiIjo3K1Ti/TbFGPGjInq6uooKCiI445r/IPtG6I55nro0KHx1ltv1Vk2ZcqUWLNmTdx2220xYMCAZh/3rnQr6rbH+9wduzvXo0ePjh49esQtt9xSL/B4/PHH47333otrr702IrbOeVVVVbz++utx+OGHR0TErFmzora2No488sjd2o958+ZFv379dmsbAAAAALilVZNs2rSp3j3b27dvX+d2KmvWrKnXpkuXLlFaWhqjR4+Ogw46KM4444y46aaboqKiIqZMmRITJ06MoqKiXPt58+ZFRMTatWvjr3/9a8ybNy86duyY+4XqDTfcEEcccUQMHjw4Nm3aFE899VQ88MAD9W7fQsO0lnm98MIL44477ohLLrkkLr744njvvffi+uuvj29961t52vO2pV27djF//vzcv7enNcx1p06d4pBDDqmz/bKysoiIesvZ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PIEHAAAAAACQeQIPAAAAAAAg8wQeAAAAAABA5jUq8Bg0aFAUFBTU+5o4cWJERIwaNareugsuuKDONpYuXRpjx46NLl26RHl5eUyaNCm2bNnSfHsE5NWu6kBExJw5c+JLX/pSFBcXR2lpaRx11FGxYcOG3PrKysoYP358lJaWRllZWZx77rmxdu3altgdoIl2VguWLFmy3XUFBQXx8MMP57bhmgCybVfXBBUVFXHGGWdE3759o7i4OA477LB49NFH62zDNQFk267qwOLFi+OrX/1q9O7dO0pLS2PcuHGxfPnyOttQByD7ampq4sorr4x99tknOnfuHIMHD45rr702Ukq5NimluOqqq6Jfv37RuXPnOOaYY+K9996rsx31ALKrIXXgsccei9GjR0fPnj2joKAg5s2bV287GzdujIkTJ0bPnj2jpKQk/uVf/qXetcOuNCrwePXVV2PZsmW5rxkzZkRExCmnnJJrc95559Vpc9NNN9XZ8bFjx0Z1dXW8/PLLcd9998UvfvGLuOqqqxo1aKDl7KoOzJkzJ8aMGROjR4+OV155JV599dW46KKLorDwb+Vm/Pjx8c4778SMGTPiiSeeiN///vdx/vnnt8j+AE2zs1owYMCAOuuWLVsWP/zhD6OkpCSOP/74iHBNAG3Brq4JzjzzzFiwYEE8/vjj8dZbb8XJJ58c48aNizfeeCO3DdcEkG07qwPr1q2L0aNHR0FBQcyaNSteeumlqK6ujhNOOCFqa2tz21AHIPtuvPHGuPPOO+OOO+6I+fPnx4033hg33XRT3H777bk2N910U/z0pz+Nu+66K+bOnRvFxcVx3HHHxcaNG3Nt1APIrobUgXXr1sU///M/x4033rjD7Xz729+O//mf/4mHH344/vd//zc+/PDDOPnkkxs3mLQbLrnkkjR48OBUW1ubUkrpC1/4Qrrkkkt22P6pp55KhYWFqaKiIrfszjvvTKWlpWnTpk27MxSghXyyDhx55JFpypQpO2z/7rvvpohIr776am7Z008/nQoKCtJf/vKXvI8XyI9P1oJPGj58eDrnnHNyr10TQNvzyTpQXFyc7r///jptevToke6+++6UkmsCaIv+vg48++yzqbCwMK1atSq3vqqqKhUUFKQZM2aklNQBaCvGjh1b51o/pZROPvnkNH78+JRSSrW1talv377pxz/+cW59VVVVKioqSg8++GBKST2ArNtVHfh777//foqI9MYbb9RZXlVVlTp06JAefvjh3LL58+eniEhz5sxp8Fia/AyP6urq+O///u8455xzoqCgILf8l7/8ZfTq1SsOOeSQuPzyy2P9+vW5dXPmzIlhw4ZFnz59csuOO+64WL16dbzzzjtNHQrQQj5ZB1asWBFz586N8vLyGDlyZPTp0ye+8IUvxOzZs3PvmTNnTpSVlcURRxyRW3bMMcdEYWFhzJ07tyV2A9hNO7om2Ob111+PefPmxbnnnptb5poA2pbt1YGRI0fGr371q6isrIza2tqYPn16bNy4MUaNGhURrgmgrflkHdi0aVMUFBREUVFRrk2nTp2isLAw9/8DdQDahpEjR8bMmTNj4cKFERHxxz/+MWbPnp37dPf7778fFRUVccwxx+Te061btzjyyCNjzpw5EaEeQNbtqg40xOuvvx6bN2+uUyuGDh0aAwcOzNWKhmjf8GHX9Zvf/Caqqqri7LPPzi07/fTTY++9947+/fvHm2++GZMnT44FCxbEY489FhFb7+P797/YiIjc64qKiqYOBWghn6wDf/rTnyIi4gc/+EHcfPPNMXz48Lj//vvj6KOPjrfffjv222+/qKioiPLy8jrbad++ffTo0UMdgIza3jXB37vnnnviwAMPjJEjR+aWuSaAtmV7deChhx6Kr3/969GzZ89o3759dOnSJX7961/HkCFDIiJcE0Ab88k68I//+I9RXFwckydPjuuvvz5SSnHZZZdFTU1NLFu2LCLUAWgrLrvssli9enUMHTo02rVrFzU1NXHdddfF+PHjI+Jv1/fbu/7ftk49gGzbVR1oiIqKiujYsWOUlZXVWf73taIhmhx43HPPPXH88cdH//79c8v+/r56w4YNi379+sXRRx8dixcvjsGDBze1K6CV+mQd2HYv3m9+85sxYcKEiIg49NBDY+bMmTF16tS44YYbWmysQP5s75pgmw0bNsS0adPiyiuvbIGRAXvK9urAlVdeGVVVVfH8889Hr1694je/+U2MGzcuXnzxxRg2bFgLjhbIh0/Wgd69e8fDDz8cF154Yfz0pz+NwsLCOO200+Kwww6r83w/IPseeuih+OUvfxnTpk2Lgw8+OObNmxeXXnpp9O/fP84666yWHh6wB7SmOtCkwOODDz6I559/PvfJjR058sgjIyJi0aJFMXjw4Ojbt2+88sorddpse8p63759mzIUoIVsrw7069cvIiIOOuigOm0PPPDAWLp0aURs/V5fsWJFnfVbtmyJyspKdQAyaFfXBI888kisX78+zjzzzDrLXRNA27G9OrB48eK444474u23346DDz44IiI+97nPxYsvvhg/+9nP4q677nJNAG3Ijq4HRo8eHYsXL46PPvoo2rdvH2VlZdG3b9/Yd999I8L/DaCtmDRpUlx22WVx6qmnRsTWP4L+4IMP4oYbboizzjor9/28fPny3O8Ntr0ePnx4RKgHkHW7qgMN0bdv36iuro6qqqo6n/JYvnx5o+pAk/6s4t57743y8vIYO3bsTtvNmzcvIv72S9ARI0bEW2+9VaeAzZgxI0pLS+v9ghRo3bZXBwYNGhT9+/ePBQsW1Gm7cOHC2HvvvSNiax2oqqqK119/Pbd+1qxZUVtbmwtJgezY1TXBPffcEyeeeGL07t27znLXBNB2bK8ObHuO3yf/irtdu3a5T4S6JoC2Y1fXA7169YqysrKYNWtWrFixIk488cSIUAegrVi/fv1Of+bvs88+0bdv35g5c2Zu/erVq2Pu3LkxYsSIiFAPIOt2VQca4vDDD48OHTrUqRULFiyIpUuX5mpFgzTqcesppZqamjRw4MA0efLkOssXLVqUrrnmmvTaa6+l999/P/32t79N++67bzrqqKNybbZs2ZIOOeSQNHr06DRv3rz0zDPPpN69e6fLL7+8scMAWtCO6kBKKd16662ptLQ0Pfzww+m9995LU6ZMSZ06dUqLFi3KtRkzZkw69NBD09y5c9Ps2bPTfvvtl0477bQ9uQtAM9hZLUgppffeey8VFBSkp59+ut461wTQNuyoDlRXV6chQ4akz3/+82nu3Llp0aJF6eabb04FBQXpySefzLVzTQDZt7PrgalTp6Y5c+akRYsWpQceeCD16NEjfec736nTRh2A7DvrrLPSXnvtlZ544on0/vvvp8ceeyz16tUrff/738+1+dGPfpTKysrSb3/72/Tmm2+mk046Ke2zzz5pw4YNuTbqAWRXQ+rAypUr0xtvvJGefPLJFBFp+vTp6Y033kjLli3LtbngggvSwIED06xZs9Jrr72WRowYkUaMGNGosTQ68Hj22WdTRKQFCxbUWb506dJ01FFHpR49eqSioqI0ZMiQNGnSpLRq1ao67ZYsWZKOP/741Llz59SrV6/03e9+N23evLmxwwBa0I7qwDY33HBD+sxnPpO6dOmSRowYkV588cU661euXJlOO+20VFJSkkpLS9OECRPSmjVr9sTQgWa0q1pw+eWXpwEDBqSamprtrndNANm3szqwcOHCdPLJJ6fy8vLUpUuX9NnPfjbdf//9ddq4JoDs21kdmDx5curTp0/q0KFD2m+//dItt9ySamtr67RRByD7Vq9enS655JI0cODA1KlTp7TvvvumK664Im3atCnXpra2Nl155ZWpT58+qaioKB199NH16oZ6ANnVkDpw7733poio93X11Vfn2mzYsCH927/9W+revXvq0qVL+upXv1onEGmIgpRSavjnQQAAAAAAAFqfJj3DAwAAAAAAoDUReAAAAAAAAJkn8AAAAAAAADJP4AEAAAAAAGSewAMAAAAAAMg8gQcAAAAAAJB5Ag8AAAAAACDzBB4AAMBuO/vss+MrX/lKSw8DAAD4FGvf0gMAAABat4KCgp2uv/rqq+O2226LlNIeGhEAAEB9Ag8AAGCnli1blvv3r371q7jqqqtiwYIFuWUlJSVRUlLSEkMDAADIcUsrAABgp/r27Zv76tatWxQUFNRZVlJSUu+WVqNGjYqLL744Lr300ujevXv06dMn7r777li3bl1MmDAhunbtGkOGDImnn366Tl9vv/12HH/88VFSUhJ9+vSJM844Iz766KM9vMcAAEAWCTwAAIC8uO+++6JXr17xyiuvxMUXXxwXXnhhnHLKKTFy5Mj4wx/+EKNHj44zzjgj1q9fHxERVVVV8aUvfSkOPfTQeO211+KZZ56J5cuXx7hx41p4TwAAgCwQeAAAAHnxuc99LqZMmRL77bdfXH755dGpU6fo1atXnHfeebHffvvFVVddFStXrow333wzIiLuuOOOOPTQQ+P666+PoUOHxqGHHhpTp06NF154IRYuXNjCewMAALR2nuEBAADkxWc/+9ncv9u1axc9e/aMYcOG5Zb16dMnIiJWrFgRERF//OMf44UXXtju80AWL14c+++/f55HDAAAZJnAAwAAyIsOHTrUeV1QUFBnWUFBQURE1NbWRkTE2rVr44QTTogbb7yx3rb69euXx5ECAABtgcADAABoFQ477LB49NFHY9CgQdG+vf+qAAAAjeMZHgAAQKswceLEqKysjNNOOy1effXVWLx4cTz77LMxYcKEqKmpaenhAQAArZzAAwAAaBX69+8fL730UtTU1MTo0aNj2LBhcemll0ZZWVkUFvqvCwAAsHMFKaXU0oMAAAAAAADYHf5MCgAAAAAAyDyBBwAAAAAAkHkCDwAAAAAAIPMEHgAAAAAAQOYJPAAAAAAAgMwTeAAAAAAAAJkn8AAAAAAAADJP4AEAAAAAAGSewAMAAAAAAMg8gQcAAAAAAJB5Ag8AAAAAACDzBB4AAAAAAEDm/X9K5fU1yCnYKwAAAABJRU5ErkJggg==", + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "annotations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 61 + }, + "id": "jD0rh02OtDOW", + "outputId": "0b6cd3f5-de5f-4d49-b375-8ff08b1f7e82" + }, + "outputs": [], + "source": [ + "from pyannote.audio.utils.preview import listen\n", + "listen(audio_file=file, segment=segment)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bQ1DVOs_IGyV" + }, + "source": [ + "Now that we have loaded the mixture and the corresponding annotations, we load the pretrained joint diarization/separation pipeline.\n", + "\n", + "Official [pyannote.audio](https://github.com/pyannote/pyannote-audio) pipelines (i.e. those under the [`pyannote` organization](https://huggingface.co/pyannote) umbrella) are open-source, but gated. It means that you have to first accept users conditions on their respective Huggingface page to access the pretrained weights and hyper-parameters. Despite this initial process, those pipelines can perfectly be downloaded for later offline use: see the end of [this tutorial](https://github.com/pyannote/pyannote-audio/blob/develop/tutorials/applying_a_pipeline.ipynb) to learn how to do that.\n", + "\n", + "To load the pipeline used in this tutorial, you have to visit [hf.co/pyannote/speech-separation-ami-1.0](https://huggingface.co/pyannote/speech-separation-ami-1.0), accept the terms, visit [hf.co/pyannote/separation-ami-1.0](https://huggingface.co/pyannote/separation-ami-1.0) (used internally by the pipeline), and accept the terms. Then, if you have not already done so, create a Huggingface token by going [here](https://huggingface.co/settings/tokens), and log in using `notebook_login` below:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 145, + "referenced_widgets": [ + "4ed0e4d0eded49f7b03edf77658cc78f", + "8fd216c544134e93a7aaa51b06f800b8", + "81d8f69f37324f61a215bc7d47c47381", + "29936da4bc1b45f89373195f7ea31b25", + "afb43a0e2b024fdcbcf080a458625f3e", + "06d5eeadd70643c08a61c4155e2f395b", + "225b9920b656474e91a1ce543b4047ee", + "fe6c7184c24f427993feb51a0d70eaf6", + "95d5e92b215c49c3a8b9606dbba0819e", + "ec53e214db284c0fbeb2b3e564939fe1", + "8e37d0ede1584bb7a0f6dbdbeb21dc74", + "fe72a04e3b1c47319a5ea958ac09a0d6", + "ec67edb58a274c278c3680d2e61811dc", + "28fcf390fef44363a59d83f3f25a6464", + "ab724184ad184e49b2201f3ce9b13c82", + "33434e4d7f884a6795b9c25266ea04aa", + "88f85747a55045afa6d17f728323e8e1", + "37d380c51c3f4f40b1be04a8f0db10f6", + "71a7142772e4420a8f3d16ff13efd637", + "242237efa34a48f9bc6008efaa218804", + "c7637c6cbdbe48ef85b79c3375842c3e", + "12eaa5b37d2a446892c0666fe030e4dc", + "9606de132aa44042b71aa85a7d55211c", + "bdd30894d83746aabb77f291c222060b", + "d53771ed80d147c4a3d87b33c65ac47c", + "d6aebd48323c4a948d5e49af230ab22d", + "08329896939f403aa17b0a2dbb8c08b6", + "c1293083357448de92edc1f4cdac17db", + "2a41eee869d54fc8bea15f63ea95330d", + "9b7bad58cf644ff9a949eae2dbbbdfad", + "00cb4ca89fa2438fa9278e093fb60313", + "9012503f13534d5e9975dd625b91c680" + ] + }, + "id": "x5bXJ4TggFie", + "outputId": "0eaad19c-f880-46be-b203-1018bfecb23c" + }, + "outputs": [], + "source": [ + "from huggingface_hub import notebook_login\n", + "notebook_login()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "nm5mF_h9JhPF", + "outputId": "14fb63cb-b855-420a-c09e-fe0117883af8" + }, + "outputs": [], + "source": [ + "from pyannote.audio import Pipeline\n", + "pipeline = Pipeline.from_pretrained(\n", + " \"pyannote/speech-separation-ami-1.0\", use_auth_token=True)\n", + "\n", + "# you can safely ignore that various warnings below." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "S0ylCA80HsPj" + }, + "source": [ + "In this tutorial, we use the set of hyper-parameters optimized for the diarization task. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "MFii5_l1bJ9Q", + "outputId": "b26a30e6-f040-444b-de93-48b6901c958e" + }, + "outputs": [], + "source": [ + "pipeline.instantiate(\n", + " {\n", + " \"segmentation\": {\n", + " \"min_duration_off\": 0.0,\n", + " \"threshold\": 0.5,\n", + " },\n", + " \"clustering\": {\n", + " \"method\": \"centroid\",\n", + " \"threshold\": 0.68,\n", + " \"min_cluster_size\": 60,\n", + " },\n", + " \"separation\": {\n", + " \"leakage_removal\": True,\n", + " \"asr_collar\": 0.0,\n", + " }\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ApMiPqxKe9vh" + }, + "source": [ + "In order to speed up processing, run the pipeline on a GPU device, if available." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "collapsed": true, + "id": "B5g73NgvfK7W", + "outputId": "50d4202a-c278-4580-92c0-b9948bc75120" + }, + "outputs": [], + "source": [ + "import torch\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "pipeline.to(device=device)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yOTIUETlbVOe" + }, + "source": [ + "The next step consists in applying the pipeline to get diarization prediction, and compare them to the annotation by computing DER." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 102, + "referenced_widgets": [ + "66ddb462721f45c09b384b8c49993d8b", + "5426b1771abd4cfd96c7384f084fda51" + ] + }, + "id": "2R_YkNujbU-l", + "outputId": "840b059c-5738-40f9-86cd-53be2681b960" + }, + "outputs": [], + "source": [ + "from pyannote.metrics.diarization import DiarizationErrorRate\n", + "from pyannote.audio.pipelines.utils.hook import ProgressHook\n", + "\n", + "metric = DiarizationErrorRate()\n", + "\n", + "# we use a ProgressHook, which will print progress for each step in the pipeline\n", + "with ProgressHook() as hook:\n", + " # apply pipeline on the mixture file and get diarization prediction\n", + " diarization, sources_hat = pipeline({\"waveform\": mixture, \"sample_rate\": sample_rate}, hook=hook)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p-7xuESbDSKo" + }, + "source": [ + "Remember that we focused on the 1 minute sample starting at `t=750s`? The pipeline does not know about that so we need to shift the segments by that many seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "id": "ybBPwZSGhWkC" + }, + "outputs": [], + "source": [ + "from pyannote.core import Annotation\n", + "\n", + "shifted_diarization = Annotation(uri=uri)\n", + "\n", + "for seg, track, label in diarization.itertracks(yield_label=True):\n", + " shifted_segment = Segment(seg.start + 750., seg.end + 750.)\n", + " shifted_diarization[shifted_segment, track] = label\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "CFYD6cnALXLO" + }, + "source": [ + "We can then display the predicted speaker diarization:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 247 + }, + "id": "fMgDuvzN9W1z", + "outputId": "de06f1b3-e793-46be-8b00-d9537b8c494c" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABjwAAADyCAYAAAD5q2z1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwiklEQVR4nO3deZgdZZk3/m9nD0k6CVkJhiWAbLIEGDGowMuSiBlkICMjIquCMsi4zIuAE0B0BGX09TcODi4TFicuGMEFEBEQkSWsEsM2gYRAGMlGtg4he+r3R+g2nd6T9FKdz+e6zlXnVD311FN1nrqrTt3dVRVFURQBAAAAAAAosS7t3QAAAAAAAICtJeEBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul41GPhwoW54IILsssuu6Rnz54ZPnx4xo0bl4cffjhJsttuu6WioiIVFRXp06dPDjnkkEyZMqVm/i996Us10zd97bPPPnWW9ZOf/CRdu3bNhRdeWGfaH/7wh1RUVGTp0qU1415//fUccMABOfLII7Ns2bKaMvW95s2bV6c9Xbt2zciRI3P++edn8eLFzd4mq1atyoUXXphBgwalb9++mTBhQubPn1+rzJw5czJ+/PjssMMOGTp0aC6++OKsW7eu2cvY3uhndTWnn/3TP/1TDj300PTs2TMHH3xws+veXulndTXVz/785z/ntNNOy8iRI9O7d+/su++++fd///dm1w8AAABA++jWLktdsbDtltVnSItnmTBhQtasWZObb745o0aNyvz583Pfffdl0aJFNWW+/OUv57zzzktVVVW++c1v5h/+4R+y884754gjjkiS7L///rn33ntr1dutW93NPWnSpHzhC1/I9773vXzzm99Mr169GmzXrFmzcvzxx2e//fbLlClT0rt375ppM2bMSGVlZa3yQ4cOrXlf3Z7169fnhRdeyLnnnptly5bllltuadY2+dznPpc777wzU6ZMSf/+/fPpT386p5xySs1F0/Xr12f8+PEZPnx4HnnkkcydOzdnnnlmunfvnquvvrpZy9j2lrThsga2eA79rK6m+lm1c889N4899limT5/erHpb06qq5l9o31q9Knds8Tz6WV1N9bOnnnoqQ4cOzeTJkzNy5Mg88sgjOf/889O1a9d8+tOfbtYyAAAAAGh77ZPw+LehTZfZVr5UtKj40qVL8+CDD+YPf/hDjjrqqCTJrrvumne/+921yvXr1y/Dhw/P8OHD853vfCeTJ0/O7bffXnOBsFu3bhk+fHijy5o9e3YeeeSR3Hrrrbn//vtz22235aMf/Wi9ZadPn55x48blmGOOyc0331znYuPQoUMzYMCABpe1aXt23nnnfPjDH86NN97YaPuqLVu2LJMmTcqPf/zjHHPMMUmSG2+8Mfvuu28effTRvOc978nvfve7PP/887n33nszbNiwHHzwwfnKV76SSy65JF/60pfSo0ePZi1r2zq+DZf1ZItK62d1NaefJcm3v/3tJBv/c6EjJDx+cd5722xZp93yQovK62d1NaefnXvuubXmGTVqVKZOnZrbbrtNwgMAAACgA3NLq8307ds3ffv2zS9/+cusXr26WfN069Yt3bt3z5o1a1q0rBtvvDHjx49P//7987GPfSyTJk2qt9wjjzySo446KhMmTMjkyZPr/cvqlnjllVdy9913NzsJ8dRTT2Xt2rU57rjjasbts88+2WWXXTJ16tQkydSpU3PAAQdk2LBhNWXGjRuXqqqqPPfcc1vV3s5IP6urOf2MltHP6trSfrZs2bLsuGPL/8MGAAAAgLYj4bGZbt265aabbsrNN9+cAQMG5L3vfW+++MUvNviX5GvWrMk111yTZcuW1fy1cJI888wzNRcbq1+f+tSnaqZv2LAhN910Uz72sY8lST7ykY/koYceyuzZs+ss4+STT86JJ56Y6667LhUVFfW24x3veEetZe2///61ple3p3fv3tl9993z3HPP5ZJLLmnWNpk3b1569OhR5y+uhw0bVnNf/Xnz5tVKdlRPr55GbfpZXc3pZ7SMflbXlvSzRx55JLfcckvOP//8Zi0DAAAAgPbRPre06uAmTJiQ8ePH58EHH8yjjz6au+66K9dee23+67/+K2effXaS5JJLLsnEiROzatWq9O3bN1/72tcyfvz4mjr23nvv/PrXv65V76b3pL/nnnuyYsWKfPCDH0ySDB48OMcff3xuuOGGfOUrX6k130knnZRf/OIXefDBB/P+97+/3jY/+OCD6devX83n7t2715pe3Z5Vq1Zl8uTJmTZtWi666KKWbxy2Gf2MtqCfbZ1nn302J510Uq688sqMHTu2VZYBAAAAwLbRPgmPixe0y2JbolevXjn++ONz/PHH5/LLL88nPvGJXHnllTUXCC+++OKcffbZ6du3b4YNG1bnL5V79OiRPffcs8H6J02alMWLF9d6UO+GDRsyffr0XHXVVenS5a//fPO9730vX/jCF3LCCSfkN7/5TY488sg69e2+++6N3vN+0/ZUX8y86qqr6lyMrM/w4cOzZs2aLF26tNYy5s+fX3Mf/eHDh+fxxx+vNd/8+fNrprWPe9ppuc2nn/1Vc/pZR3TyDx5uulA708/+qiX97Pnnn8+xxx6b888/PxMnTmyybgAAAADaV/skPPoMaZfFbo399tsvv/zlL2s+Dx48uNELgI1ZtGhRfvWrX+WnP/1prVu1rF+/Pu973/vyu9/9Lh/4wAdqxldUVOT73/9+unTpkg9+8IO58847ax5AvKUmTpyYY445JhdccEFGjBjRaNlDDz003bt3z3333ZcJEyYkSWbMmJE5c+ZkzJgxSZIxY8bkq1/9ahYsWJChQzc+lP6ee+5JZWVl9ttvv61q65Yb2E7L3XL6WeP9rCPqVVm+5zroZ033s+eeey7HHHNMzjrrrHz1q1/dqvYBAAAA0Dbc0mozixYtyoc//OGce+65OfDAA9OvX788+eSTufbaa3PSSSc1u55169bVuR98RUVFhg0blv/+7//OoEGDcuqpp9b5S+oPfvCDmTRpUq0LhNXzfve7303Xrl1rLhIeffTRNdMXLFiQVatW1Zpn0KBBdW4FU23MmDE58MADc/XVV+e6665rdF369++fj3/84/n85z+fHXfcMZWVlbnooosyZsyYvOc970mSjB07Nvvtt1/OOOOMXHvttZk3b14mTpyYCy+8MD179my0/u2RflZXc/pZksycOTNvvvlm5s2bl5UrV2batGlJNl7Eb+6Dq7cX+lldzelnzz77bI455piMGzcun//852vWvWvXrhkypHwJewAAAIDthYTHZvr27ZvDDz883/rWtzJr1qysXbs2I0eOzHnnnZcvfvGLza7nueeey0477VRrXM+ePbNq1arccMMNOfnkk+t9YO+ECRNyxhln5I033qgzraKiIt/5znfSpUuXjB8/PnfccUdNHXvvvXed8lOnTq11oXhzn/vc53L22WfnkksuyciRIxtdn29961vp0qVLJkyYkNWrV2fcuHH5z//8z5rpXbt2zR133JELLrggY8aMSZ8+fXLWWWfly1/+cqP1bq/0s/o11c+S5BOf+EQeeOCBms+jR49OksyePTu77bZbo/Vvb/Sz+jXVz37+859n4cKFmTx5ciZPnlwzftddd80rr7zSaN0AAAAAtJ+KoiiK9m4EAAAAAADA1ujSdBEAAAAAAICOTcKD/OhHP0rfvn3rfW36EGLYGvoZbUE/AwAAANh+uaUVWb58eebPn1/vtO7du2fXXXdt4xbRGelntAX9DAAAAGD7JeEBAAAAAACUnltaAQAAAAAApSfhAQAAAAAAlF631qp4w4YNef3119OvX79UVFS01mIAAAAAAIASKIoiy5cvz4gRI9Kly7b/f4xWS3i8/vrrGTlyZGtVDwAAAAAAlNBrr72Wd7zjHdu83lZLePTr1y/JxoZXVla21mIAAAAAAIASqKqqysiRI2vyB9taqyU8qm9jVVlZKeEBAAAAAAAkSas9BsNDywEAAAAAgNKT8AAAAAAAAEpPwgMAAAAAACg9CQ8AAAAAAKD0JDwAAAAAAIDSk/AAAAAAAABKT8IDAAAAAAAoPQkPAAAAAACg9CQ8AAAAAACA0pPwAAAAAAAASk/CAwAAAAAAKD0JDwAAAAAAoPQkPAAAAAAAgNKT8AAAAAAAAEpPwgMAAAAAACg9CQ8AAAAAAKD0JDwAAAAAAIDSk/AAAAAAAABKT8IDAAAAAAAoPQkPAAAAAACg9CQ8AAAAAACA0pPwAAAAAAAASk/CAwAAAAAAKD0JDwAAAAAAoPQkPAAAAAAAgNKT8AAAAAAAAEpPwgMAAAAAACg9CQ8AAAAAAKD0urX6EpbPSyor646fOy357WeTD/x/Gz9Xv9/p4FZvUpM2bVtz2rN8bvLk95JB+yR3fy7pNSDZ+bCkz9DkiP+b9Nup+XUc9snmlS+z6nXd5++Sl3+aHDYk6XlWksFbWOGMJP+SZG6SIUneneT8uvUtn5s8/I1k7ZtJj75NfzfTf5rc+alk/HeTAz+ycf7ffSGZeXeyw6Da3/Gb85vuMzPvSW4/LznxB8mex2/hunZ+K5csyMx7f5Y9jzs1S197KY9d/y8Zuv+7M/r0/5veA4duk2UseeWFPHXTNTn07MsycLd960yfO/3hTP2PLyRJxlx0bXY68L3bZLmdSfU23P+UT2butIeyatmivDl/Tv7mE1fWu03rs3LJgrxw+41Jkn1PPGebfb+0ns33nSWvvJBHr5+YiorkoI9+PnOnPZRlf3k5C55/PL0HDs3gdx6U1cuXZcHzj6dn5aB069EjSdKtZ+8c/ql/bXZfae312Br6cevZmu9p077ZUF9rTv3V9axfszJJsmH9uqxbuSLDD3pvRow+KtMm/1t6DxmRqldfzN+cf1V2e+/4lq9oK6tvPVcuWZCnJ38jC55/PIdf8NVtfpxbuXxK1q/8Rl783SHZd/xVWbVsUR69fmKK9WszeO/ROeDvL7SvbI8a+72zTX4LvZHk1iQTsuW/KzqaGUm+meSfk+zdzm2Bhtyd5OokX0xyaDrffthOtqdrRJ1JS68ntkU7kuS2M5OqOcn6tcmHJm0cd8f5yaixyfj/6Ph9bMXDydorkx32TXq8meTSNHxc3Ox8wL7UMS2f16rVt/5/eLzZwAosfC559YGNw03fdwQtbc/yuckDVyVz/pismJcs+p9k+uRk6v/bOK0ldTS3fJlVr+vC55Jnv530/Ek2BqQt9XKSV5KsTvK/SW6rv77lc5NH/1/y1Peb993M+WOyetnGYfX8z0xOVi6s+x03p8/85bFk2asbhzRo5ZKFefbn38nKJQuz6KXpWbl4fl598PasXLJwmy1j2Wszs/CFJ7LstZn1Tl/00vSsrlqc1VWLs+il6dtsuZ1J9TZc9NL0zLjzprz60O1Z9NKfG9ym9Vm5ZGFm3HlTZtx50zb9fmk9m+87y16bmaWvPJ8ls5+v6Qvzpv0xG9asyor5c/Lqg7fXfF75xl+y/PXZWf767CyZ/XyL+kprr8fW0I9bz9Z8T5v2zYbmb0791fVU990V81/L6qrFefXB27PwhSezcvH8LJ7xdNatWpGFLzzZ4na2hfrWc+WShXn1oduzcvH81jnOrX88a95ckxm3/yErlyys2Y7LXnsps+79mX1le9XY751t8lvojSQ/yNb9ruhoXk7yp7eH0FE9nWTF28POuB+2k+3pGlFn0lGub25+zXXhMxuvb617a+M1rjl/TNYsT/7n1nL0sTV/TgYsTXpMTfJMGj8ubhaH7EsdU0P5gm3ELa0AAAAAAIDSk/AAAAAAAABKr/Wf4bFqabKinn9bX7387enLk4r89X19Zdvapm1rTntWLWl82tbW0VlVb+ckSVWSLd0GK7Zstqa+m3WrNg7XrtxYrqHvaNWS5vWZtW9tWTu3U2tWVGXd6lW1Pq+qWrxN6l67cmOfWfvWm/XWuely161euc2W25lUb8N1q1bWHt/ANq3PmhVVtd7bzh3f5vtO9eekbl9osq4W9JVtrakY0BL6cevZmu9p077Z0PzNqX/Teja3bs2a2p9Xr+qQ339967lpv22N49z6tWtr3q9ZUdXodmQ7VN85+Db9LbQ1vys6mhWbDDvLOtH5rN5kWNVYQbZEc68p0TG09HpiW7SjovGipehjaza/ntbYcbGBOFSG9dyerFraqtVXFEVRtEbFVVVV6d+/f5ZdmlT2bI0ldECHXZA8ef3W1XH+U8mIQ7ZNezqq1/+UfP/Qje936p18cr9WWMjkJPs0vNz29H++khw1sb1b0WEtfvm53H3Z37d3MwCALXToOd0z+J1dc/dlq+qdPu6an2fHUfu3catod805F9+q30L/k+RjWzgvsG3V83ucluko1y/ofA67YONwa69ftqUDBiYTRrVwprfjkH2pQ6panfT/WrJs2bJUVlZu8/rd0goAAAAAACg9CQ8AAAAAAKD0JDwAAAAAAIDSa/2Hln/kV8meY+qOf/7W5M4Lkg9ev/EBOtXv95/Q6k1q0qZta0575k9Pfnhc/dPOvDcZduDW1dFZjb8++dPn3/7wn0n22sKK7kvytZbP1tR3c88lybQbk4POTsZe2/B3dOa9yaKXmu4zU7+VPHRNy9u5nfo/E2/IvGcezQu/+n7N5wG77r1N6n7t0d/lyUlX5bBzr8jIMePqTP+fO26uWe6+J52Xff727G2y3M6kehvu+6Hz8sKvf1AzvqFtWp+lr87I/f96bpJt+/3Sejbfd6o/J6nTF5rSkr6yrTUVA1pCP249W/M9bdo3G5q/OfVvWs/mdjvqlLzywG1//Xzk32X0GRe3qJ1tob713LTftsZxbt3qL2fN8geSbNwvls99tcHtyHaovnPwbfpbaGt+V3Q01b9zLk1ybDu3BRry7SS3JzkxyQlJ/rF9m9PZNPeaEh1DS68ntkU7qq+5NqQMfezNm5P8dJMRjR0XX0q9cagM67k9mTk1+dpJrVZ96yc8eg1I+gypO75nv7en99ukbL/6y7a1TdvWnPb0Gtj4tK2to7Pqucl3n8okW7oN+mzZbE19N916bRx2772xXEPfUa+Bzesz3XfYsnZup3r0qUy3nr1qfe5VueM2qbt77419pvsOfeutc9PlduvZe5sttzOp3obdevWuPb6BbVqfHn0qa723nTu+zfed6s9J3b7QZF0t6CvbWlMxoCX049azNd/Tpn2zofmbU/+m9WyuW48etT/37NUhv//61nPTftsax7mVS7vXvO/Rp7LR7ch2qL5z8G36W2hrfld0NH02GXaWdaLz6bnJcNs/eHa719xrSnQMLb2e2BbtaEoZ+tiaza+nNXZcbCAOlWE9tye9BrRq9W5pBQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKXX+g8t7zu8/vFD9k92PWrjMKn9vr1t3ram9NspOerKZNA+yQu/2PjglZ0PS/oM3TitJXU0t3yZVa/rkP2Td/1TsnpI0nPwVlQ4KsluSeYmGZLk3Unqqa/fTsl7Pp+sfTPp0bfpbb3LkckzP944rJ7/gI8lM+9OdhhU+zuu6NJ0n9n58KT/rhuHNKj3wCF5199fmN4Dh2TQXgem947DMnT/d6f3wG33cKn+I/fMkH3/Jv1H7lnv9EF7HZiebz/AddBeB26z5XYm1dtw0F4HZu/xZ2fVskV5c/6cBrdpfXoPHJK9x59d856Ob/N9p//IPTNgt/1SUZGavrDsLy9nwfOPp/fAoRn8zoOyevmyLHj+8fSsHFTzkOduPXu3qK+09npsDf249WzN97Rp32xo/ubUX13P+jUrkyQb1q/LupUrMvyg92bIvoflL0/dn95DRqTq1RczZN/DWtzOtlDfevYeOCS7vu/ELHj+8dY5znV9d3r0/WP2PvE96T1wSCq6dMmA3fZLsX5tBu892r6yvWrs9842+S00OMl5qfd3QGmNSnLI20PoqEYnuevtYWfcD9vJ9nSNqDNp6fXEtmrHkAOSqjnJ+rV/vcY1fXIyamw5+liPg5KlA5Id9k16vJnGj4ubxSH7UsfUUL5gG6koiqJojYqrqqrSv3//LFu2LJWVla2xCAAAAAAAoCRaO2/gllYAAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOm1QcJjUQPjZyQ5/+3hpu/Zrix/Nvn1+5P/+ptk7rRWXtbc5P4vbRy2opVLFuTx71+Z3038SJa88kKrLqszWrlkQZ6Zcl1WLlnQ3k2BknkjyffeHrbmPDSpOcebNjomdQqNbasOvR2bs39Vl5mR5Ook5yTL70ju/9uN50ibe/O55Onjkkm7J3Pvf3tk9Xn03dny8+k3knzr7dfWxoPq9jwa8YW2007Hs62NQcvnJr/+ZPJfY1r/txBtr6n+MXda8oMxye2fSmbek9x4dPn6QYc+DpecbUur6+i/BWck+UiSY5PlJyX3f3rL9gf70napHRMeLyf509vDTd+zXVk+I/nTQ8n/PpksfK6VlzU3eeCqNkh4LMys+36WRS/9Octem9mqy+qMVi5ZmGd//p2sXLKwvZsCJfNGkh+k5QmPls5Dk5pzvGmjY1Kn0Ni26tDbsTn7V3WZl5PcluSZZPnjyQN3bjxH2tzKF5Ous5LXXkkWPvn2yOrz6Kez5efTbyT50duvrY0H1e15LuILbaedjmdbG4OWz03+9P3kfx9t/d9CtL2m+sfC55K/PJo89b3kL48lrz5Qvn7QoY/DJWfb0uo6+m/Bl5PMTLIsWf5S8sB3tjzhYV/a7rilFQAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKXXrfUXUZVkST3jV2w2rH5fX1k6r02+/1XLkxWt+NyGVW3ft9a+9WZWVS1u8+WW2ZoVVe3dBCi5ho67DZWl1axa0vBxrR2OSaVX3/YsxXZsbJ+sbx9cvXGwqqru+q5evg3b1VZaEpNgS7Xz8ayxeN/UfHR+DfWPUsb0BmzpPkDDxAfaTEc9V1tRd9SWxBr70napDRIe/5ykayPTv7bZ+681VJBO6a2/vv3NBRtfnciTN3w5T97w5fZuBrBd+cf2bgDVfnhce7egcynt9mzpPnn7xsEPz607aafeyZhhW92itiUmsR0obXyiTWwP/WN7WEfotEp0ribW0ExuaQUAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDptcEzPL6ZZHQ94+/Lxud1XPr25+r3x7Z+k+hAbk9y1sa3H7w+2X9C6y1q/vQ2v9/fYedekZFjxrXpMstu6aszcv+/1nPfcqCZ/jPJXs0s+1JKdc/Wsjnz3mTYgfVPa4djUunVtz1LsR0b2yfr2wdPTPJCcuYNybC/rT1pyV3J4iu3eQtbV0tiEmypdj6eNRbvG1OKGMZWa6h/PH9rcmcneYbllu4DNEx8oM101HO16uvGm9iSWGNf2i61QcKjMsnAesb32WxY/b6+snRem3z/vfolfYa03qJ6tX3f6r5D3/Sq3LHNl1tmPfpUtncToOQaOu42VJZW02tgw8e1djgmlV5927MU27GxfbK+fbDnxkGvyrrr+1a/bdiuttKSmARbqp2PZ43F+6bmo/NrqH/0LGNMb8CW7gM0THygzXTUc7U+dUdtSayxL22X3NIKAAAAAAAoPQkPAAAAAACg9CQ8AAAAAACA0muDZ3gMamD8qCSHvD3MZu/ZbvTbOznkfcmCVcmQ/Vt5WTslR125cdiKeg8ckj2OPTVL58xI/5F7tuqyOqPeA4fkXX9/YXoPdA9YaJnBSc57e9ia89Ck5hxv2uiY1Ck0tq069HZszv5VXWZUklOSvJT0e3dy1PiN50ib6/3OZP0eycgkQw57e2T1OfXoJC9ny86nByc5fZP3W6O6PftHfKHttNPxbGtjUL+dkkPOTxZMb/3fQrS9pvrHkP2Tnd+TDD8o2fnwZNejytcPOvRxuORsW1pdR/8tOCrJnkkWJv12To46Zsv2B/vSdqmiKIqiNSquqqpK//79s2zZslRWeigqAAAAAABsz1o7b+CWVgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAHc6MJOcnuTvJx95+zWjXFgEAAHR03dq7AQAAwOZeTvKnJKOS/M8m4/ZutxYBAAB0dP7DAwAAAAAAKD0JDwAAAAAAoPQkPAAAAAAAgNKT8AAAAAAAAEpPwgMAAAAAACg9CQ8AAAAAAKD0JDwAAAAAAIDSk/AAAAAAAABKT8IDAAAAAAAoPQkPAAAAAACg9CQ8AAAAAACA0pPwAAAAAAAASk/CAwAAAAAAKL1u7d0AAABgc6OSHJJkdJJnNxkHAABAQyQ8AACgw9k7yffffj+uPRsCAABQGm5pBQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAAAAAJSehAcAAAAAAFB6Eh4AAAAAAEDpSXgAAAAAAAClJ+EBAAAAAACUnoQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKXXrbUqLooiSVJVVdVaiwAAAAAAAEqiOl9QnT/Y1lot4bFo0aIkyciRI1trEQAAAAAAQMksWrQo/fv33+b1tlrCY8cdd0ySzJkzp1UaDnR8VVVVGTlyZF577bVUVla2d3OAdiIWAOIAIA4AiVgAJMuWLcsuu+xSkz/Y1lot4dGly8bHg/Tv318Ag+1cZWWlOACIBYA4AIgDQBKxAPhr/mCb19sqtQIAAAAAALQhCQ8AAAAAAKD0Wi3h0bNnz1x55ZXp2bNnay0C6ODEASARCwBxABAHgI3EAqC140BFURRFq9QMAAAAAADQRtzSCgAAAAAAKD0JDwAAAAAAoPQkPAAAAAAAgNKT8AAAAAAAAEqvRQmP3XbbLRUVFXVeF154YZLk6KOPrjPtU5/6VK065syZk/Hjx2eHHXbI0KFDc/HFF2fdunXbbo2AVtVUHEiSqVOn5phjjkmfPn1SWVmZI488MitXrqyZvnjx4px++umprKzMgAED8vGPfzxvvvlme6wOsIUaiwWvvPJKvdMqKioyZcqUmjqcE0C5NXVOMG/evJxxxhkZPnx4+vTpk0MOOSS33nprrTqcE0C5NRUHZs2alZNPPjlDhgxJZWVlTj311MyfP79WHeIAlN/69etz+eWXZ/fdd0/v3r2zxx575Ctf+UqKoqgpUxRFrrjiiuy0007p3bt3jjvuuLz00ku16hEPoLyaEwduu+22jB07NoMGDUpFRUWmTZtWp55Vq1blwgsvzKBBg9K3b99MmDChzrlDU1qU8HjiiScyd+7cmtc999yTJPnwhz9cU+a8886rVebaa6+tteLjx4/PmjVr8sgjj+Tmm2/OTTfdlCuuuKJFjQbaT1NxYOrUqfnABz6QsWPH5vHHH88TTzyRT3/60+nS5a/h5vTTT89zzz2Xe+65J3fccUf++Mc/5vzzz2+X9QG2TGOxYOTIkbWmzZ07N1dddVX69u2bE044IYlzAugMmjonOPPMMzNjxoz8+te/zjPPPJNTTjklp556ap5++umaOpwTQLk1FgdWrFiRsWPHpqKiIr///e/z8MMPZ82aNTnxxBOzYcOGmjrEASi/r3/967n++utz3XXX5YUXXsjXv/71XHvttfmP//iPmjLXXnttvv3tb+e73/1uHnvssfTp0yfjxo3LqlWrasqIB1BezYkDK1asyPve9758/etfb7Cez33uc7n99tszZcqUPPDAA3n99ddzyimntKwxxVb4zGc+U+yxxx7Fhg0biqIoiqOOOqr4zGc+02D53/zmN0WXLl2KefPm1Yy7/vrri8rKymL16tVb0xSgnWweBw4//PBi4sSJDZZ//vnniyTFE088UTPurrvuKioqKoq//OUvrd5eoHVsHgs2d/DBBxfnnntuzWfnBND5bB4H+vTpU/zwhz+sVWbHHXcsfvCDHxRF4ZwAOqNN48Ddd99ddOnSpVi2bFnN9KVLlxYVFRXFPffcUxSFOACdxfjx42ud6xdFUZxyyinF6aefXhRFUWzYsKEYPnx48W//9m8105cuXVr07Nmz+MlPflIUhXgAZddUHNjU7NmziyTF008/XWv80qVLi+7duxdTpkypGffCCy8USYqpU6c2uy1b/AyPNWvWZPLkyTn33HNTUVFRM/5HP/pRBg8enHe961257LLL8tZbb9VMmzp1ag444IAMGzasZty4ceNSVVWV5557bkubArSTzePAggUL8thjj2Xo0KE54ogjMmzYsBx11FF56KGHauaZOnVqBgwYkMMOO6xm3HHHHZcuXbrksccea4/VALZSQ+cE1Z566qlMmzYtH//4x2vGOSeAzqW+OHDEEUfklltuyeLFi7Nhw4b89Kc/zapVq3L00UcncU4Anc3mcWD16tWpqKhIz549a8r06tUrXbp0qfl9IA5A53DEEUfkvvvuy4svvpgk+fOf/5yHHnqo5r+7Z8+enXnz5uW4446rmad///45/PDDM3Xq1CTiAZRdU3GgOZ566qmsXbu2VqzYZ599sssuu9TEiubo1vxm1/bLX/4yS5cuzdlnn10z7qMf/Wh23XXXjBgxItOnT88ll1ySGTNm5Lbbbkuy8T6+m17YSFLzed68eVvaFKCdbB4HXn755STJl770pXzjG9/IwQcfnB/+8Ic59thj8+yzz2avvfbKvHnzMnTo0Fr1dOvWLTvuuKM4ACVV3znBpiZNmpR99903RxxxRM045wTQudQXB372s5/lH/7hHzJo0KB069YtO+ywQ37xi19kzz33TBLnBNDJbB4H3vOe96RPnz655JJLcvXVV6coilx66aVZv3595s6dm0QcgM7i0ksvTVVVVfbZZ5907do169evz1e/+tWcfvrpSf56fl/f+X/1NPEAyq2pONAc8+bNS48ePTJgwIBa4zeNFc2xxQmPSZMm5YQTTsiIESNqxm16X70DDjggO+20U4499tjMmjUre+yxx5YuCuigNo8D1ffi/eQnP5lzzjknSTJ69Ojcd999ueGGG3LNNde0W1uB1lPfOUG1lStX5sc//nEuv/zydmgZ0FbqiwOXX355li5dmnvvvTeDBw/OL3/5y5x66ql58MEHc8ABB7Rja4HWsHkcGDJkSKZMmZILLrgg3/72t9OlS5ecdtppOeSQQ2o93w8ov5/97Gf50Y9+lB//+MfZf//9M23atHz2s5/NiBEjctZZZ7V384A20JHiwBYlPF599dXce++9Nf+50ZDDDz88STJz5szsscceGT58eB5//PFaZaqfsj58+PAtaQrQTuqLAzvttFOSZL/99qtVdt99982cOXOSbNzXFyxYUGv6unXrsnjxYnEASqipc4Kf//zneeutt3LmmWfWGu+cADqP+uLArFmzct111+XZZ5/N/vvvnyQ56KCD8uCDD+Y73/lOvvvd7zongE6kofOBsWPHZtasWXnjjTfSrVu3DBgwIMOHD8+oUaOS+G0AncXFF1+cSy+9NB/5yEeSbPwj6FdffTXXXHNNzjrrrJr9ef78+TXXDao/H3zwwUnEAyi7puJAcwwfPjxr1qzJ0qVLa/2Xx/z581sUB7bozypuvPHGDB06NOPHj2+03LRp05L89SLomDFj8swzz9QKYPfcc08qKyvrXCAFOrb64sBuu+2WESNGZMaMGbXKvvjii9l1112TbIwDS5cuzVNPPVUz/fe//302bNhQkyQFyqOpc4JJkyblQx/6UIYMGVJrvHMC6DzqiwPVz/Hb/K+4u3btWvMfoc4JoPNo6nxg8ODBGTBgQH7/+99nwYIF+dCHPpREHIDO4q233mr0mL/77rtn+PDhue+++2qmV1VV5bHHHsuYMWOSiAdQdk3FgeY49NBD071791qxYsaMGZkzZ05NrGiWFj1uvSiK9evXF7vssktxySWX1Bo/c+bM4stf/nLx5JNPFrNnzy5+9atfFaNGjSqOPPLImjLr1q0r3vWudxVjx44tpk2bVvz2t78thgwZUlx22WUtbQbQjhqKA0VRFN/61reKysrKYsqUKcVLL71UTJw4sejVq1cxc+bMmjIf+MAHitGjRxePPfZY8dBDDxV77bVXcdppp7XlKgDbQGOxoCiK4qWXXioqKiqKu+66q8405wTQOTQUB9asWVPsueeexfvf//7iscceK2bOnFl84xvfKCoqKoo777yzppxzAii/xs4HbrjhhmLq1KnFzJkzi//+7/8udtxxx+Lzn/98rTLiAJTfWWedVey8887FHXfcUcyePbu47bbbisGDBxdf+MIXasp87WtfKwYMGFD86le/KqZPn16cdNJJxe67716sXLmypox4AOXVnDiwaNGi4umnny7uvPPOIknx05/+tHj66aeLuXPn1pT51Kc+Veyyyy7F73//++LJJ58sxowZU4wZM6ZFbWlxwuPuu+8ukhQzZsyoNX7OnDnFkUceWey4445Fz549iz333LO4+OKLi2XLltUq98orrxQnnHBC0bt372Lw4MHFP//zPxdr165taTOAdtRQHKh2zTXXFO94xzuKHXbYoRgzZkzx4IMP1pq+aNGi4rTTTiv69u1bVFZWFuecc06xfPnytmg6sA01FQsuu+yyYuTIkcX69evrne6cAMqvsTjw4osvFqecckoxdOjQYocddigOPPDA4oc//GGtMs4JoPwaiwOXXHJJMWzYsKJ79+7FXnvtVXzzm98sNmzYUKuMOADlV1VVVXzmM58pdtlll6JXr17FqFGjin/5l38pVq9eXVNmw4YNxeWXX14MGzas6NmzZ3HsscfWiRviAZRXc+LAjTfeWCSp87ryyitryqxcubL4x3/8x2LgwIHFDjvsUJx88sm1EiLNUVEURdH8/wcBAAAAAADoeLboGR4AAAAAAAAdiYQHAAAAAABQehIeAAAAAABA6Ul4AAAAAAAApSfhAQAAAAAAlJ6EBwAAAAAAUHoSHgAAAAAAQOlJeAAAAAAAAKUn4QEAAGy1s88+O3/3d3/X3s0AAAC2Y93auwEAAEDHVlFR0ej0K6+8Mv/+7/+eoijaqEUAAAB1SXgAAACNmjt3bs37W265JVdccUVmzJhRM65v377p27dvezQNAACghltaAQAAjRo+fHjNq3///qmoqKg1rm/fvnVuaXX00Ufnoosuymc/+9kMHDgww4YNyw9+8IOsWLEi55xzTvr165c999wzd911V61lPfvssznhhBPSt2/fDBs2LGeccUbeeOONNl5jAACgjCQ8AACAVnHzzTdn8ODBefzxx3PRRRflggsuyIc//OEcccQR+dOf/pSxY8fmjDPOyFtvvZUkWbp0aY455piMHj06Tz75ZH77299m/vz5OfXUU9t5TQAAgDKQ8AAAAFrFQQcdlIkTJ2avvfbKZZddll69emXw4ME577zzstdee+WKK67IokWLMn369CTJddddl9GjR+fqq6/OPvvsk9GjR+eGG27I/fffnxdffLGd1wYAAOjoPMMDAABoFQceeGDN+65du2bQoEE54IADasYNGzYsSbJgwYIkyZ///Ofcf//99T4PZNasWXnnO9/Zyi0GAADKTMIDAABoFd27d6/1uaKiota4ioqKJMmGDRuSJG+++WZOPPHEfP3rX69T10477dSKLQUAADoDCQ8AAKBDOOSQQ3Lrrbdmt912S7dufqoAAAAt4xkeAABAh3DhhRdm8eLFOe200/LEE09k1qxZufvuu3POOedk/fr17d08AACgg5PwAAAAOoQRI0bk4Ycfzvr16zN27NgccMAB+exnP5sBAwakSxc/XQAAgMZVFEVRtHcjAAAAAAAAtoY/kwIAAAAAAEpPwgMAAAAAACg9CQ8AAAAAAKD0JDwAAAAAAIDSk/AAAAAAAABKT8IDAAAAAAAoPQkPAAAAAACg9CQ8AAAAAACA0pPwAAAAAAAASk/CAwAAAAAAKD0JDwAAAAAAoPT+f+6M5uebzZLHAAAAAElFTkSuQmCC", + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "shifted_diarization" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "utIc_ybRL3I_" + }, + "source": [ + "Finally, compute the DER and its components:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 175 + }, + "id": "J9AaI0oxMBrz", + "outputId": "e080a19e-5f67-4453-a494-361945573c5f" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'confusion': 3.531999999999698,\n", + " 'total': 69.32000000000005,\n", + " 'correct': 62.87199999999996,\n", + " 'missed detection': 2.9160000000003947,\n", + " 'false alarm': 1.9320000000000164,\n", + " 'diarization error rate': 0.12088863242931482}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metric(annotations, shifted_diarization, detailed=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "h7wu0sh6T2s2" + }, + "source": [ + "## Speech transcription of the separated source\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J9ZG3Y27MOkv" + }, + "source": [ + "We now switch to the evaluation of the speech separation part through the spectrum of its impact on automatic speech recognition.\n", + "\n", + "Here, we apply [Whisper](https://github.com/openai/whisper) pretrained speech-to-text model to each separated source. \n", + "The final transcription is evaluated by comparison with the reference (manual) transcriptionusing [Concatenated minimum-Permutation Word Error Rate](https://arxiv.org/abs/2004.09249) (cpWER), available in the [MeetEval](https://github.com/fgnt/meeteval) toolkit." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cvSiXpwlOMYX" + }, + "source": [ + "We start by instantiating the pipeline with hyper-parameters optimized for the speech-to-text task." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "y-XE8VwhgFit", + "outputId": "78188c54-8ae1-491b-a8c0-2fd583d2b13a" + }, + "outputs": [], + "source": [ + "pipeline.instantiate(\n", + " {\n", + " \"segmentation\": {\"min_duration_off\": 0.0, \"threshold\": 0.82},\n", + " \"clustering\": {\n", + " \"method\": \"centroid\",\n", + " \"min_cluster_size\": 15,\n", + " \"threshold\": 0.68,\n", + " },\n", + " \"separation\": {\n", + " \"leakage_removal\": True,\n", + " \"asr_collar\": 0.32,\n", + " }\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MZCdoSTLO57A" + }, + "source": [ + "Reference transcription is loaded and normalized with Whisper built-in normalization function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jVAXMeDvOpCv" + }, + "outputs": [], + "source": [ + "import whisperx\n", + "from whisper.normalizers import EnglishTextNormalizer\n", + "\n", + "normalizer = EnglishTextNormalizer()\n", + "\n", + "references = [\n", + " \"So simplification of symbols you could think of. Mm-hmm. Menu, alright. Uh uh Right, I was thinking on the same lines you, instead of having too many b buttons and make it complicated for the user, may h maybe have an L_C_D_ di display or something like that, like a mobile, yeah and with menus. And if it's s somewhat similar to what you have on mobile phone, people might find it easier to browse\",\n", + " \"button or something like that. Yeah. Um. When they're when you've got the main things on the front of it and a section opens up or something to the other functions where you can do sound or options kind of recording, things like that inside it. 'Cause it doesn't make when you pick it up it doesn't make it really complicated to look at, it's obvious what you're doing, um.\",\n", + " \"Mm. Yeah.\",\n", + " \". And symbols that you don't necessarily understand, symbols you're meant to understand that you don't. Oh yeah. Mm-hmm. Mm. Mm-hmm. Actually that just raises a point, I wonder what our design people think, but you know on a mobile phone, you can press a key and it gives you a menu, it's got a menu display, I wonder if incorporating that into the design of a remote control might be useful, so you've got a little L_C_D_ display. With menus, yeah, yeah.\",\n", + "]\n", + "\n", + "references_formatted = []\n", + "for i in range(len(references)):\n", + " if references[i] != \"\":\n", + " references_formatted.append(normalizer(references[i]))\n", + "\n", + "references = references_formatted" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "94yALajRPdS7" + }, + "source": [ + "Apply the pipeline on the mixture to get separated sources." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 102, + "referenced_widgets": [ + "cb998feff752458995c1d564d4fef3f2", + "09eff7052a5e43229c116e1432a706c4" + ] + }, + "id": "1-fx2mbAPdBX", + "outputId": "f2cae346-b747-43d3-8c62-7e99c062c08d" + }, + "outputs": [], + "source": [ + "from pyannote.audio.pipelines.utils.hook import ProgressHook\n", + "\n", + "with ProgressHook() as hook:\n", + " diarization, sources = pipeline({\"waveform\": mixture, \"sample_rate\": sample_rate}, hook=hook)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hgkVrUVWEUzX" + }, + "source": [ + "Listen to one of the separated source:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 61 + }, + "id": "BSBFlQkCtWTo", + "outputId": "c8196394-0eb4-44b0-a03f-b84f8b0ed710" + }, + "outputs": [], + "source": [ + "from IPython.display import Audio, display\n", + "\n", + "source_1 = sources[:, 1]\n", + "display(Audio(source_1, rate=sample_rate))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-rDAcP6pPuhw" + }, + "source": [ + "Get transcription for each predicted source by applying `Whisper`:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 234, + "referenced_widgets": [ + "3019ebb78e664cfaba0b59916281b8b5", + "b1255bd58957449a8058d767545e5107", + "226aa8a0e909453c859ac2a54d6f60a5", + "ce35798f9da44ede822b630e3dd6479e", + "af33a938bc1d4468bfd2688f883d5039", + "1c32657deab94066b49b9cdd9eaa154b", + "5c9068a6baa4447fbbde95fbe273e216", + "da708345954047dfb12a7b436c09873d", + "1f3bc8e07e5c4136acfb5ba7e9a1ddb3", + "c18e7ca8c42349938c01fac2eb54dbce", + "46da1d6ac681473786917f10df3d60c1", + "215a623bd8024f4da99944ee8b410860", + "5f590a1431f14dcdbd6fd7f08e537dd8", + "3cb74cfcfc9c4d4597ce9764be019563", + "12be8f2cda5c4ecabf3e2989555001e5", + "5f8932c839b54b6ca010d7d70f78a2c6", + "c7ecf3bb64c945ee93732d934be45208", + "9b0d759beaf74757bdfcdda580115896", + "b67e27a21e864c25bbee00c104320167", + "9f18022fd662422da124616484fddfa6", + "b3dbb2c8b9b04e199a73ec19398bbfe5", + "2e04c65d4e53427cac3fb9684db924be", + "20907fb431c24f2db5418ebd79b531d7", + "0ffcd84706ba4ed998212d8879983457", + "1547a1fb290846a092dbf0cca10fe893", + "bd3609f340374f67a2228f6ad54e9553", + "efce6cdfc3e04d0c970f353f9f41f077", + "41b988f7539a4fdaacb40de7f20045b6", + "51135aa623584eb59d9da5ca7a7b20cb", + "71f7fc3b89554771b4552293c5cbf68e", + "c1b479c36bb2406caabe8ae8ec20b8f2", + "cf814684d4444eebb738f4715654a9a0", + "f1e1cec22ca34ccc9dab3b7504233079", + "82b078fa14104ddebed53eb869f56655", + "1f0b99f68c4d4677a2d9464b2236c4c8", + "b3fa8e4dc92c4694bed7bc95810a0f3b", + "feecd9ce455a4950b5239e9ee7c965a8", + "06292a65baa243f3814cde1569a4c8b6", + "3fdceba69a604e5dae76dd15fc69b7cd", + "784b8532b47c4c89816b4572ff3c211d", + "4a2d0868aeb6457783177d626ecf12b5", + "7f9db0c5236c41c6a749dd0c6bb63282", + "1d44f07ce2a94e16aaacfd353bf4e367", + "bfb217b172a64c7f8f9b9dd2153667fd" + ] + }, + "id": "zm5IbZDUQDCy", + "outputId": "21a10a9d-a0ff-49c5-bbed-e06d959d775d" + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "compute_type = \"float32\" # \"float16\"\n", + "modelx = whisperx.load_model(\"small.en\", device=device, compute_type=compute_type)\n", + "\n", + "def apply_whisperx(audio, sample_rate=16000):\n", + " audio = np.float32(audio / np.max(np.abs(audio)))\n", + " result = modelx.transcribe(audio, batch_size=16, language=\"en\")\n", + " output = result[\"segments\"] # after alignment\n", + " text = \"\"\n", + " for utterance in output:\n", + " text = text + \" \" + utterance[\"text\"]\n", + " return normalizer(text)\n", + "\n", + "predictions = []\n", + "for i in range(sources.data.shape[1]):\n", + " print(f'Processing source #{i+1}...')\n", + " text = apply_whisperx(sources.data[:, i])\n", + " predictions.append(text)\n", + "\n", + "# only consider 10 longest predictions to save computation time\n", + "predictions = sorted(predictions, key=len, reverse=True)[:10]\n", + "\n", + "if len(predictions) < len(references):\n", + " predictions = predictions + [\"\"] * (len(references) - len(predictions))\n", + "\n", + "# normalize prediction\n", + "for i in range(len(predictions)):\n", + " predictions[i] = normalizer(predictions[i])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sX2vvWDtQ79S" + }, + "source": [ + "Finally, compute `cpWER` and display its component. \n", + "\n", + "It is necessary to take into account all possible permutations, since the order of sources predicted by the pipeline does not necessarily correspond to the order of sources in the reference." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true, + "id": "w9GTpHtnWagw" + }, + "outputs": [], + "source": [ + "from itertools import permutations\n", + "\n", + "from meeteval.wer.wer.cp import cp_word_error_rate\n", + "\n", + "min_error_rate = 1.0\n", + "\n", + "all_permutations = list(permutations(predictions, len(references)))\n", + "\n", + "# compute cpwer on each permutation and keep the best one\n", + "for permutation in all_permutations:\n", + " cpwer = cp_word_error_rate(references, list(permutation))\n", + " if cpwer.error_rate < min_error_rate:\n", + " min_error_rate = cpwer.error_rate\n", + " min_cpwer = cpwer\n" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "BwRnxzCHgFiv", + "outputId": "e681ef63-950c-4fb8-8d06-e92fedaf5e80" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpWER breakdown\n", + "Substitution rate: 3.0%\n", + "Deletion rate: 14.6%\n", + "Insertion rate: 1.3%\n", + "Total WER: 18.6%\n" + ] + } + ], + "source": [ + "C = cpwer.length - cpwer.errors\n", + "S = cpwer.substitutions\n", + "D = cpwer.deletions\n", + "I = cpwer.insertions\n", + "deletion_rate = D / (C + S + D) * 100\n", + "insertion_rate = I / (C + S + D) * 100\n", + "substitution_rate = S / (C + S + D) * 100\n", + "\n", + "print(\"cpWER breakdown\")\n", + "print(f\"Substitution rate: {substitution_rate:.1f}%\")\n", + "print(f\"Deletion rate: {deletion_rate:.1f}%\")\n", + "print(f\"Insertion rate: {insertion_rate:.1f}%\")\n", + "print(f\"Total WER: {cpwer.error_rate * 100:.1f}%\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_tuHpaYsSUz3" + }, + "source": [ + "Great! We managed to evaluate the joint diarization/separation pipeline for both diarization and subsequent transcription tasks!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mCOjOUneTsBI" + }, + "source": [ + "## Bonus: speaker separation\n", + "\n", + "Here, we evaluate the joint model `ToTaToNet` in terms of separation capacities (applied on the first 5 seconds of the mixture). \n", + "This model provides both diarization and separated sources. \n", + "We rely on [`asteroid`](https://github.com/asteroid-team/asteroid) for evaluation -- a generic audio source separation toolkit providing a bunch of metrics for this task.\n", + "\n", + "We start by loading the clean sources used to generate the mixture (`mixture = source1 + ... + source4`). " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "N-Z9BimrjICK", + "outputId": "9d534fe3-10f9-4488-b44a-7f20b83fdad9" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(3, 80000)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "chunk = Segment(0, 5)\n", + "sources = []\n", + "for i in range(3):\n", + " file = os.environ[\"ASSET_DIR\"] + f\"/sources/source{i}.wav\"\n", + " source, _ = audio.crop(file=file, segment=chunk, duration=5.)\n", + " sources.append(source.squeeze(0).numpy())\n", + "sources = np.array(sources)\n", + "\n", + "sources.shape # (num_speakers, num_samples)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QF6krOLwgFip" + }, + "source": [ + "We apply `ToTaToNet` on the 5 seconds chunk and retrieve both diarization and separated sources." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OC5S0zqzgFiq", + "outputId": "23aeaa52-2fbb-4ef6-bb64-07fd95bff71c" + }, + "outputs": [], + "source": [ + "from pyannote.audio.core.model import Model\n", + "\n", + "# apply totatonet on the first five seconds\n", + "totatonet = Model.from_pretrained(\"pyannote/separation-ami-1.0\", use_auth_token=True)\n", + "totatonet.to(device)\n", + "\n", + "cropped_mixture = mixture[:, :sample_rate * 5].unsqueeze(0)\n", + "diarization, sources_hat = totatonet(cropped_mixture.to(device))\n", + "\n", + "sources_hat.shape # (batch_size, num_samples, num_sources)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RXDLy0wlgFir" + }, + "source": [ + "Sources produced by the model can be in any order. Therefore, we compute the separation metrics on all possible permutations, and retain the permutation giving the best performance (here in terms of SI-SDR, but this could be any other metric proposed by `asteroid`)." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "id": "FAdYKxMWgFis" + }, + "outputs": [], + "source": [ + "# get all possible permutations\n", + "sources_hat = sources_hat.squeeze(0).cpu().detach().numpy()\n", + "sources_hat = sources_hat.T\n", + "\n", + "all_permutations = list(permutations(sources_hat, 3))" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "id": "e5_LRNN6gFis" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'input_si_sdr': -65.86242802937825,\n", + " 'input_sdr': -28.623883950224727,\n", + " 'input_sir': -4.12515450799696,\n", + " 'input_sar': -22.447442779085623,\n", + " 'input_stoi': -0.03292179880781978,\n", + " 'input_pesq': 1.0474077065785725,\n", + " 'si_sdr': -45.3333740234375,\n", + " 'sdr': -23.064030295600308,\n", + " 'sir': 2.092357678563547,\n", + " 'sar': -20.517320589163734,\n", + " 'stoi': -0.03345908977251077,\n", + " 'pesq': 1.067254622777303}" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# compute metrics on each permutation, and keep the best permutation in terms of SI-SDR\n", + "\n", + "from asteroid.metrics import get_metrics\n", + "import numpy as np\n", + "\n", + "\n", + "best_si_sdr = -1000\n", + "metrics_dict = {}\n", + "cropped_mixture = cropped_mixture.squeeze().cpu().numpy()\n", + "\n", + "for permutation in all_permutations:\n", + " metrics = get_metrics(\n", + " metrics_list=\"all\",\n", + " mix=cropped_mixture,\n", + " clean=sources,\n", + " estimate=np.array(permutation)\n", + " )\n", + " si_sdr = metrics[\"si_sdr\"]\n", + " if si_sdr > best_si_sdr:\n", + " best_si_sdr = si_sdr\n", + " metrics_dict = metrics\n", + "\n", + "metrics_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "c6Es0xiISFsc", + "outputId": "9ace963b-a537-46d9-c6a0-3a82aabbf269" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SI SDR improvement = 20.52905400594075 dB\n" + ] + } + ], + "source": [ + "print(\"SI SDR improvement = \", metrics_dict[\"si_sdr\"] - metrics_dict[\"input_si_sdr\"], \"dB\")" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "gpuType": "T4", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.0" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "00cb4ca89fa2438fa9278e093fb60313": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "06292a65baa243f3814cde1569a4c8b6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "06d5eeadd70643c08a61c4155e2f395b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_33434e4d7f884a6795b9c25266ea04aa", + "placeholder": "​", + "style": "IPY_MODEL_88f85747a55045afa6d17f728323e8e1", + "value": "\nPro Tip: If you don't already have one, you can create a dedicated\n'notebooks' token with 'write' access, that you can then easily reuse for all\nnotebooks. " + } + }, + "08329896939f403aa17b0a2dbb8c08b6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "09eff7052a5e43229c116e1432a706c4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0ffcd84706ba4ed998212d8879983457": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_41b988f7539a4fdaacb40de7f20045b6", + "placeholder": "​", + "style": "IPY_MODEL_51135aa623584eb59d9da5ca7a7b20cb", + "value": "vocabulary.txt: 100%" + } + }, + "12be8f2cda5c4ecabf3e2989555001e5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b3dbb2c8b9b04e199a73ec19398bbfe5", + "placeholder": "​", + "style": "IPY_MODEL_2e04c65d4e53427cac3fb9684db924be", + "value": " 2.13M/2.13M [00:00<00:00, 2.59MB/s]" + } + }, + "12eaa5b37d2a446892c0666fe030e4dc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "LabelModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_08329896939f403aa17b0a2dbb8c08b6", + "placeholder": "​", + "style": "IPY_MODEL_c1293083357448de92edc1f4cdac17db", + "value": "Your token has been saved in your configured git credential helpers (store)." + } + }, + "1547a1fb290846a092dbf0cca10fe893": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_71f7fc3b89554771b4552293c5cbf68e", + "max": 422309, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c1b479c36bb2406caabe8ae8ec20b8f2", + "value": 422309 + } + }, + "1c32657deab94066b49b9cdd9eaa154b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1d44f07ce2a94e16aaacfd353bf4e367": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1f0b99f68c4d4677a2d9464b2236c4c8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3fdceba69a604e5dae76dd15fc69b7cd", + "placeholder": "​", + "style": "IPY_MODEL_784b8532b47c4c89816b4572ff3c211d", + "value": "model.bin: 100%" + } + }, + "1f3bc8e07e5c4136acfb5ba7e9a1ddb3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "20907fb431c24f2db5418ebd79b531d7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_0ffcd84706ba4ed998212d8879983457", + "IPY_MODEL_1547a1fb290846a092dbf0cca10fe893", + "IPY_MODEL_bd3609f340374f67a2228f6ad54e9553" + ], + "layout": "IPY_MODEL_efce6cdfc3e04d0c970f353f9f41f077" + } + }, + "215a623bd8024f4da99944ee8b410860": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_5f590a1431f14dcdbd6fd7f08e537dd8", + "IPY_MODEL_3cb74cfcfc9c4d4597ce9764be019563", + "IPY_MODEL_12be8f2cda5c4ecabf3e2989555001e5" + ], + "layout": "IPY_MODEL_5f8932c839b54b6ca010d7d70f78a2c6" + } + }, + "225b9920b656474e91a1ce543b4047ee": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": "center", + "align_self": null, + "border": null, + "bottom": null, + "display": "flex", + "flex": null, + "flex_flow": "column", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "50%" + } + }, + "226aa8a0e909453c859ac2a54d6f60a5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_da708345954047dfb12a7b436c09873d", + "max": 2657, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1f3bc8e07e5c4136acfb5ba7e9a1ddb3", + "value": 2657 + } + }, + "242237efa34a48f9bc6008efaa218804": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "28fcf390fef44363a59d83f3f25a6464": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "29936da4bc1b45f89373195f7ea31b25": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "CheckboxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "CheckboxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "CheckboxView", + "description": "Add token as git credential?", + "description_tooltip": null, + "disabled": false, + "indent": true, + "layout": "IPY_MODEL_fe72a04e3b1c47319a5ea958ac09a0d6", + "style": "IPY_MODEL_ec67edb58a274c278c3680d2e61811dc", + "value": true + } + }, + "2a41eee869d54fc8bea15f63ea95330d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2e04c65d4e53427cac3fb9684db924be": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "3019ebb78e664cfaba0b59916281b8b5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_b1255bd58957449a8058d767545e5107", + "IPY_MODEL_226aa8a0e909453c859ac2a54d6f60a5", + "IPY_MODEL_ce35798f9da44ede822b630e3dd6479e" + ], + "layout": "IPY_MODEL_af33a938bc1d4468bfd2688f883d5039" + } + }, + "33434e4d7f884a6795b9c25266ea04aa": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "37d380c51c3f4f40b1be04a8f0db10f6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "LabelModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_71a7142772e4420a8f3d16ff13efd637", + "placeholder": "​", + "style": "IPY_MODEL_242237efa34a48f9bc6008efaa218804", + "value": "Connecting..." + } + }, + "3cb74cfcfc9c4d4597ce9764be019563": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b67e27a21e864c25bbee00c104320167", + "max": 2128466, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_9f18022fd662422da124616484fddfa6", + "value": 2128466 + } + }, + "3fdceba69a604e5dae76dd15fc69b7cd": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "41b988f7539a4fdaacb40de7f20045b6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "46da1d6ac681473786917f10df3d60c1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4a2d0868aeb6457783177d626ecf12b5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4ed0e4d0eded49f7b03edf77658cc78f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "VBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "VBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "VBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c7637c6cbdbe48ef85b79c3375842c3e", + "IPY_MODEL_12eaa5b37d2a446892c0666fe030e4dc", + "IPY_MODEL_9606de132aa44042b71aa85a7d55211c", + "IPY_MODEL_bdd30894d83746aabb77f291c222060b" + ], + "layout": "IPY_MODEL_225b9920b656474e91a1ce543b4047ee" + } + }, + "51135aa623584eb59d9da5ca7a7b20cb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5426b1771abd4cfd96c7384f084fda51": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5c9068a6baa4447fbbde95fbe273e216": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5f590a1431f14dcdbd6fd7f08e537dd8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c7ecf3bb64c945ee93732d934be45208", + "placeholder": "​", + "style": "IPY_MODEL_9b0d759beaf74757bdfcdda580115896", + "value": "tokenizer.json: 100%" + } + }, + "5f8932c839b54b6ca010d7d70f78a2c6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "66ddb462721f45c09b384b8c49993d8b": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_5426b1771abd4cfd96c7384f084fda51", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
segmentation         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:12\nseparations          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nspeaker_counting     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nembeddings           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:03\ndiscrete_diarization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n
\n", + "text/plain": "segmentation \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:12\u001b[0m\nseparations \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\nspeaker_counting \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\nembeddings \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:03\u001b[0m\ndiscrete_diarization \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "71a7142772e4420a8f3d16ff13efd637": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "71f7fc3b89554771b4552293c5cbf68e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "784b8532b47c4c89816b4572ff3c211d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "7f9db0c5236c41c6a749dd0c6bb63282": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "81d8f69f37324f61a215bc7d47c47381": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "PasswordModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "PasswordModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "PasswordView", + "continuous_update": true, + "description": "Token:", + "description_tooltip": null, + "disabled": false, + "layout": "IPY_MODEL_ec53e214db284c0fbeb2b3e564939fe1", + "placeholder": "​", + "style": "IPY_MODEL_8e37d0ede1584bb7a0f6dbdbeb21dc74", + "value": "" + } + }, + "82b078fa14104ddebed53eb869f56655": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1f0b99f68c4d4677a2d9464b2236c4c8", + "IPY_MODEL_b3fa8e4dc92c4694bed7bc95810a0f3b", + "IPY_MODEL_feecd9ce455a4950b5239e9ee7c965a8" + ], + "layout": "IPY_MODEL_06292a65baa243f3814cde1569a4c8b6" + } + }, + "88f85747a55045afa6d17f728323e8e1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8e37d0ede1584bb7a0f6dbdbeb21dc74": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8fd216c544134e93a7aaa51b06f800b8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_fe6c7184c24f427993feb51a0d70eaf6", + "placeholder": "​", + "style": "IPY_MODEL_95d5e92b215c49c3a8b9606dbba0819e", + "value": "

Copy a token from your Hugging Face\ntokens page and paste it below.
Immediately click login after copying\nyour token or it might be stored in plain text in this notebook file.
" + } + }, + "9012503f13534d5e9975dd625b91c680": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "95d5e92b215c49c3a8b9606dbba0819e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9606de132aa44042b71aa85a7d55211c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "LabelModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2a41eee869d54fc8bea15f63ea95330d", + "placeholder": "​", + "style": "IPY_MODEL_9b7bad58cf644ff9a949eae2dbbbdfad", + "value": "Your token has been saved to /root/.cache/huggingface/token" + } + }, + "9b0d759beaf74757bdfcdda580115896": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9b7bad58cf644ff9a949eae2dbbbdfad": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "9f18022fd662422da124616484fddfa6": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "ab724184ad184e49b2201f3ce9b13c82": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ButtonStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ButtonStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "button_color": null, + "font_weight": "" + } + }, + "af33a938bc1d4468bfd2688f883d5039": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "afb43a0e2b024fdcbcf080a458625f3e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ButtonModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ButtonModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ButtonView", + "button_style": "", + "description": "Login", + "disabled": false, + "icon": "", + "layout": "IPY_MODEL_28fcf390fef44363a59d83f3f25a6464", + "style": "IPY_MODEL_ab724184ad184e49b2201f3ce9b13c82", + "tooltip": "" + } + }, + "b1255bd58957449a8058d767545e5107": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1c32657deab94066b49b9cdd9eaa154b", + "placeholder": "​", + "style": "IPY_MODEL_5c9068a6baa4447fbbde95fbe273e216", + "value": "config.json: 100%" + } + }, + "b3dbb2c8b9b04e199a73ec19398bbfe5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b3fa8e4dc92c4694bed7bc95810a0f3b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4a2d0868aeb6457783177d626ecf12b5", + "max": 483545366, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_7f9db0c5236c41c6a749dd0c6bb63282", + "value": 483545366 + } + }, + "b67e27a21e864c25bbee00c104320167": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bd3609f340374f67a2228f6ad54e9553": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cf814684d4444eebb738f4715654a9a0", + "placeholder": "​", + "style": "IPY_MODEL_f1e1cec22ca34ccc9dab3b7504233079", + "value": " 422k/422k [00:00<00:00, 7.63MB/s]" + } + }, + "bdd30894d83746aabb77f291c222060b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "LabelModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_00cb4ca89fa2438fa9278e093fb60313", + "placeholder": "​", + "style": "IPY_MODEL_9012503f13534d5e9975dd625b91c680", + "value": "Login successful" + } + }, + "bfb217b172a64c7f8f9b9dd2153667fd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c1293083357448de92edc1f4cdac17db": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c18e7ca8c42349938c01fac2eb54dbce": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c1b479c36bb2406caabe8ae8ec20b8f2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "c7637c6cbdbe48ef85b79c3375842c3e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "LabelModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "LabelModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "LabelView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d53771ed80d147c4a3d87b33c65ac47c", + "placeholder": "​", + "style": "IPY_MODEL_d6aebd48323c4a948d5e49af230ab22d", + "value": "Token is valid (permission: write)." + } + }, + "c7ecf3bb64c945ee93732d934be45208": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cb998feff752458995c1d564d4fef3f2": { + "model_module": "@jupyter-widgets/output", + "model_module_version": "1.0.0", + "model_name": "OutputModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/output", + "_model_module_version": "1.0.0", + "_model_name": "OutputModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/output", + "_view_module_version": "1.0.0", + "_view_name": "OutputView", + "layout": "IPY_MODEL_09eff7052a5e43229c116e1432a706c4", + "msg_id": "", + "outputs": [ + { + "data": { + "text/html": "
segmentation         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:11\nseparations          ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nspeaker_counting     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nembeddings           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:02\ndiscrete_diarization ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\n
\n", + "text/plain": "segmentation \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:11\u001b[0m\nseparations \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\nspeaker_counting \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\nembeddings \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:02\u001b[0m\ndiscrete_diarization \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[33m0:00:00\u001b[0m\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ] + } + }, + "ce35798f9da44ede822b630e3dd6479e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c18e7ca8c42349938c01fac2eb54dbce", + "placeholder": "​", + "style": "IPY_MODEL_46da1d6ac681473786917f10df3d60c1", + "value": " 2.66k/2.66k [00:00<00:00, 56.1kB/s]" + } + }, + "cf814684d4444eebb738f4715654a9a0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d53771ed80d147c4a3d87b33c65ac47c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d6aebd48323c4a948d5e49af230ab22d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "da708345954047dfb12a7b436c09873d": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ec53e214db284c0fbeb2b3e564939fe1": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ec67edb58a274c278c3680d2e61811dc": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "efce6cdfc3e04d0c970f353f9f41f077": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f1e1cec22ca34ccc9dab3b7504233079": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "fe6c7184c24f427993feb51a0d70eaf6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "fe72a04e3b1c47319a5ea958ac09a0d6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "feecd9ce455a4950b5239e9ee7c965a8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1d44f07ce2a94e16aaacfd353bf4e367", + "placeholder": "​", + "style": "IPY_MODEL_bfb217b172a64c7f8f9b9dd2153667fd", + "value": " 484M/484M [00:06<00:00, 115MB/s]" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}