{ "cells": [ { "cell_type": "markdown", "id": "superb-atlas", "metadata": {}, "source": [ "# Classification stacking" ] }, { "cell_type": "markdown", "id": "sonic-survey", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/classification-stacking](https://github.com/huseinzol05/malaya-speech/tree/master/example/classification-stacking).\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "elect-version", "metadata": {}, "source": [ "
\n", "\n", "This module is language independent, so it save to use on different languages. Pretrained models trained on multilanguages.\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "higher-cargo", "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", "id": "prescribed-oakland", "metadata": {}, "source": [ "### Why Stacking?\n", "\n", "Sometime a single model is not good enough. So, you need to use multiple models to get a better result! It called stacking.\n", "\n", "In this example, I am going to use gender detection module." ] }, { "cell_type": "code", "execution_count": 1, "id": "blond-virgin", "metadata": {}, "outputs": [], "source": [ "import malaya_speech\n", "import numpy as np\n", "from malaya_speech import Pipeline" ] }, { "cell_type": "code", "execution_count": 2, "id": "completed-record", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1634237, 16000)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y, sr = malaya_speech.load('speech/video/The-Singaporean-White-Boy.wav')\n", "len(y), sr" ] }, { "cell_type": "code", "execution_count": 3, "id": "architectural-florida", "metadata": {}, "outputs": [], "source": [ "# just going to take 30 seconds\n", "y = y[:sr * 30]" ] }, { "cell_type": "code", "execution_count": 4, "id": "uniform-tutorial", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import IPython.display as ipd\n", "ipd.Audio(y, rate = sr)" ] }, { "cell_type": "markdown", "id": "parliamentary-secretary", "metadata": {}, "source": [ "### Supported genders" ] }, { "cell_type": "code", "execution_count": 5, "id": "sunset-debate", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['male', 'female', 'not a gender']" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malaya_speech.gender.labels" ] }, { "cell_type": "markdown", "id": "promotional-robin", "metadata": {}, "source": [ "### List available deep model" ] }, { "cell_type": "code", "execution_count": 6, "id": "comprehensive-marker", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:root:last accuracy during training session before early stopping.\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)Accuracy
vggvox-v231.17.920.9756
deep-speaker96.924.400.9455
\n", "
" ], "text/plain": [ " Size (MB) Quantized Size (MB) Accuracy\n", "vggvox-v2 31.1 7.92 0.9756\n", "deep-speaker 96.9 24.40 0.9455" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "malaya_speech.gender.available_model()" ] }, { "cell_type": "markdown", "id": "different-seattle", "metadata": {}, "source": [ "### Load deep model\n", "\n", "```python\n", "def deep_model(model: str = 'vggvox-v2', quantized: bool = False, **kwargs):\n", " \"\"\"\n", " Load gender detection deep model.\n", "\n", " Parameters\n", " ----------\n", " model : str, optional (default='vggvox-v2')\n", " Model architecture supported. Allowed values:\n", "\n", " * ``'vggvox-v2'`` - finetuned VGGVox V2.\n", " * ``'deep-speaker'`` - finetuned Deep Speaker.\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.supervised.classification.load function\n", " \"\"\"\n", "```" ] }, { "cell_type": "code", "execution_count": 7, "id": "combined-order", "metadata": {}, "outputs": [], "source": [ "vggvox_v2 = malaya_speech.gender.deep_model(model = 'vggvox-v2')\n", "deep_speaker = malaya_speech.gender.deep_model(model = 'deep-speaker')" ] }, { "cell_type": "markdown", "id": "swedish-dividend", "metadata": {}, "source": [ "### How to classify genders in an audio sample" ] }, { "cell_type": "markdown", "id": "fifteen-selection", "metadata": {}, "source": [ "So we are going to use VAD to help us. Instead we are going to classify as a whole sample, we chunk it into multiple small samples and classify it." ] }, { "cell_type": "code", "execution_count": 8, "id": "guilty-holiday", "metadata": {}, "outputs": [], "source": [ "vad = malaya_speech.vad.deep_model(model = 'vggvox-v2')" ] }, { "cell_type": "code", "execution_count": 9, "id": "suited-slovak", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.08 ms, sys: 66 µs, total: 1.14 ms\n", "Wall time: 1.15 ms\n" ] } ], "source": [ "%%time\n", "\n", "frames = list(malaya_speech.utils.generator.frames(y, 30, sr))" ] }, { "cell_type": "code", "execution_count": 10, "id": "specialized-burns", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = Pipeline()\n", "pipeline = (\n", " p.batching(5)\n", " .foreach_map(vad.predict)\n", " .flatten()\n", ")\n", "p.visualize()" ] }, { "cell_type": "code", "execution_count": 11, "id": "motivated-object", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/huseinzolkepli/Documents/tf-1.15/env/lib/python3.7/site-packages/librosa/core/spectrum.py:224: UserWarning: n_fft=512 is too small for input signal of length=480\n", " n_fft, y.shape[-1]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 32.6 s, sys: 6.28 s, total: 38.9 s\n", "Wall time: 9 s\n" ] }, { "data": { "text/plain": [ "dict_keys(['batching', 'predict', 'flatten'])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "result = p.emit(frames)\n", "result.keys()" ] }, { "cell_type": "code", "execution_count": 12, "id": "retired-geography", "metadata": {}, "outputs": [], "source": [ "frames_vad = [(frame, result['flatten'][no]) for no, frame in enumerate(frames)]\n", "grouped_vad = malaya_speech.utils.group.group_frames(frames_vad)\n", "grouped_vad = malaya_speech.utils.group.group_frames_threshold(grouped_vad, threshold_to_stop = 0.3)" ] }, { "cell_type": "code", "execution_count": 13, "id": "consolidated-anger", "metadata": {}, "outputs": [ { "data": { "image/png": "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CAlV9vn5+dBqtRg7dix0Ol2cpSWUpL6+HoMHD8ZvfvMbFBUVAQBuvPFGLFy4EC0tLfj73/+eUO2ediJVzt69e2E2m1FeXt51raioCIWFhWTS2AM4cOAABg0aFG8xiCizbds2FBQU4IMPPugaWDxUVFT4tH8AmDx5MrX/JCFY2e/fvx9GoxGFhYVxko6IFgUFBXjttdcwcODArmsMwwAAWlpasG3bNp92z7IsJk2aRO0+CQhV9vv370dxcTEpkElIbm4unn/++a6+vrq6Gv/9738xevRopKenJ1y7p51IlVNdXQ0AyM/P97mel5fXdY9IXg4cOACbzYb58+ejqqoKQ4YMwT333IMxY8bEWzRCQWbPno3Zs2cL3quurqb2n8QEK/sDBw4gPT0dv/3tb7FlyxZkZ2djzpw5uOGGG8CytAacyGRnZ+Pss8/2ufbmm2+io6MDo0aNgsViEWz3O3fujKGURDQIVvbTp0/HG2+8Aa1Wi9tuuw27du1Cfn4+rr/+elxxxRVxkZeIDnfccQc2bNiAzMxMLF++HK2trQnX7mkUUjlWqxUsywasSOn1ethstjhJRcSCjo4OnDhxAu3t7bjvvvvw6quvIi8vD9deey0OHToUb/GIGNHR0QG9Xu9zjdp/z+DgwYOwWCyYPn06/v73v2PBggV46aWX8PLLL8dbNEJhNmzYgOeeew433XRT186zwWDweUan01G7T0K8y37w4ME4ePAgmpubMW/ePPz973/HhRdeiN///vd477334i0qoSC//vWv8e6772L8+PG46aabYDabASRWu6edSJVjNBrBcRycTie02u7istvtSElJiaNkRLQxGo344YcfoNfru5SIp556Crt378Z//vMfPPTQQ3GWkIgFBoMBDofD5xq1/57B008/DYvFgoyMDADAsGHD0NbWhr/85S9YtGhRlwkckdisWrUKDz30EC6++GLce++9aGlpAeBu5944HA5q90mGf9kD7nPwdrsdaWlpAIDS0lJUVVXhn//8J+bOnRtPcQkFGTZsGADg+eefx9lnn421a9cCSKx2TzuRKqegoAAAUFdX53O9trY2YMubSD7S0tJ8dqFYlkVJSQlOnz4dR6mIWFJQUIDa2lqfa9T+ewZarbZLgfQwbNgwmM1mtLW1xUkqQkleffVV3H///bjmmmuwdOlSsCyLrKwspKamUrtP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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "malaya_speech.extra.visualization.visualize_vad(y, grouped_vad, sr, figsize = (15, 3))" ] }, { "cell_type": "code", "execution_count": 14, "id": "distinguished-latvia", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_vggvox_v2 = Pipeline()\n", "pipeline = (\n", " p_vggvox_v2.foreach_map(vggvox_v2)\n", " .flatten()\n", ")\n", "p_vggvox_v2.visualize()" ] }, { "cell_type": "code", "execution_count": 15, "id": "vocational-novel", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_deep_speaker = Pipeline()\n", "pipeline = (\n", " p_deep_speaker.foreach_map(deep_speaker)\n", " .flatten()\n", ")\n", "p_deep_speaker.visualize()" ] }, { "cell_type": "markdown", "id": "governmental-snapshot", "metadata": {}, "source": [ "### Stacking interface\n", "\n", "```python\n", "def classification_stack(models):\n", " \"\"\"\n", " Stacking for classification models. All models should be in the same domain classification.\n", "\n", " Parameters\n", " ----------\n", " models: List[Callable]\n", " list of models.\n", "\n", " Returns\n", " -------\n", " result: malaya_speech.stack.Stack class\n", " \"\"\"\n", "```\n", "\n", "```python\n", "def predict_proba(self, inputs, aggregate: Callable = gmean):\n", " \"\"\"\n", " Stacking for predictive models, will return probability.\n", "\n", " Parameters\n", " ----------\n", " inputs: List[np.array]\n", " aggregate : Callable, optional (default=scipy.stats.mstats.gmean)\n", " Aggregate function.\n", "\n", " Returns\n", " -------\n", " result: np.array\n", " \"\"\"\n", "```\n", "\n", "```python\n", "def predict(self, inputs, aggregate: Callable = gmean):\n", " \"\"\"\n", " Stacking for predictive models, will return labels.\n", "\n", " Parameters\n", " ----------\n", " inputs: List[np.array]\n", " aggregate : Callable, optional (default=scipy.stats.mstats.gmean)\n", " Aggregate function.\n", "\n", " Returns\n", " -------\n", " result: List[str]\n", " \"\"\"\n", "```\n", "\n", "By default, aggregated function for stacking is `scipy.stats.mstats.gmean`." ] }, { "cell_type": "code", "execution_count": 16, "id": "attached-community", "metadata": {}, "outputs": [], "source": [ "gender_stack = malaya_speech.stack.classification_stack([vggvox_v2, vggvox_v2, deep_speaker])" ] }, { "cell_type": "code", "execution_count": 17, "id": "blind-short", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_stacking = Pipeline()\n", "pipeline = (\n", " p_stacking.foreach_map(gender_stack)\n", " .flatten()\n", ")\n", "p_stacking.visualize()" ] }, { "cell_type": "code", "execution_count": 18, "id": "binary-continent", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 5.38 s, sys: 1.3 s, total: 6.68 s\n", "Wall time: 2.3 s\n" ] }, { "data": { "text/plain": [ "dict_keys(['gender', 'flatten'])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "samples_vad = [g[0] for g in grouped_vad]\n", "result_vggvox_v2 = p_vggvox_v2.emit(samples_vad)\n", "result_vggvox_v2.keys()" ] }, { "cell_type": "code", "execution_count": 20, "id": "developing-preparation", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 4.14 s, sys: 514 ms, total: 4.65 s\n", "Wall time: 851 ms\n" ] }, { "data": { "text/plain": [ "dict_keys(['gender', 'flatten'])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "samples_vad = [g[0] for g in grouped_vad]\n", "result_deep_speaker = p_deep_speaker.emit(samples_vad)\n", "result_deep_speaker.keys()" ] }, { "cell_type": "code", "execution_count": 21, "id": "artistic-publicity", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 14.9 s, sys: 2.82 s, total: 17.7 s\n", "Wall time: 3.14 s\n" ] }, { "data": { "text/plain": [ "dict_keys(['gender', 'flatten'])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "\n", "samples_vad = [g[0] for g in grouped_vad]\n", "result_stacking = p_stacking.emit(samples_vad)\n", "result_stacking.keys()" ] }, { "cell_type": "code", "execution_count": 23, "id": "oriental-lotus", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(, 'not a gender'),\n", " (, 'not a gender'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female')]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples_vad_vggvox_v2 = [(frame, result_vggvox_v2['flatten'][no]) for no, frame in enumerate(samples_vad)]\n", "samples_vad_vggvox_v2" ] }, { "cell_type": "code", "execution_count": 24, "id": "emotional-timing", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(, 'not a gender'),\n", " (, 'not a gender'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female')]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples_vad_deep_speaker = [(frame, result_deep_speaker['flatten'][no]) for no, frame in enumerate(samples_vad)]\n", "samples_vad_deep_speaker" ] }, { "cell_type": "code", "execution_count": 25, "id": "prospective-enforcement", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(, 'not a gender'),\n", " (, 'not a gender'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'male'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'female'),\n", " (, 'not a gender'),\n", " (, 'female'),\n", " (, 'female')]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples_vad_stacking = [(frame, result_stacking['flatten'][no]) for no, frame in enumerate(samples_vad)]\n", "samples_vad_stacking" ] }, { "cell_type": "code", "execution_count": 26, "id": "upper-raising", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": null, "id": "mechanical-leisure", "metadata": {}, "outputs": [], "source": [ "nrows = 4\n", "fig, ax = plt.subplots(nrows = nrows, ncols = 1)\n", "fig.set_figwidth(20)\n", "fig.set_figheight(nrows * 3)\n", "malaya_speech.extra.visualization.visualize_vad(y, grouped_vad, sr, ax = ax[0])\n", "malaya_speech.extra.visualization.plot_classification(samples_vad_vggvox_v2, \n", " 'emotion detection vggvox v2', ax = ax[1])\n", "malaya_speech.extra.visualization.plot_classification(samples_vad_deep_speaker, \n", " 'emotion detection deep speaker', ax = ax[2])\n", "malaya_speech.extra.visualization.plot_classification(samples_vad_stacking, \n", " 'emotion detection stacking', ax = ax[3])\n", "fig.tight_layout()\n", "plt.show()" ] } ], "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 }