{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Malay VITS\n", "\n", "VITS, https://github.com/jaywalnut310/vits, https://arxiv.org/abs/2106.06103 trained on https://github.com/huseinzol05/malaya-speech/tree/master/data/azure-tts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Checkpoints\n", "\n", "All checkpoints can get at https://github.com/malaysia-ai/projects/tree/master/malaysia_ai_projects/malay_vits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preparation script\n", "\n", "All scripts and notebooks can get at https://github.com/malaysia-ai/projects/tree/master/malaysia_ai_projects/malay_vits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install necessary requirements\n", "\n", "```bash\n", "pip3 install torch>=1.6.0\n", "```" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "from malaysia_ai_projects import malay_vits" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List available models" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO:numexpr.utils:NumExpr defaulting to 8 threads.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Size (MB)
yasmin139
osman139
\n", "
" ], "text/plain": [ " Size (MB)\n", "yasmin 139\n", "osman 139" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malay_vits.available_model()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load model\n", "\n", "```python\n", "def load(model: str = 'osman'):\n", " \"\"\"\n", " Load Malay VITS model.\n", "\n", " Parameters\n", " ----------\n", " model : str, optional (default='osman')\n", " Model architecture supported. Allowed values:\n", "\n", " * ``'osman'`` - VITS Osman speaker, https://huggingface.co/malay-huggingface/VITS-Osman\n", " * ``'yasmin'`` - VITS Yasmin speaker, https://huggingface.co/malay-huggingface/VITS-Yasmin\n", "\n", " Returns\n", " -------\n", " result : malaysia_ai_projects.malay_vits.Model class\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "model = malay_vits.load()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Predict\n", "\n", "```python\n", "def predict(\n", " self,\n", " input: str,\n", " noise_scale: float = 0.667,\n", " noise_scale_w: float = 0.8,\n", " length_scale: float = 1.0,\n", " norm_function: Callable = None\n", "):\n", " \"\"\"\n", " Parameters\n", " ----------\n", " input: str\n", " noise_scale: float, optional (default=0.667)\n", " noise_scale_w: float, optional (default=0.8)\n", " length_scale: float, optional (default=1.0)\n", " norm_function: Callable, optional (default=None)\n", "\n", " Returns\n", " -------\n", " result: (audio with 22050 sample rate, text, list of chars, alignment)\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "string = 'KUALA LUMPUR: Wakil rakyat dan semua agensi kerajaan perlu bertindak proaktif dengan turun padang untuk meninjau dan menyelami isu rakyat secara lebih dekat serta memantau pencapaian program diumumkan kerajaan.'" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "audio, text, decoded, alignment = model.predict(string)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython.display as ipd\n", "ipd.Audio(audio, rate= 22050)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot alignment" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhQAAAGoCAYAAAAemnx2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xm8ZWV95/vPl2JyRoQgAgoqmhA7ordEjBOOENoWctvYOES06RATx44ah86Nw403msEpceiKKEiMiKhNSVA0iLMChSIySCxxoBBEmUSNCFW/+8daRzeHM+xzzp7W3p/367Vetdbaa639nM2m6nd+z+95nlQVkiRJa7HduBsgSZK6z4BCkiStmQGFJElaMwMKSZK0ZgYUkiRpzQwoJEnSmhlQSAOW5Pgkf9XuPzLJpeNukyQNmwGFtEpJPpPkuiQ7LXZNVX2+qu4/ynYNQpLvJnn8qO+V1F0GFNIqJNkXeCRQwJPH2hhJmgAGFNLqPAv4CnA8cPRiFyU5JMmWnuMHJ/lakhuTfCjJB3u6Rw5JsiXJS5JcneTKJM/puff4JO9I8vEkP03yxSR3T/KWNlPyzSQP6rn+Hkk+nORHSb6T5IU9r70myclJ3te25aIk69vXTgTuCXysfZ8/X+Dn2i3JaUmuT3Jtks8n2W6xe5McnORL7fVfT3JIz7M+k+Svk5yT5CdJTk2ya/vazkn+Ock17b3nJtljhf+tJI2AAYW0Os8C3t9uh/bzj1ySHYGP0gQhuwIfAH5/3mV3B+4C7AUcA7w9yV17Xn8q8BfAbsBNwJeBr7bHpwBvat9rO+BjwNfbZz0OeHGSQ3ue9WTgJGAXYCPwjwBV9YfA94H/UlV3rKq/WeDHeQmwBdgd2AN4VXPrbe9Nshfwr8BftT/3S4EPJ9m953nPAv47sCdwC/C29vzR7eexD3A34LnAfyzQHkljZkAhrVCSRwD3Ak6uqvOAbwNP7+PWg4HtgbdV1c1V9RHgnHnX3Ay8rn39dOCnQG8Nxker6ryq+gVNcPKLqnpfVW0FPgjMZSgeAuxeVa+rql9W1WXAPwFH9TzrC1V1envvicAD+/8UuJnmH/97tW39fC2+MNAzgdPb99pWVZ8CNgGH91xzYlVdWFU/A/4f4KlJ1rXvczfgvlW1tf3Zf7KCdkoaEQMKaeWOBj5ZVT9uj/+FJbo9etwDuGLeP7yXz7vmmqq6pef458Ade45/2LP/Hwscz117L+AebTfB9Umup8ki9GZSrpr3Pjsn2b6PnwPgb4HNwCeTXJbkFUtcey/gD+a15RE0Acmc3s/he8AONFmXE4EzgJOS/CDJ3yTZoc82Shqhfv/ykAQkuR1Nt8O6JHP/IO8E7JLkgVX19SVuvxLYK0l6gop9aDIcg3Y58J2q2n+V9y+5DHFV3UjT7fGSJA8APp3k3Ko6c4F7L6fJQPzREo/cp2f/njSZiR+32ZPXAq9tC2FPBy4FjlvBzyJpBMxQSCtzJLAVOAA4sN1+C/g8TR3AUr7c3vv8JNsnOQI4aEjtPAe4McnLk9wuybokD0jykD7v/yFw78VeTPKkJPdNEuAGmp9r2yL3/jPwX5Ic2rZj57YAde+ea56Z5IAktwdeB5xSVVuTPCbJf2q7P35CE2hsQ9LEMaCQVuZo4L1V9f2qumpuoylofMZSXQZV9Uvg/6YptryeprbgNJriyoFqf7N/Ek3A8x3gx8C7aQoc+/HXwF+0XRQvXeD1/YF/o6nx+DLwjqo6a6F7q+py4AiaLpcf0WQsXsat//45kaZY9SpgZ2BuRMrdaYpNfwJcAny2vVbShMnidVSShi3J2cC7quq9427LuCT5DPDPVfXucbdF0uqZoZBGKMmj27kjtk9yNPA7wCfG3S5JWisDCmm07k8zN8T1NEWNT6mqK8fbJEmzJsl72gn0Llzk9SR5W5LNSS5I8uBln2mXhyRJsyXJo2hqoN5XVQ9Y4PXDgRfQzBfzUOCtVfXQpZ5phkKSpBlTVZ8Drl3ikiNogo2qqq/QDI3fc4nruz0PxY7ZqXbmDuNuhiRpCt3vd37+q/3zLrjpx1W1+xKXr9mhj7lDXXPt1oE867wLbroI+EXPqQ1VtWEFj9iLW084t6U9t2gXbacDip25Aw/N48bdDEnSNPpG78Ep3xv2211z7VbOOeOeA3nWuj2/9YuqWj+Qh/Wp0wGFJEmDdsYPzgfg0HscONL3LWDb5MzbdgW3nsF27/bcogwoJElifIHEhNpIM6vvSTRFmTcsNyLNgEKSNNMmJ5AottZoMhRJPgAcAuyWZAvwappF+aiqd9Gsm3M4zSKAPwees9wzDSgkSTNpcgKJRtPlMZqpHKrqacu8XsDzVvJMAwpJ0kyZtEBiWhhQSJJmyiQHEhNUlLliBhSSpJkw6ZmJotja4dmrDSgkSVPtjB+cz6H3OHBiA4leo6qhGAan3pYkTa25YELDZ4ZCkjSVuhZMFLC1wxkKAwpJ0tTpWjAxxy4PSZImRFeDia4zQyFJmipdDSYKOj3KwwyFJGkqzA0L7bJtA9rGwYBCktR5dnOMn10ekqTOm4ZgoqhOj/IYeoYiybokX0tyWnu8X5Kzk2xO8sEkO7bnd2qPN7ev7zvstkmSum8aujoAKNg6oG0cRtHl8SLgkp7jNwJvrqr7AtcBx7TnjwGua8+/ub1OkqQFnfGD86eqq6NZbdQaigUl2Rv4z8C72+MAjwVOaS85ATiy3T+iPaZ9/XHt9ZIk3UqXptOeFcPOULwF+HN+HTDdDbi+qm5pj7cAe7X7ewGXA7Sv39BefytJjk2yKcmmm7lpmG2XJE2YSV/ga23C1gFt4zC0gCLJk4Crq+q8QT63qjZU1fqqWr8DOw3y0ZKkCTZN3RsLKWBbDWYbh2GO8ng48OQkhwM7A3cG3grskmT7NguxN3BFe/0VwD7AliTbA3cBrhli+yRJHTDdWYnpMbQMRVW9sqr2rqp9gaOAT1fVM4CzgKe0lx0NnNrub2yPaV//dFWHpwyTJK3ZrNVKdLnLYxzzULwcOCnJXwFfA45rzx8HnJhkM3AtTRAiSZpR097FMV+z2mh3xyKMJKCoqs8An2n3LwMOWuCaXwB/MIr2SJIm3ywFE3O2VXcDCqfeliRNjKmZpGoGOfW2JGkizFoXx3x2eUiStAaO4mgUYWuHOw4MKCRJYzPrWYlpYkAhSRoLg4nb6nJRpgGFJGmk7OJYmDUUkiStgIHEdDKgkCQNnVmJfoStZVGmJEmLMpBYXgHbOjzKo7stlyR1gpNV9a/La3kYUEiShsaRHLPDLg9J0lAYTKxMVbdrKLrbcknSRLIAc/W2kYFs42BAIUkaGLMSs8suD0nSmpmVWLtmYqvu/p5vQCFJWhOzEoPS7RoKAwpJ0qqYlRisrs9DYUAhSVoxsxKaz4BCktSX3oyEwcRwbHW1UUnStDOIGK4inS7K7G7LJUkj4/TZWo4ZCknSkqyXGJ1tjvKQJE0jg4nR6fo8FN1tuSRp6Awm1C8zFJIkTYAinR7lYYZCknQrFmCOzza2G8g2DmYoJEmAM1+OWxVOvS1J6j4DCa1Fd0MhSdLA2M0xCcK2AW3jYIZCkmaY3RyTo+h2l0d3Wy5JWjXX5dCgmaGQpBnjZFWTq8sTWxlQSNIMMZiYXEXY1uF5KAwoJGkGWCuhYRtaQJFkZ+BzwE7t+5xSVa9OcjzwaOCG9tJnV9X5SQK8FTgc+Hl7/qvDap8kzQqzEt1hl8fCbgIeW1U/TbID8IUkH29fe1lVnTLv+t8D9m+3hwLvbP+UJK2SwUR3FK42uqCqKuCn7eEO7VZL3HIE8L72vq8k2SXJnlV15bDaKEnTzGCia8LWMc0hMQhDDYWSrEtyPnA18KmqOrt96fVJLkjy5iQ7tef2Ai7vuX1Le27+M49NsinJppu5aZjNl6ROM5jQKA01oKiqrVV1ILA3cFCSBwCvBH4TeAiwK/DyFT5zQ1Wtr6r1O7DT8jdIktQBc10eg9jGYSTvWlXXA2cBh1XVldW4CXgvcFB72RXAPj237d2ekyStkFNpd9PWtttjrds4DC2gSLJ7kl3a/dsBTwC+mWTP9lyAI4EL21s2As9K42DgBusnJGnlrJ3QOAxzlMeewAlJ1tEELidX1WlJPp1kdyDA+cBz2+tPpxkyuplm2Ohzhtg2SZpaBhPdVBVHeSykqi4AHrTA+ccucn0BzxtWeyRp2pmZ6D4XB5MkjZXBRPcVjGz58iSHJbk0yeYkr1jg9XsmOSvJ19pRmYcv90wDCkmaAgYT6ldbivB2mgklDwCeluSAeZf9BU2pwoOAo4B3LPdcAwpJ6jhHdEyLsLW2G8i2jIOAzVV1WVX9EjiJZnLJXgXcud2/C/CD5R7q4mCS1GF2dUyPZh6KgQ353C3Jpp7jDVW1od1faCLJ+UtdvAb4ZJIXAHcAHr/cGxpQSFJHGUxoCT+uqvVruP9pwPFV9fdJHgacmOQBVbVtsRvs8pCkjnEp8um1le0Gsi2jn4kkjwFOBqiqLwM7A7st9VADCknqELMS06sI22ow2zLOBfZPsl+SHWmKLjfOu+b7wOMAkvwWTUDxo6UeakAhSR1hMKFBqKpbgOcDZwCX0IzmuCjJ65I8ub3sJcAfJfk68AHg2e18UYuyhkKSOsBgYjZsG9Hv+VV1Os0M1b3n/rJn/2Lg4St5pgGFJE04g4nZUAVbBzfKY+QMKCRpwhlMzI4BDhsdOWsoJGlCOWGVusQMhSRNKDMTs6UZ5dHd3/MNKCRpwjjPxOza2sfCXpPKgEKSJogFmOoqAwpJmiAGE7NrwGt5jJwBhSRNALs5hDUUkqS1MpAQwLYO11B0NxSSpCng0FBNCzMUkjQmFmCqlzNlSpJWxWBC83W5hqK7LZekjjrjB+fb1aGpY4ZCkkbIbg4tppkps7tdHmYoJGnIerMRBhNayjYykG0cDCgkaYjMSGhW2OUhSUNkMKF+OVOmJOk2nPlSq9HlUR4GFJI0QAYSWrWyKFOSZtr8okuDCc0iMxSStEYGEBqEottreRhQSNIq2b2hQetyl4cBhSStkoGE9GvWUEjSKjh1tgZtbtjoILZxMEMhSatgdkLD0OUuj6FlKJLsnOScJF9PclGS17bn90tydpLNST6YZMf2/E7t8eb29X2H1TZJWguzE9JtDbPL4ybgsVX1QOBA4LAkBwNvBN5cVfcFrgOOaa8/BriuPf/m9jpJmihOpa1hmVscrKtdHkMLKKrx0/Zwh3Yr4LHAKe35E4Aj2/0j2mPa1x+XpLu5H0lTyWBCw+TiYItIsi7J+cDVwKeAbwPXV9Ut7SVbgL3a/b2AywHa128A7rbAM49NsinJppu5aZjNl6RbsatDQ1XdLsocakBRVVur6kBgb+Ag4DcH8MwNVbW+qtbvwE5rbqMk9cvshLS4kYzyqKrrk5wFPAzYJcn2bRZib+CK9rIrgH2ALUm2B+4CXDOK9knSUpzASqPQ9dVGhznKY/cku7T7twOeAFwCnAU8pb3saODUdn9je0z7+qerqobVPknqx1wRpsGERqHLXR7DzFDsCZyQZB1N4HJyVZ2W5GLgpCR/BXwNOK69/jjgxCSbgWuBo4bYNknqi4GE1J+hBRRVdQHwoAXOX0ZTTzH//C+APxhWeyRppRwiqlGaGzbaVc6UKUkLMJjQOJQBhSRNF4MJjUOXly93cTBJmsf5JqSVM0MhSfOYndA4VHV72KgBhSThXBOaDNZQSFKHWYAprZ0BhaSZZzChydDtYaMWZUqaaRZgapJUZSDbOBhQSJpZdnVIg2NAIWnmWICpSTS3OJhreUhSB5iV0MSqZuhoVxlQSJoZBhOadF2eKdOAQtLUs4tDGj4DCklTzayEuqJwYitJmjhmJdQ93Z6HwoBC0tQxKyGNngGFpKljMKGu6vIoD+ehkDRVnPlSXdblmTLNUEiaGnZ1qMuqul2UaYZC0lQwmJDGywyFpM4zmNC06PIoDzMUkjrLoaGaNlWD2cbBgEJSJ5mVkCaLXR6SOsdgQtOqy0WZBhSSOsdgQtOoGN+Qz0Gwy0NSpzjPhDSZzFBI6gQLMDULOjxRZn8BRZK7AwfR/KznVtVVQ22VpJk3PxNhIKGp1/GJrZYNKJL8D+AvgU8DAf4hyeuq6j3Dbpyk2WTRpWZWh1MU/WQoXgY8qKquAUhyN+BLgAGFpKEwmJC6p5+izGuAG3uOb2zPSdJAnfGD8y261Ewb1eJgSQ5LcmmSzUlescg1T01ycZKLkvzLcs/sJ0OxGTg7yak0yZgjgAuS/Fnzw9eb+niGJC2oN4AwM6FZN4pZLpOsA94OPAHYApybZGNVXdxzzf7AK4GHV9V1SX5juef2E1B8u93mnNr+ead+Gy9JizGIkEbuIGBzVV0GkOQkmmTBxT3X/BHw9qq6DqCqrl7uocsGFFX12vYNb19VP++3tUn2Ad4H7EGT2dhQVW9N8pq2oT9qL31VVZ3e3vNK4BhgK/DCqjqj3/eT1C0WXkq3Vgx0lMduSTb1HG+oqg3t/l7A5T2vbQEeOu/++wEk+SKwDnhNVX1iqTfsZ5THw4DjgDsC90zyQOCPq+pPl7n1FuAlVfXVJHcCzkvyqfa1N1fV3817nwOAo4DfBu4B/FuS+1XV1uXaKKk7nE9CWkQBgwsoflxV69dw//bA/sAhwN7A55L8p6q6fqkblvMW4FBgI0BVfT3Jo5a7qaquBK5s929McglNVLSYI4CTquom4DtJNtOkZb7cRxsldYBZCWkiXAHs03O8d3uu1xbg7Kq6mebf5H+nCTDOXeyhfU29XVWXzzu1oqxBkn2BBwFnt6een+SCJO9Jctf23EIpmKUCEEkdYzAhLW1Ey5efC+yfZL8kO9L0Dmycd83/oclOkGQ3mi6Qy5Z6aD8BxeVJfheoJDskeSlwSR/30TbkjsCHgRdX1U+AdwL3AQ6kyWD8fb/Pap93bJJNSTbdzE0ruVXSGDkcVOpDDWhb6i2qbgGeD5xB8+/5yVV1UZLXJXlye9kZwDVJLgbOAl42Nx/VYvrp8ngu8FaabMEVwCeB5eonAEiyA00w8f6q+kj7g/yw5/V/Ak5rD/tJwdAWlWwAuHN27fCcYtJsMTshLWd0q422gyFOn3fuL3v2C/izdutLPxmK+1fVM6pqj6r6jap6JvBby92UJDTFnJf0zlWRZM+ey34fuLDd3wgclWSnJPvR9NWc0+8PImkymZmQZkM/GYp/AB7cx7n5Hg78IfCNJHN/o7wKeFqSA2mSMt8F/higTbecTDMO9hbgeY7wkLrPzIS0Ah3Ouy8aULTDRX8X2H1uVszWnWnGpC6pqr5As5jYfKcvcG7untcDr1/u2ZK6wVEd0gpM8WqjO9LMPbE9t54V8yfAU4bZKEnTwWBCmh2LBhRV9Vngs0mOr6rvASTZDrhjO1pDkhZldkJahQ53efRTlPnXSe6c5A40BZQXJ3nZkNslqcMMJqTVyoC20esnoDigzUgcCXwc2I+m2FKSFmQwIa3SCOahGJZ+Aood2vkkjgQ2ttNwdjgpI2mYHCYqzaZ+Aor/TTO88w40i4Pci6YwU5Juw+yEtAbTnKGoqrdV1V5VdXg1vgc8ZgRtk9QxZiekNZhbbXQQ2xgsG1Ak2SPJcUk+3h4fABw99JZJ6hQLMaXZ1k+Xx/E0i4Tcoz3+d+DFw2qQpG4ymJDWbkSrjQ5FPwHFblV1MrANfrVKmVNiSwLs5pAGapprKICfJbkbbROTHAzcMNRWSeoEuzkkzelncbA/o1kJ9D5JvgjsjlNvSzPPYEIagildywOAqvpqkkcD96eZfuvSdi4KSTNkfteGwYQ0eOnwLE/LBhRJ1gGHA/u21z8xCVX1piG3TdIEMYCQhmyM9Q+D0E+Xx8eAXwDfoC3MlDQ75jITBhSSltJPQLF3Vf3O0FsiaWL01kcYSEijMr5JqQahn1EeH0/yxKG3RNJEsNhSGqMODxvtJ0PxFeCjSbYDbqYpzKyquvNQWyZpLAwmJK1GPwHFm4CHAd+oGtf8W5KGzVoJaQJ0+F/ZfgKKy4ELDSak6WU3hzQhOvwvbT8BxWXAZ9rFwW6aO+mwUWk6GExIGoR+AorvtNuO7SZpihhMSBNibvnyjupnpszXjqIhkkbHrIQ0maZypswkb6mqFyf5GAv06lTVk4faMklDYTAhTbBpDCiAE9s//24UDZE0GgYTkoZh0Ymtquq8dvfAqvps7wb4N5LUQfMX+JKkQelnpsyjFzj37AG3Q9IImJ2QJltqMNs4LFVD8TTg6cB+STb2vHQn4NphN0ySJHXHUjUUXwKuBHYD/r7n/I3ABcNslKTBshBT6ohpHDZaVd8Dvkcz7bakDjOYkDpgjAt7DUI/NRSSOsxCTKlDOrzaqAGFNOXMTkgahSUDiiTrkrx/VI2RNFhmJ6RumcpRHgBVtTXJvZLsWFW/HFWjJK2dhZhSB3W4hqLf1Ua/2A4d/dncyeVWG02yD/A+YA+aj2hDVb01ya7AB4F9ge8CT62q65IEeCtwOPBz4NlV9dUV/0SSDCYkjVw/NRTfBk5rr71Tz7acW4CXVNUBwMHA85IcALwCOLOq9gfObI8Bfg/Yv92OBd65gp9DUstgQuqwDhdl9r3aaJLbV9XP+31wVV1JM48FVXVjkkuAvYAjgEPay04APgO8vD3/vqoq4CtJdkmyZ/scSX0wmJC6a5z1D4OwbIYiycOSXAx8sz1+YJJ3rORNkuwLPAg4G9ijJ0i4iqZLBJpg4/Ke27a05+Y/69gkm5JsupmbVtIMaeoZTEgal366PN4CHApcA1BVXwce1e8bJLkj8GHgxVX1k97X2mzEiuKxqtpQVeurav0O7LSSW6Wp5ogOaQpUBrONQV/zUFTV5fNObe3nviQ70AQT76+qj7Snf5hkz/b1PYGr2/NXAPv03L53e07SIs74wfm/CiTMTkhToMM1FP0EFJcn+V2gkuyQ5KXAJcvd1I7aOA64ZN6IkI38egXTo4FTe84/K42DgRusn5AWN1cvYSAhTY+pnYei9Vya4Zx70WQMPgk8r4/7Hg78IfCNJHO52FcBbwBOTnIMzVohT21fO51myOhmmmGjz+nzZ5BmkoGEpEnSzyiPHwPPWOmDq+oLwGIdOY9b4Pqiv0BFmml2cUhTrMOjPBYNKJL8A0v8aFX1wqG0SNKSDCSkKTXFw0Y3AecBOwMPBr7VbgcCOw6/aZJ69RZgStKkWTRDUVUnACT5E+ARVXVLe/wu4POjaZ4kiy+lGdLhDEU/RZl3Be4MXNse37E9J2mIrJWQZtCUBxRvAL6W5CyaIstHAa8ZZqOkWWYgIc2uLtdQ9DPK471JPg48lCZ2enlVXTX0lkkzykBCUhf1NVMmcBDwSJrsxEOG1xxptll0Kamrls1QJHkDTRDx/vbUC5M8rKpeNdSWSTPGlUIlTXsNxeHAgVW1DSDJCcDXaGa9lDQABhOSuq6fgAJgF349yuMuQ2qLNLMMJiR1fWKrfgKKv+a2ozxeMdRWSTPCER2SbmWaA4qq+kCSz/DrYkxHeUgDYiAhaVosO8ojye8DP6+qjVW1EfhFkiOH3zRpujmiQ9Jt1IC2Mehn2Oirq+qGuYOquh549fCaJE0/izAlzReaGopBbOPQTw3FQkFHv8WckuYxmJC0qA7XUPSTodiU5E1J7tNub6JZhVTSChlMSJpW/QQULwB+CXyw3W4CnjfMRknTymBC0qIG1N0xsV0eVfUzHCYqrYnDQyX1ZUTBQJLDgLcC64B3V9UbFrnuvwKnAA+pqk1LPbOfqbfvB7wU2Lf3+qp6bN8tl2aY3RySJkmSdcDbgScAW4Bzk2ysqovnXXcn4EXA2f08t5/iyg8B7wLeDWxdSaMlmZWQtAKjyVAcBGyuqssAkpwEHAFcPO+6/xd4I/Cyfh7aTw3FLVX1zqo6p6rOm9tW0HBpZjnXhKSVGGANxW5JNvVsx/a8zV7A5T3HW9pzv25H8mBgn6r6137b3k+G4mNJ/hT4KE1BJgBVde3it0iyq0PSGP24qtav5sYk2wFvAp69kvv6CSiObv/sTXkUcO+VvJE0SwwmJK3KaLo8rgD26Tneuz03507AA4DPJAG4O7AxyZOXKszsZ5THfqtqrjTDDCYkrdjops0+F9g/yX40gcRRwNN/1Yxmduzd5o7b9bxeutwoj0VrKJL8ec/+H8x77f9bYeOlmWHdhKTVGsU8FFV1C/B84AzgEuDkqrooyeuSPHm1bV+qKPOonv1XznvtsNW+oTTN7OqQ1AVVdXpV3a+q7lNVr2/P/WW7COj8aw9ZLjsBS3d5ZJH9hY4lYVeHpDWa0rU8apH9hY6lmWdXh6S1mtaptx+Y5Cc02Yjbtfu0xzsPvWVSh9jVIWnWLRpQVNW6UTZE6iqDCUkD0+H8fz/zUEjqMb9rw2BC0kCMbtjoUBhQSCtgNkLSsIRuj3joZy0PaWaZjZCk/pihkBYwF0gYQEgaqQ53eQwtQ5HkPUmuTnJhz7nXJLkiyfntdnjPa69MsjnJpUkOHVa7pOXMdWsYTEgatS4PGx1ml8fxLDyj5pur6sB2Ox0gyQE0M3P+dnvPO5I4ykQjZ42EJK3O0AKKqvoc0O8S50cAJ1XVTVX1HWAzcNCw2iYtxGBC0tjVgLYxGEdR5vOTXNB2idy1PbcXcHnPNVvac7eR5Ngkm5Jsupmbht1WzQiDCUkTwYCib+8E7gMcCFwJ/P1KH1BVG6pqfVWt34GdBt0+zZAzfnC+xZeSNCAjHeVRVT+c20/yT8Bp7eEVwD49l+7dnpOGwoyEpIkzxoLKQRhphiLJnj2Hvw/MjQDZCByVZKck+wH7A+eMsm2aHQYTkiZWh7s8hpahSPIB4BBgtyRbgFcDhyQ5kObH/S7wxwBVdVGSk4GLgVuA51XV1mG1TbPNYELSpOpyhmJoAUVVPW2B08ctcf3rgdcPqz0SmJ2QpGFxpkzNDIMJSRPPDIU0+QwmJE26Lnd5uDiYptr8xb0kScNhhkJTzayEpM4Y4wiNQTBDoalldkJS5zhsVJosFmBK6ppgDYU0cQwmJGm0zFBIkjQpzFBIk8G6CUldlqqBbONgQKGpYd2EJI2PXR7qPJcglzQVOj5s1IBCnWcgIWlaOMptSmlmAAAQe0lEQVRDGhNrJiRpMpihUKeZnZA0VcxQSKNjVkLStEoNZhsHMxTqHLMSkqaWGQpJkjTLDCjUKXZ3SJpaA+rusMtD6oPdHZKmml0e0nCZmZCkyWaGQp1gZkLStHP5cmnIzE5ImhlVg9nGwIBCE80FvySpG+zy0MQymJA0a7rc5WFAoYlkMCFp5nR8tVG7PDRRXIpc0izLtsFs42BAoYlhVkKSussuD00MgwlJM88uD2ltHBoqSd2eetuAQhPB7IQkdZsBhcbO7IQk0Y7ycGIracUc0SFJt9blLg+LMjUWjuiQpAVYlCn1z2BCkqbP0AKKJO9JcnWSC3vO7ZrkU0m+1f551/Z8krwtyeYkFyR58LDapfE54wfnG0xI0iLmVhvtapfHMDMUxwOHzTv3CuDMqtofOLM9Bvg9YP92OxZ45xDbpTGYCyQMJiRpEYMqyBxTUebQaiiq6nNJ9p13+gjgkHb/BOAzwMvb8++rqgK+kmSXJHtW1ZXDap9Gw8JLSZoNoy7K3KMnSLgK2KPd3wu4vOe6Le252wQUSY6lyWKwM7cfXku1ZnZvSNLKdHm10bEVZbbZiBV/dFW1oarWV9X6HdhpCC3ToBhMSNIK1YC2MRh1QPHDJHsCtH9e3Z6/Atin57q923PqoLniS0nS7Bh1QLEROLrdPxo4tef8s9rRHgcDN1g/0V0WX0rS6jjKYwFJPgB8Gbh/ki1JjgHeADwhybeAx7fHAKcDlwGbgX8C/nRY7dJwmZmQpFUqYFsNZhuDYY7yeNoiLz1ugWsLeN6w2qLhc1ioJA2ARZmadQYSkjTbDCi0ZnZzSNJgdLmGwsXBtCbONSFJAzSmWS4HwQyFVs1gQpI0x4BCK+YiX5I0HKPq8khyWJJL20U5X7HA63+W5OJ2wc4zk9xruWfa5aG+9NZJGEhI0hCMaJbLJOuAtwNPoFnq4twkG6vq4p7Lvgasr6qfJ/kT4G+A/7bUcw0otCyzEZI0fM3y5SOpoTgI2FxVlwEkOYlmkc5fBRRVdVbP9V8BnrncQ+3y0LIMJiSpc3ZLsqlnO7bntcUW5FzMMcDHl3tDMxRaktkJSRqhbQN70o+rav1aH5LkmcB64NHLXWtAoduwXkKSxmNEXR59LciZ5PHA/wIeXVU3LfdQAwrdhkGEJE21c4H9k+xHE0gcBTy994IkDwL+N3BYVV1920fcljUUApztUpLGrga4LfU2VbcAzwfOAC4BTq6qi5K8LsmT28v+Frgj8KEk5yfZuFzzzVDIOglJmgg1spkyq+p0mpW+e8/9Zc/+41f6TDMUM85gQpI0CGYoZpjBhCRNlnEt7DUIBhQzymBCkiZQhxcHM6CYQQYTkjSBCjK4eShGzhqKGeHcEpKkYTJDMSMMIiSpAzrc5WGGYgY4x4QkdcQI5qEYFgOKKWe9hCRpFOzymHIGE5LUHSNay2MozFBMMbs6JKljqgazjYEBxRSaCyTMTkiSRsUujyliICFJHVZAh+ehMKCYIgYSktRdoTpdQ2FAMQXMTEjSlDCg0DgYSEiSJoUBRYcZSEjSlDFDoVExKyFJU8qiTI2SgYQkaRI5D0WHOFGVJE23VA1kGwczFB1idkKSppw1FCuT5LvAjcBW4JaqWp9kV+CDwL7Ad4GnVtV142jfpLFuQpJmwfimzR6EcXZ5PKaqDqyq9e3xK4Azq2p/4Mz2eObNrRZqMCFJmmSTVENxBHBCu38CcOQY2zIRXHpckmZI4eJgq1DAJ5Ocl+TY9tweVXVlu38VsMd4mjYZDCYkaQZtG9A2BuMqynxEVV2R5DeATyX5Zu+LVVVJFgyx2gDkWICduf3wWzpi1ktIkrpoLAFFVV3R/nl1ko8CBwE/TLJnVV2ZZE/g6kXu3QBsALhzdu1u9coiDCQkaXZ1eXGwkXd5JLlDkjvN7QNPBC4ENgJHt5cdDZw66raNm/NMSNKM63ANxTgyFHsAH00y9/7/UlWfSHIucHKSY4DvAU8dQ9vGxpoJSVKXjTygqKrLgAcucP4a4HGjbs+4OSxUkgS0a3l0t8vDmTLHzEBCktRwYiutkjUTkqRb6XANhQHFGJmdkCRNC7s8xsC5JiRJC+pwl4cBxYg5mkOStKCOF2Xa5TEiZiUkSdPMDMWQGUhIkvpTUGNaiGMADCiGxEBCkrRi1lCol3USkqQVs4ZC8xlMSJJmjQHFgDlZlSRp1To8sZVdHms0v1bC7IQkadWsoZgtvVkIAwhJkgwoVsUgQpI0eN1eHMyAok9mJSRJQ1XANuehmGoOA5UkaWkGFMswmJAkjYxdHtNjfteGwYQkaWQMKLrN+ghJ0vhVp2fKnPmAwi4NSZLWbuYDCoMJSdJEKKgOrzY601NvO022JGmibKvBbGMwswGFXR2SJA3OTHZ5GExIkiaSozy6xWBCkjRxqjo9U+bMdXlYNyFJ0uDNXIbC7IQkaWJ1uMtjpjIUZickSZOstm0byDYOM5OhsBBTkjTZur18+dRnKOayEgYTkiQNz9RnKAwkJEmdUHR6LY+pzlBYMyFJ6pTaNphtDKYyQ2E3hyRJozWVAYWBhCSpawoouzwGJ8lhSS5NsjnJK1Z6v90ckqROqup0l8dEBRRJ1gFvB34POAB4WpID+rnXbg5JUtfVthrItpzlfnlPslOSD7avn51k3+WeOVEBBXAQsLmqLquqXwInAUcsd5NzTEiS1J8+f3k/Briuqu4LvBl443LPnbSAYi/g8p7jLe25X0lybJJNSTbdda8bDSYkSdNjNF0e/fzyfgRwQrt/CvC4JFnqoZ0ryqyqDcAGgCQ3rttz86Wwecyt6ozdgB+PuxEd4ue1Mn5eK+Pn1b9J+KzuNew3uJHrzvi3OmW3AT1u5ySbeo43tP9+wsK/vD903v2/uqaqbklyA3A3lvjvMGkBxRXAPj3He7fnFnNpVa0fbpOmR5JNfl798/NaGT+vlfHz6t+sfFZVddi427AWk9blcS6wf5L9kuwIHAVsHHObJEmaJv388v6ra5JsD9wFuGaph05UQFFVtwDPB84ALgFOrqqLxtsqSZKmSj+/vG8Ejm73nwJ8umrplcsmrcuDqjodOL3Pyzcsf4l6+HmtjJ/Xyvh5rYyfV//8rAaorYmY++V9HfCeqrooyeuATVW1ETgOODHJZuBamqBjSVkm4JAkSVrWRHV5SJKkbjKgkCRJa9bZgGKta35MmyT7JDkrycVJLkryovb8rkk+leRb7Z93bc8nydvaz++CJA8e708wHknWJflaktPa4/3aaWY3t9PO7tieX/E0tNMmyS5JTknyzSSXJHmY36/FJfmf7f+LFyb5QJKd/X79WpL3JLk6yYU951b8fUpydHv9t5IcvdB7aTQ6GVCsZc2PKXYL8JKqOgA4GHhe+5m8AjizqvYHzmyPofns9m+3Y4F3jr7JE+FFNCOK5rwReHM73ex1NNPPwiqmoZ1CbwU+UVW/CTyQ5nPz+7WAJHsBLwTWV9UDaArfjsLvV6/jgfnzLqzo+5RkV+DVNJMyHQS8ei4I0eh1MqBglWt+TLOqurKqvtru30jzl/1e3Hr61BOAI9v9I4D3VeMrwC5J9hxxs8cqyd7Afwbe3R4HeCzNNLNw289rRdPQTpMkdwEeRVP5TVX9sqqux+/XUrYHbteO4b89cCV+v36lqj5HM3qg10q/T4cCn6qqa6vqOuBT3DZI0Yh0NaBYds2PWdamSx8EnA3sUVVXti9dBezR7vsZwluAPwfmJr6/G3B9Ox8K3PozudU0tMDcNLSzYj/gR8B72y6idye5A36/FlRVVwB/B3yfJpC4ATgPv1/LWen3aaa/Z5OmqwGFFpHkjsCHgRdX1U96X2snJXGcMJDkScDVVXXeuNvSEdsDDwbeWVUPAn7Gr9PRgN+vXm3a/QiaQOwewB3wN+cV8fvUPV0NKFa65sdMSLIDTTDx/qr6SHv6h3Op5vbPq9vzs/4ZPhx4cpLv0nSZPZamRmCXNkUNt/5MVjwN7ZTZAmypqrPb41NoAgy/Xwt7PPCdqvpRVd0MfITmO+f3a2kr/T7N+vdsonQ1oHDNj3na/tbjgEuq6k09L/VOn3o0cGrP+We11dMHAzf0pBqnXlW9sqr2rqp9ab4/n66qZwBn0UwzC7f9vFY0De00qaqrgMuT3L899TjgYvx+Leb7wMFJbt/+vzn3efn9WtpKv09nAE9Mctc2K/TE9pzGoao6uQGHA/8OfBv4X+Nuz7g34BE06cELgPPb7XCaftgzgW8B/wbs2l4fmpEy3wa+QVONPvafY0yf3SHAae3+vYFzgM3Ah4Cd2vM7t8eb29fvPe52j+FzOhDY1H7H/g9wV79fS35erwW+CVwInAjs5PfrVp/PB2jqS26myYAds5rvE/Df289tM/Cccf9cs7w59bYkSVqzrnZ5SJKkCWJAIUmS1syAQpIkrZkBhSRJWjMDCkmStGYGFNIaJdma5Px2ZcmvJ3lJkqH9v5Vk394VGlf5jFfNO/7S2lq15Hvtm+Tpw3q+pMlgQCGt3X9U1YFV9dvAE2hWRnz1mNv0Kz0zM/a6VUBRVb87xCbsCxhQSFPOgEIaoKq6mmZ55ee3s/qtS/K3Sc5NckGSP567NsnLk3yjzWq8oT13YJKvtNd+dG4p5iT/V3vd14Hn9TxjwecnOSTJ55NspJmhkZ573kCzCub5Sd7fnvtpz32fTXJqksuSvCHJM5Kc07b1Pu11uyf5cPu+5yZ5eHv+0e1zz28XEbsT8Abgke25/7lMmz+X5F+TXJrkXcPM9EgasHHPrOXm1vUN+OkC566nWSnxWOAv2nM70cw0uR9NFuNLwO3b1+ZmBLwAeHS7/zrgLT3nH9Xu/y1wYbu/2PMPoVnAa79+2jx33N53PbBn+7wrgNe2r72opz3/Ajyi3b8nzZTvAB8DHt7u35FmUbFDaGci7aPNv6CZTXIdzVLUTxn3f183N7f+toVSoZIG54nA7ySZW7/hLsD+NItHvbeqfg5QVdcmuQuwS1V9tr32BOBDSXZpz3+uPX8iTUCy1PN/CZxTVd9ZRZvPrXbdjSTfBj7Znv8G8Jh2//HAAc0yFQDcuV3p9ovAm9rMx0eqakvPNct9JnNtvqx97w/QTCl/yip+BkkjZkAhDViSewNbaVZKDPCCqjpj3jWHDurtFnn+ITQZitW4qWd/W8/xNn79d8Z2wMFV9Yt5974hyb/SrCPzxUV+zqXaPH8tANcGkDrC/klpgJLsDrwL+MeqKpqVD/8kzdLyJLlfkjvQpPOfk+T27fldq+oG4Lokj2wf94fAZ6vqeuD6JI9ozz+j5y0Xe/5ybp67Z5U+Cbxg7iDJge2f96mqb1TVG2lWBf5N4EbgTn22+aA0qwhvB/w34AtraKOkETJDIa3d7ZKcD+wA3ELTJTG3hPy7aUY5fLVdxvpHwJFV9Yn2H+FNSX4JnE4z8uJo4F1toHEZ8Jz2Oc8B3pOk+HUXxKLP76PNG4ALkny1mmXbV+qFwNuTXEDz98jngOcCL07yGJpsxkXAx9v9rW1B6fHAW5do87nAPwL3pVnq+6OraJukMXC1UUkToe3yeGlVPWncbZG0cnZ5SJKkNTNDIUmS1swMhSRJWjMDCkmStGYGFJIkac0MKCRJ0poZUEiSpDX7/wFP5rLik1/4pAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "fig = plt.figure(figsize=(8, 6))\n", "ax = fig.add_subplot(111)\n", "ax.set_title('Alignment steps')\n", "im = ax.imshow(\n", " alignment.T,\n", " aspect='auto',\n", " origin='lower',\n", " interpolation='none')\n", "fig.colorbar(im, ax=ax)\n", "xlabel = 'Decoder timestep'\n", "plt.xlabel(xlabel)\n", "plt.ylabel('Encoder timestep')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use Malaya text normalization\n", "\n", "Make sure Malaya version >= 4.7.5 to get better text normalization." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_addons/utils/ensure_tf_install.py:67: UserWarning: Tensorflow Addons supports using Python ops for all Tensorflow versions above or equal to 2.3.0 and strictly below 2.5.0 (nightly versions are not supported). \n", " The versions of TensorFlow you are currently using is 2.9.0 and is not supported. \n", "Some things might work, some things might not.\n", "If you were to encounter a bug, do not file an issue.\n", "If you want to make sure you're using a tested and supported configuration, either change the TensorFlow version or the TensorFlow Addons's version. \n", "You can find the compatibility matrix in TensorFlow Addon's readme:\n", "https://github.com/tensorflow/addons\n", " UserWarning,\n", "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow_addons/utils/resource_loader.py:103: UserWarning: You are currently using TensorFlow 2.9.0 and trying to load a custom op (custom_ops/seq2seq/_beam_search_ops.so).\n", "TensorFlow Addons has compiled its custom ops against TensorFlow 2.4.0, and there are no compatibility guarantees between the two versions. \n", "This means that you might get segfaults when loading the custom op, or other kind of low-level errors.\n", " If you do, do not file an issue on Github. This is a known limitation.\n", "\n", "It might help you to fallback to pure Python ops with TF_ADDONS_PY_OPS . To do that, see https://github.com/tensorflow/addons#gpucpu-custom-ops \n", "\n", "You can also change the TensorFlow version installed on your system. You would need a TensorFlow version equal to or above 2.4.0 and strictly below 2.5.0.\n", " Note that nightly versions of TensorFlow, as well as non-pip TensorFlow like `conda install tensorflow` or compiled from source are not supported.\n", "\n", "The last solution is to find the TensorFlow Addons version that has custom ops compatible with the TensorFlow installed on your system. To do that, refer to the readme: https://github.com/tensorflow/addons\n", " UserWarning,\n", "/Users/huseinzolkepli/Documents/malaya-boilerplate/malaya_boilerplate/frozen_graph.py:29: UserWarning: Cannot import beam_search_ops from Tensorflow Addons, `deep_model` for stemmer will not available to use, make sure Tensorflow Addons version >= 0.12.0\n", " 'Cannot import beam_search_ops from Tensorflow Addons, `deep_model` for stemmer will not available to use, make sure Tensorflow Addons version >= 0.12.0'\n" ] }, { "data": { "text/plain": [ "'4.7.5'" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import malaya\n", "\n", "malaya.__version__" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "normalizer = malaya.normalize.normalizer()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "kwargs = {\n", " 'normalize_entity': False,\n", " 'normalize_text': False,\n", " 'normalize_url': True,\n", " 'normalize_email': True,\n", " 'normalize_telephone': True,\n", " 'check_english_func': None,\n", "}" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "norm_function = lambda x: normalizer.normalize(x, **kwargs)['normalize']" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'email husein adalah husein dot zol kosong lima di gmail dot com , halaman HTTP huseinhouse dot com dan sangat comel'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "string = 'email husein adalah husein.zol05@gmail.com, halaman http://huseinhouse.com dan sangat comel'\n", "norm_function(string)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "audio, text, decoded, alignment = model.predict(string, norm_function = norm_function)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(audio, rate= 22050)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'email husein adalah husein dot zol kosong lima di gmail dot com , halaman HTTP huseinhouse dot com dan sangat comel .'" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }