{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Text-to-Speech VITS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "VITS, End-to-End." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/tts-vits](https://github.com/huseinzol05/malaya-speech/tree/master/example/tts-vits).\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "This module is not language independent, so it not save to use on different languages. Pretrained models trained on hyperlocal languages.\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "This is an application of malaya-speech Pipeline, read more about malaya-speech Pipeline at [malaya-speech/example/pipeline](https://github.com/huseinzol05/malaya-speech/tree/master/example/pipeline).\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "Required PyTorch >= 1.10.\n", " \n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "os.environ['CUDA_VISIBLE_DEVICES'] = ''" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import malaya_speech\n", "import numpy as np\n", "from malaya_speech import Pipeline\n", "import matplotlib.pyplot as plt\n", "import IPython.display as ipd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### VITS description\n", "\n", "1. Malaya-speech VITS generate End-to-End, from text input into waveforms with 22050 sample rate.\n", "2. No length limit, but to get better results, split the text." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### List available VITS" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Size (MB)Understand punctuationIs lowercase
mesolitica/VITS-osman145TrueFalse
mesolitica/VITS-yasmin145TrueFalse
mesolitica/VITS-female-singlish145TrueTrue
mesolitica/VITS-haqkiem145TrueTrue
\n", "
" ], "text/plain": [ " Size (MB) Understand punctuation Is lowercase\n", "mesolitica/VITS-osman 145 True False\n", "mesolitica/VITS-yasmin 145 True False\n", "mesolitica/VITS-female-singlish 145 True True\n", "mesolitica/VITS-haqkiem 145 True True" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malaya_speech.tts.available_vits()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load VITS model\n", "\n", "Fastspeech2 use text normalizer from Malaya, https://malaya.readthedocs.io/en/latest/load-normalizer.html#Load-normalizer,\n", "\n", "Make sure you install Malaya version > 4.0 to make it works, **to get better speech synthesis, make sure Malaya version > 4.9.1**,\n", "\n", "```bash\n", "pip install malaya -U\n", "```\n", "\n", "```python\n", "def vits(model: str = 'mesolitica/VITS-osman', **kwargs):\n", " \"\"\"\n", " Load VITS End-to-End TTS model.\n", "\n", " Parameters\n", " ----------\n", " model : str, optional (default='male')\n", " Model architecture supported. Allowed values:\n", "\n", " * ``'mesolitica/VITS-osman'`` - VITS trained on male Osman voice.\n", " * ``'mesolitica/VITS-yasmin'`` - VITS trained on female Yasmin voice.\n", " * ``'mesolitica/VITS-female-singlish'`` - VITS trained on female singlish voice.\n", " * ``'mesolitica/VITS-haqkiem'`` - VITS trained on haqkiem voice.\n", "\n", " Returns\n", " -------\n", " result : malaya_speech.torch_model.synthesis.VITS class\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "osman = malaya_speech.tts.vits(model = 'mesolitica/VITS-osman')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# https://www.sinarharian.com.my/article/115216/BERITA/Politik/Syed-Saddiq-pertahan-Dr-Mahathir\n", "string1 = 'Syed Saddiq berkata, mereka seharusnya mengingati bahawa semasa menjadi Perdana Menteri Pakatan Harapan'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Predict\n", "\n", "```python\n", "def predict(\n", " self,\n", " string,\n", " temperature: float = 0.6666,\n", " temperature_durator: float = 0.6666,\n", " length_ratio: float = 1.0,\n", " **kwargs,\n", "):\n", " \"\"\"\n", " Change string to waveform.\n", "\n", " Parameters\n", " ----------\n", " string: str\n", " temperature: float, optional (default=0.6666)\n", " Decoder model trying to decode with encoder(text) + random.normal() * temperature.\n", " temperature_durator: float, optional (default=0.6666)\n", " Durator trying to predict alignment with random.normal() * temperature_durator.\n", " length_ratio: float, optional (default=1.0)\n", " Increase this variable will increase time voice generated.\n", "\n", " Returns\n", " -------\n", " result: Dict[string, ids, alignment, y]\n", " \"\"\"\n", "```\n", "\n", "It only able to predict 1 text for single feed-forward." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['string', 'ids', 'alignment', 'y'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r_osman = osman.predict(string1)\n", "r_osman.keys()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8, 6))\n", "ax = fig.add_subplot(111)\n", "ax.set_title('Alignment steps')\n", "im = ax.imshow(\n", " r_osman['alignment'],\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": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(r_osman['y'], rate = 22050)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "string2 = 'Haqkiem adalah pelajar tahun akhir yang mengambil Ijazah Sarjana Muda Sains Komputer Kecerdasan Buatan utama dari Universiti Teknikal Malaysia Melaka (UTeM) yang kini berusaha untuk latihan industri di mana dia secara praktikal dapat menerapkan pengetahuannya dalam Perisikan Perisian dan Pengaturcaraan ke arah organisasi atau industri yang berkaitan.'" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['string', 'ids', 'alignment', 'y'])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r_osman = osman.predict(string2)\n", "r_osman.keys()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8, 6))\n", "ax = fig.add_subplot(111)\n", "ax.set_title('Alignment steps')\n", "im = ax.imshow(\n", " r_osman['alignment'],\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": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(r_osman['y'], rate = 22050)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" }, "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 }