{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# VITS long text" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/vits-long-text](https://github.com/huseinzol05/malaya-speech/tree/master/example/vits-long-text).\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": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "\n", "os.environ['CUDA_VISIBLE_DEVICES'] = ''\n", "os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "`pyaudio` is not available, `malaya_speech.streaming.pyaudio` is not able to use.\n" ] } ], "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": [ "### TTS model\n", "\n", "We are going to use VITS, really fast and accurate, plus not required a vocoder!" ] }, { "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", " \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", " \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 lowercasenum speakers
mesolitica/VITS-osman145TrueFalse1
mesolitica/VITS-yasmin145TrueFalse1
mesolitica/VITS-female-singlish145TrueTrue1
mesolitica/VITS-haqkiem145TrueTrue1
mesolitica/VITS-orkid145TrueFalse1
mesolitica/VITS-bunga145TrueFalse1
mesolitica/VITS-jebat145TrueFalse1
mesolitica/VITS-tuah145TrueFalse1
mesolitica/VITS-male145TrueFalse1
mesolitica/VITS-female145TrueFalse1
mesolitica/VITS-multispeaker-clean159TrueFalse9
mesolitica/VITS-multispeaker-noisy159TrueFalse3
\n", "
" ], "text/plain": [ " Size (MB) Understand punctuation \\\n", "mesolitica/VITS-osman 145 True \n", "mesolitica/VITS-yasmin 145 True \n", "mesolitica/VITS-female-singlish 145 True \n", "mesolitica/VITS-haqkiem 145 True \n", "mesolitica/VITS-orkid 145 True \n", "mesolitica/VITS-bunga 145 True \n", "mesolitica/VITS-jebat 145 True \n", "mesolitica/VITS-tuah 145 True \n", "mesolitica/VITS-male 145 True \n", "mesolitica/VITS-female 145 True \n", "mesolitica/VITS-multispeaker-clean 159 True \n", "mesolitica/VITS-multispeaker-noisy 159 True \n", "\n", " Is lowercase num speakers \n", "mesolitica/VITS-osman False 1 \n", "mesolitica/VITS-yasmin False 1 \n", "mesolitica/VITS-female-singlish True 1 \n", "mesolitica/VITS-haqkiem True 1 \n", "mesolitica/VITS-orkid False 1 \n", "mesolitica/VITS-bunga False 1 \n", "mesolitica/VITS-jebat False 1 \n", "mesolitica/VITS-tuah False 1 \n", "mesolitica/VITS-male False 1 \n", "mesolitica/VITS-female False 1 \n", "mesolitica/VITS-multispeaker-clean False 9 \n", "mesolitica/VITS-multispeaker-noisy False 3 " ] }, "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='mesolitica/VITS-osman')\n", " Check available models at `malaya_speech.tts.available_vits()`.\n", " Returns\n", " -------\n", " result : malaya_speech.torch_model.synthesis.VITS class\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/husein/.local/lib/python3.8/site-packages/malaya/tokenizer.py:202: FutureWarning: Possible nested set at position 3361\n", " self.tok = re.compile(r'({})'.format('|'.join(pipeline)))\n", "/home/husein/.local/lib/python3.8/site-packages/malaya/tokenizer.py:202: FutureWarning: Possible nested set at position 3879\n", " self.tok = re.compile(r'({})'.format('|'.join(pipeline)))\n" ] } ], "source": [ "yasmin = malaya_speech.tts.vits(model = 'mesolitica/VITS-yasmin')\n", "osman = malaya_speech.tts.vits(model = 'mesolitica/VITS-osman')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`yasmin` and `osman` are the best speakers for long text TTS task." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load sentence tokenizer\n", "\n", "We are going to use Malaya sentence tokenizer, can split even for very complex pattern, https://malaya.readthedocs.io/en/latest/load-tokenizer.html#Sentence-tokenizer\n", "\n", "Make sure installed Malaya first,\n", "\n", "```bash\n", "pip3 install malaya\n", "```" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import malaya" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "long_text = \"\"\"\n", "SHAH ALAM - Pertubuhan Kebajikan Anak Bersatu Selangor (PKABS) bersetuju pihak kerajaan mewujudkan Suruhanjaya Siasatan Diraja (RCI) untuk menyiasat isu kartel daging.\n", "\n", "Pengerusinya, Rahmadin Alimuddin berkata, perkara tersebut perlu disiasat sebaiknya kerana isu logo halal palsu membimbangkan umat Islam di negara ini.\n", "\n", "Menurutnya, siasatan juga dapat memastikan pembekal daging beku mengikut piawaian yang ditetapkan oleh kerajaan Malaysia sebelum menjualnya di pasaran.\n", "\n", "“Saya berharap pihak yang menyiasat isu daging kartel dapat menyelesaikan isu ini dengan adil supaya rakyat Malaysia tidak ragu dengan daging beku yang berada di pasaran,” katanya ketika dihubungi Sinar Harian pada Sabtu.\n", "\n", "Terdahulu, Rahmadin dan Presiden Gagasan Baru Harapan Malaysia (GBHM), Mohd Zulfitri Mohd Basir telah menghantar memorandum kepada Suruhanjaya Pencegahan Rasuah Malaysia (SPRM) bagi meminta pihak tersebut menjalankan siasatan berkenaan kes kartel daging import haram di Senai, Johor awal Disember lalu.\n", "\n", "Penyerahan memorandum tersebut meminta pihak berkuasa mendedahkan kartel yang terlibat dalam sindiket itu selain meminta penjelasan daging tersebut boleh terlepas daripada pihak berkuasa.\n", "\"\"\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Use Pipeline" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "pipeline = (\n", " p.map(malaya.text.function.split_into_sentences)\n", " .foreach_map(yasmin)\n", " .foreach_map(lambda x: x['y'], name = 'y')\n", ")\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2min 33s, sys: 7.39 s, total: 2min 40s\n", "Wall time: 18.7 s\n" ] } ], "source": [ "%%time\n", "\n", "r = p(long_text)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['split_into_sentences', 'text-to-speech-vits', 'y'])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r.keys()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "silent_period = np.array([0] * int(22050 * 0.5))\n", "concated = []\n", "for i in range(len(r['y'])):\n", " c = [r['y'][i]]\n", " if i < len(r['y']) - 1:\n", " c.append(silent_period)\n", " concated.extend(c)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(np.concatenate(concated), rate = 22050)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "pipeline = (\n", " p.map(malaya.text.function.split_into_sentences)\n", " .foreach_map(osman)\n", " .foreach_map(lambda x: x['y'], name = 'y')\n", ")\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 2min 20s, sys: 6.33 s, total: 2min 26s\n", "Wall time: 15.9 s\n" ] } ], "source": [ "%%time\n", "\n", "r = p(long_text)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "concated = []\n", "for i in range(len(r['y'])):\n", " c = [r['y'][i]]\n", " if i < len(r['y']) - 1:\n", " c.append(silent_period)\n", " concated.extend(c)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(np.concatenate(concated), 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 }