{ "cells": [ { "cell_type": "markdown", "id": "frozen-champion", "metadata": {}, "source": [ "# WAV separation" ] }, { "cell_type": "markdown", "id": "challenging-viking", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/multispeaker-separation-wav](https://github.com/huseinzol05/malaya-speech/tree/master/example/multispeaker-separation-wav).\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "dense-canadian", "metadata": {}, "source": [ "
\n", "\n", "This module is language independent, so it save to use on different languages.\n", " \n", "
" ] }, { "cell_type": "code", "execution_count": 1, "id": "structured-machine", "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", "id": "legislative-bulletin", "metadata": {}, "source": [ "### Multispeaker separation description\n", "\n", "1. FastSep-WAV only able to separate 8k sample rate.\n", "2. FastSep-WAV trained to separate 4 unique speakers.\n", "3. Trained on VCTK, Nepali, Mandarin and Malay mixed speakers." ] }, { "cell_type": "markdown", "id": "subsequent-benefit", "metadata": {}, "source": [ "### List available FastSep-WAV" ] }, { "cell_type": "code", "execution_count": 2, "id": "arctic-stone", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:Tested on 1k samples\n" ] }, { "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", "
Size (MB)Quantized Size (MB)SISNR PIT
fastsep-278.720.514.156882
fastsep-4155.040.219.682500
\n", "
" ], "text/plain": [ " Size (MB) Quantized Size (MB) SISNR PIT\n", "fastsep-2 78.7 20.5 14.156882\n", "fastsep-4 155.0 40.2 19.682500" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malaya_speech.multispeaker_separation.available_deep_wav()" ] }, { "cell_type": "markdown", "id": "reverse-pantyhose", "metadata": {}, "source": [ "### Load model\n", "\n", "```python\n", "def deep_wav(model: str = 'fastsep-4', quantized: bool = False, **kwargs):\n", " \"\"\"\n", " Load FastSep model, trained on raw 8k wav using SISNR PIT loss.\n", "\n", " Parameters\n", " ----------\n", " model : str, optional (default='fastsep-4')\n", " Model architecture supported. Allowed values:\n", "\n", " * ``'fastsep-4'`` - FastSep 4 layers trained on raw 8k wav.\n", " * ``'fastsep-2'`` - FastSep 2 layers trained on raw 8k wav.\n", " quantized : bool, optional (default=False)\n", " if True, will load 8-bit quantized model. \n", " Quantized model not necessary faster, totally depends on the machine.\n", "\n", " Returns\n", " -------\n", " result : malaya_speech.model.tf.Split class\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 3, "id": "divine-horse", "metadata": {}, "outputs": [], "source": [ "model = malaya_speech.multispeaker_separation.deep_wav('fastsep-4')" ] }, { "cell_type": "markdown", "id": "affiliated-morgan", "metadata": {}, "source": [ "### Load quantized model" ] }, { "cell_type": "code", "execution_count": 4, "id": "fourth-rendering", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:Load quantized model will cause accuracy drop.\n" ] } ], "source": [ "quantized_model = malaya_speech.multispeaker_separation.deep_wav('fastsep-4', quantized = True)" ] }, { "cell_type": "markdown", "id": "controversial-composite", "metadata": {}, "source": [ "### Generate random mixed audio" ] }, { "cell_type": "code", "execution_count": 5, "id": "governing-madrid", "metadata": {}, "outputs": [], "source": [ "import random\n", "import malaya_speech.augmentation.waveform as augmentation\n", "\n", "sr = 8000\n", "speakers_size = 4\n", "\n", "def read_wav(f):\n", " return malaya_speech.load(f, sr = sr)\n", "\n", "\n", "def random_sampling(s, length):\n", " return augmentation.random_sampling(s, sr = sr, length = length)\n", "\n", "def combine_speakers(files, n = 5, limit = 4):\n", " w_samples = random.sample(files, n)\n", " w_samples = [read_wav(f)[0] for f in w_samples]\n", " w_lens = [len(w) / sr for w in w_samples]\n", " w_lens = int(min(min(w_lens) * 1000, random.randint(3000, 7000)))\n", " w_samples = [random_sampling(w, length = w_lens) for w in w_samples]\n", " y = [w_samples[0]]\n", " left = w_samples[0].copy()\n", "\n", " combined = None\n", "\n", " for i in range(1, n):\n", " right = w_samples[i].copy()\n", " overlap = random.uniform(0.98, 1.0)\n", " len_overlap = int(overlap * len(right))\n", " minus = len(left) - len_overlap\n", " if minus < 0:\n", " minus = 0\n", " padded_right = np.pad(right, (minus, 0))\n", " left = np.pad(left, (0, len(padded_right) - len(left)))\n", "\n", " left = left + padded_right\n", "\n", " if i >= (limit - 1):\n", " if combined is None:\n", " combined = padded_right\n", " else:\n", " combined = np.pad(\n", " combined, (0, len(padded_right) - len(combined))\n", " )\n", " combined += padded_right\n", "\n", " else:\n", " y.append(padded_right)\n", "\n", " if combined is not None:\n", " y.append(combined)\n", " \n", " maxs = [max(left)]\n", " for i in range(len(y)):\n", " if len(y[i]) != len(left):\n", " y[i] = np.pad(y[i], (0, len(left) - len(y[i])))\n", " maxs.append(max(y[i]))\n", " \n", " max_amp = max(maxs)\n", " mix_scaling = 1 / max_amp * 0.9\n", " left = left * mix_scaling\n", " \n", " for i in range(len(y)):\n", " y[i] = y[i] * mix_scaling\n", " \n", " return left, y" ] }, { "cell_type": "code", "execution_count": 6, "id": "effective-bidding", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "23" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from glob import glob\n", "\n", "wavs = glob('speech/example-speaker/*.wav')\n", "wavs.extend(glob('speech/vctk/*.flac'))\n", "len(wavs)" ] }, { "cell_type": "code", "execution_count": 18, "id": "portable-medication", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(3.45525, 4)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "left, y = combine_speakers(wavs, speakers_size)\n", "len(left) / sr, len(y)" ] }, { "cell_type": "code", "execution_count": 19, "id": "biological-bridge", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(left, rate = sr)" ] }, { "cell_type": "code", "execution_count": 20, "id": "liquid-westminster", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(left, label = 'mixed')\n", "plt.plot(y[0], label = 'y0')\n", "plt.plot(y[1], label = 'y1')\n", "plt.plot(y[2], label = 'y2')\n", "plt.plot(y[3], label = 'y3')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "official-ensemble", "metadata": {}, "source": [ "### Predict\n", "\n", "```python\n", "def predict(self, input):\n", " \"\"\"\n", " Split an audio into 4 different speakers.\n", "\n", " Parameters\n", " ----------\n", " input: np.array or malaya_speech.model.frame.Frame\n", "\n", " Returns\n", " -------\n", " result: np.array\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 21, "id": "neither-lancaster", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 20.5 s, sys: 1.68 s, total: 22.2 s\n", "Wall time: 3.51 s\n" ] }, { "data": { "text/plain": [ "(4, 27642)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "y = model.predict(left)\n", "y.shape" ] }, { "cell_type": "code", "execution_count": 22, "id": "conditional-namibia", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 20.8 s, sys: 1.73 s, total: 22.5 s\n", "Wall time: 3.45 s\n" ] }, { "data": { "text/plain": [ "(4, 27642)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "quantized_y = quantized_model.predict(left)\n", "quantized_y.shape" ] }, { "cell_type": "markdown", "id": "popular-wednesday", "metadata": {}, "source": [ "### Results" ] }, { "cell_type": "code", "execution_count": 23, "id": "above-fetish", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(y[0], rate = sr)" ] }, { "cell_type": "code", "execution_count": 24, "id": "olympic-combination", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(y[1], rate = sr)" ] }, { "cell_type": "code", "execution_count": 25, "id": "dedicated-movie", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(y[2], rate = sr)" ] }, { "cell_type": "code", "execution_count": 26, "id": "mexican-algorithm", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(y[3], rate = sr)" ] }, { "cell_type": "markdown", "id": "weird-baseball", "metadata": {}, "source": [ "### Quantized results" ] }, { "cell_type": "code", "execution_count": 27, "id": "proper-labor", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(quantized_y[0], rate = sr)" ] }, { "cell_type": "code", "execution_count": 28, "id": "arctic-sessions", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(quantized_y[1], rate = sr)" ] }, { "cell_type": "code", "execution_count": 29, "id": "reduced-million", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(quantized_y[2], rate = sr)" ] }, { "cell_type": "code", "execution_count": 30, "id": "elementary-ribbon", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(quantized_y[3], rate = sr)" ] } ], "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" } }, "nbformat": 4, "nbformat_minor": 5 }