From 896a346e43ecbac9b4e40c15c87dced7db33b7c5 Mon Sep 17 00:00:00 2001 From: Kai Karren Date: Sun, 9 May 2021 18:44:26 +0200 Subject: [PATCH] Added another example with a plot that is updated in real-time. --- examples/pyaudio-streaming/README.md | 6 +- .../pyaudio-streaming-examples.ipynb | 9952 ++++++++++++++++- 2 files changed, 9954 insertions(+), 4 deletions(-) diff --git a/examples/pyaudio-streaming/README.md b/examples/pyaudio-streaming/README.md index 75309a6..c4e16b3 100644 --- a/examples/pyaudio-streaming/README.md +++ b/examples/pyaudio-streaming/README.md @@ -1,9 +1,13 @@ # Pyaudio Streaming Example -This example shows how micophone audio fetched by pyaudio can be processed with Silero-VAD. +This example notebook shows how micophone audio fetched by pyaudio can be processed with Silero-VAD. It has been designed as a low-level example for binary real-time streaming using only the prediction of the model, processing the binary data and plotting the speech probabilities at the end to visualize it. +Currently, the notebook consits of two examples: + - One that records audio of a predefined length from the microphone, process it with Silero-VAD, and plots it afterwards. + - The other one plots the speech probabilities in real-time (using jupyterplot) and records the audio until you press enter to stop the recording. + diff --git a/examples/pyaudio-streaming/pyaudio-streaming-examples.ipynb b/examples/pyaudio-streaming/pyaudio-streaming-examples.ipynb index 1fb4add..443e7b9 100644 --- a/examples/pyaudio-streaming/pyaudio-streaming-examples.ipynb +++ b/examples/pyaudio-streaming/pyaudio-streaming-examples.ipynb @@ -179,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "id": "3cb44a4a", "metadata": {}, "outputs": [ @@ -193,7 +193,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -238,10 +238,9956 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "a3dda982", + "metadata": {}, + "source": [ + "## Real Time Visualization\n", + "\n", + "As an enhancement to plot the speech probabilities in real time I added the implementation below.\n", + "In contrast to the simeple one, it records the audio until to stop the recording by pressing enter.\n", + "While looking into good ways to update matplotlib plots in real-time, I found a simple libarary that does the job. https://github.com/lvwerra/jupyterplot It has some limitations, but works for this use case really well.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "05ef4100", + "metadata": {}, + "outputs": [], + "source": [ + "#!pip install jupyterplot==0.0.3" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d1d4cdd6", + "metadata": {}, + "outputs": [], + "source": [ + "from jupyterplot import ProgressPlot\n", + "import threading\n", + "\n", + "continue_recording = True\n", + "\n", + "def stop():\n", + " input(\"Press Enter to stop the recording:\")\n", + " global continue_recording\n", + " continue_recording = False\n", + "\n", + "def start_recording():\n", + " \n", + " stream = audio.open(format=FORMAT,\n", + " channels=CHANNELS,\n", + " rate=SAMPLE_RATE,\n", + " input=True,\n", + " frames_per_buffer=CHUNK)\n", + "\n", + " data = []\n", + " voiced_confidences = []\n", + " \n", + " global continue_recording\n", + " continue_recording = True\n", + " \n", + " pp = ProgressPlot(plot_names=[\"Silero VAD\"],line_names=[\"speech probabilities\"], x_label=\"audio chunks\")\n", + " \n", + " stop_listener = threading.Thread(target=stop)\n", + " stop_listener.start()\n", + "\n", + " while continue_recording:\n", + " \n", + " audio_chunk = stream.read(int(SAMPLE_RATE * frame_duration_ms / 1000.0))\n", + " \n", + " # in case you want to save the audio later\n", + " data.append(audio_chunk)\n", + " \n", + " audio_int16 = np.frombuffer(audio_chunk, np.int16);\n", + "\n", + " audio_float32 = int2float(audio_int16)\n", + " \n", + " # get the confidences and add them to the list to plot them later\n", + " vad_outs = validate(model, torch.from_numpy(audio_float32))\n", + " \n", + " # get the confidence value so that jupyterplot can process it\n", + " new_confidence = vad_outs[:,1].numpy()[0].item()\n", + " voiced_confidences.append(new_confidence)\n", + " \n", + " pp.update(new_confidence)\n", + "\n", + "\n", + " pp.finalize()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "1e398009", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Press Enter to stop the recording:\n" + ] + } + ], + "source": [ + "start_recording()" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "430a343e", + "id": "23984843", "metadata": {}, "outputs": [], "source": []