{ "cells": [ { "cell_type": "markdown", "id": "aerial-providence", "metadata": {}, "source": [ "# Realtime Classification\n", "\n", "Let say you want to cut your realtime recording audio by using VAD after that classify using classification models, you can do that with Malaya-Speech!" ] }, { "cell_type": "markdown", "id": "acknowledged-relative", "metadata": {}, "source": [ "
\n", "\n", "This tutorial is available as an IPython notebook at [malaya-speech/example/realtime-classification](https://github.com/huseinzol05/malaya-speech/tree/master/example/realtime-classification).\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "responsible-aurora", "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": "affecting-continent", "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, "id": "unlikely-patrick", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Cannot import beam_search_ops from Tensorflow Addons, ['malaya.jawi_rumi.deep_model', 'malaya.phoneme.deep_model', 'malaya.rumi_jawi.deep_model', 'malaya.stem.deep_model'] will not available to use, make sure Tensorflow Addons version >= 0.12.0\n", "check compatible Tensorflow version with Tensorflow Addons at https://github.com/tensorflow/addons/releases\n", "/Users/huseinzolkepli/.pyenv/versions/3.9.4/lib/python3.9/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n", "torchaudio.io.StreamReader exception: FFmpeg libraries are not found. Please install FFmpeg.\n", "`torchaudio.io.StreamReader` is not available, `malaya_speech.streaming.torchaudio.stream` is not able to use.\n", "`openai-whisper` is not available, native whisper processor is not available, will use huggingface processor instead.\n", "`torchaudio.io.StreamReader` is not available, `malaya_speech.streaming.torchaudio` is not able to use.\n" ] } ], "source": [ "import malaya_speech\n", "from malaya_speech import Pipeline\n", "from malaya_speech.utils.astype import float_to_int" ] }, { "cell_type": "markdown", "id": "adjustable-saver", "metadata": {}, "source": [ "### Load VAD model\n", "\n", "Fastest and common model people use, is webrtc. Read more about VAD at https://malaya-speech.readthedocs.io/en/latest/load-vad.html" ] }, { "cell_type": "code", "execution_count": 2, "id": "starting-roller", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "webrtc = malaya_speech.vad.webrtc()\n", "p_vad = Pipeline()\n", "pipeline = (\n", " p_vad.map(lambda x: float_to_int(x, divide_max_abs=False))\n", " .map(webrtc)\n", ")\n", "p_vad.visualize()" ] }, { "cell_type": "markdown", "id": "80b52e75", "metadata": {}, "source": [ "Starting malaya-speech 1.4.0, streaming always returned a float32 array between -1 and +1 values." ] }, { "cell_type": "markdown", "id": "massive-abortion", "metadata": {}, "source": [ "### Streaming interface\n", "\n", "```python\n", "def stream(\n", " vad_model=None,\n", " asr_model=None,\n", " classification_model=None,\n", " sample_rate: int = 16000,\n", " segment_length: int = 2560,\n", " num_padding_frames: int = 20,\n", " ratio: float = 0.75,\n", " min_length: float = 0.1,\n", " max_length: float = 10.0,\n", " realtime_print: bool = True,\n", " **kwargs,\n", "):\n", " \"\"\"\n", " Stream an audio using pyaudio library.\n", "\n", " Parameters\n", " ----------\n", " vad_model: object, optional (default=None)\n", " vad model / pipeline.\n", " asr_model: object, optional (default=None)\n", " ASR model / pipeline, will transcribe each subsamples realtime.\n", " classification_model: object, optional (default=None)\n", " classification pipeline, will classify each subsamples realtime.\n", " device: None, optional (default=None)\n", " `device` parameter for pyaudio, check available devices from `sounddevice.query_devices()`.\n", " sample_rate: int, optional (default = 16000)\n", " output sample rate.\n", " segment_length: int, optional (default=2560)\n", " usually derived from asr_model.segment_length * asr_model.hop_length,\n", " size of audio chunks, actual size in term of second is `segment_length` / `sample_rate`.\n", " ratio: float, optional (default = 0.75)\n", " if 75% of the queue is positive, assumed it is a voice activity.\n", " min_length: float, optional (default=0.1)\n", " minimum length (second) to accept a subsample.\n", " max_length: float, optional (default=10.0)\n", " maximum length (second) to accept a subsample.\n", " realtime_print: bool, optional (default=True)\n", " Will print results for ASR.\n", " **kwargs: vector argument\n", " vector argument pass to malaya_speech.streaming.pyaudio.Audio interface.\n", "\n", " Returns\n", " -------\n", " result : List[dict]\n", " \"\"\"\n", "```" ] }, { "cell_type": "markdown", "id": "atlantic-automation", "metadata": {}, "source": [ "### Check available devices" ] }, { "cell_type": "code", "execution_count": 3, "id": "received-finland", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "> 0 MacBook Air Microphone, Core Audio (1 in, 0 out)\n", "< 1 MacBook Air Speakers, Core Audio (0 in, 2 out)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sounddevice\n", "\n", "sounddevice.query_devices()" ] }, { "cell_type": "markdown", "id": "beneficial-russian", "metadata": {}, "source": [ "By default it will use `0` index." ] }, { "cell_type": "markdown", "id": "efficient-syria", "metadata": {}, "source": [ "### Load Classification models\n", "\n", "In this example, I am going to use 3 different modules, gender detection, language detection and age detection." ] }, { "cell_type": "code", "execution_count": 4, "id": "appropriate-springfield", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/huseinzolkepli/Documents/server-husein/dev/malaya-speech/malaya_speech/utils/featurization.py:38: FutureWarning: Pass sr=16000, n_fft=512 as keyword args. From version 0.10 passing these as positional arguments will result in an error\n", " self.mel_basis = librosa.filters.mel(\n" ] } ], "source": [ "gender_model = malaya_speech.gender.deep_model(model = 'vggvox-v2')\n", "language_detection_model = malaya_speech.language_detection.deep_model(model = 'vggvox-v2')\n", "age_model = malaya_speech.age_detection.deep_model(model = 'vggvox-v2')" ] }, { "cell_type": "markdown", "id": "declared-intelligence", "metadata": {}, "source": [ "### Classification Pipeline\n", "\n", "In this example, I just keep it simple. **And needs to end with `classification` map or else the streaming interface will throw an error**." ] }, { "cell_type": "code", "execution_count": 5, "id": "nonprofit-boundary", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_classification = Pipeline()\n", "to_float = p_classification\n", "gender = to_float.map(gender_model)\n", "language_detection = to_float.map(language_detection_model)\n", "age_detection = to_float.map(age_model)\n", "combined = gender.zip(language_detection).zip(age_detection).flatten()\n", "combined.map(lambda x: x, name = 'classification')\n", "\n", "p_classification.visualize()" ] }, { "cell_type": "markdown", "id": "ambient-boring", "metadata": {}, "source": [ "**Again, once you start to run the code below, it will straight away recording your voice**. \n", "\n", "If you run in jupyter notebook, press button stop up there to stop recording, if in terminal, press `CTRL + c`." ] }, { "cell_type": "code", "execution_count": 6, "id": "systematic-toddler", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2023-04-02 19:18:58.270803: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:354] MLIR V1 optimization pass is not enabled\n", "2023-04-02 19:18:58.294652: W tensorflow/core/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "(['not a gender', 'not a language', 'teens']) (['male', 'indonesian', 'teens']) (['male', 'malay', 'twenties']) (['male', 'indonesian', 'twenties']) (['male', 'others', 'teens']) (['male', 'malay', 'teens']) (['female', 'not a language', 'fifties']) " ] } ], "source": [ "samples = malaya_speech.streaming.pyaudio.stream(p_vad, classification_model = p_classification,\n", " segment_length = 320)" ] }, { "cell_type": "code", "execution_count": 7, "id": "386fbc95", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'wav_data': array([0.00218571, 0.00169103, 0.00161687, ..., 0.00227111, 0.00199278,\n", " 0.00150959], dtype=float32),\n", " 'start': 0.88,\n", " 'classification_model': ['not a gender', 'not a language', 'teens'],\n", " 'end': 2.0},\n", " {'wav_data': array([ 0.0022611 , 0.00253195, 0.002885 , ..., -0.00176323,\n", " -0.00120754, -0.00099424], dtype=float32),\n", " 'start': 3.96,\n", " 'classification_model': ['male', 'indonesian', 'teens'],\n", " 'end': 5.92},\n", " {'wav_data': array([-0.00446817, -0.00548439, -0.00511238, ..., -0.0019373 ,\n", " -0.00055957, -0.0007821 ], dtype=float32),\n", " 'start': 9.8,\n", " 'classification_model': ['male', 'malay', 'twenties'],\n", " 'end': 12.260000000000002},\n", " {'wav_data': array([-9.5548556e-04, -7.1723713e-04, -6.5159990e-04, ...,\n", " 4.9564158e-05, 8.1537823e-05, 8.0748869e-06], dtype=float32),\n", " 'start': 13.14,\n", " 'classification_model': ['male', 'indonesian', 'twenties'],\n", " 'end': 16.1},\n", " {'wav_data': array([-0.00077093, -0.00065072, -0.00030474, ..., -0.00551166,\n", " -0.0049879 , -0.00419824], dtype=float32),\n", " 'start': 16.12,\n", " 'classification_model': ['male', 'others', 'teens'],\n", " 'end': 17.48},\n", " {'wav_data': array([ 0.0007841 , 0.00062648, 0.00038873, ..., -0.00136539,\n", " 0.00106348, 0.00191391], dtype=float32),\n", " 'start': 17.82,\n", " 'classification_model': ['male', 'malay', 'teens'],\n", " 'end': 19.64},\n", " {'wav_data': array([ 0.00167696, 0.00195421, 0.00150523, ..., -0.00358349,\n", " -0.00352618, -0.00210211], dtype=float32),\n", " 'start': 20.1,\n", " 'classification_model': ['female', 'not a language', 'fifties'],\n", " 'end': 21.540000000000003}]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "samples" ] }, { "cell_type": "code", "execution_count": 8, "id": "functioning-incident", "metadata": {}, "outputs": [], "source": [ "import IPython.display as ipd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 9, "id": "cognitive-intellectual", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(samples[-1]['wav_data'], rate = 16000)" ] }, { "cell_type": "code", "execution_count": 10, "id": "isolated-regression", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ipd.Audio(np.concatenate([s['wav_data'] for s in samples[:5]]), rate = 16000)" ] } ], "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.9.4" }, "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": 5 }