{"id":29380,"date":"2020-01-23T15:39:12","date_gmt":"2020-01-23T07:39:12","guid":{"rendered":"\/blog\/?p=29380"},"modified":"2020-01-23T16:40:23","modified_gmt":"2020-01-23T08:40:23","slug":"offline-speech-recognition-on-raspberry-pi-4-with-respeaker","status":"publish","type":"post","link":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/","title":{"rendered":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker"},"content":{"rendered":"\n<p>Note: This article by Dmitry Maslov originally appeared on <a href=\"https:\/\/www.hackster.io\/dmitrywat\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker-c537e7\">Hackster.io<\/a><\/p>\n\n\n\n<p>In this article, we\u2019re going to run and benchmark Mozilla\u2019s DeepSpeech ASR (automatic speech recognition) engine on different platforms, such as Raspberry Pi 4(1 GB), Nvidia Jetson Nano, Windows PC, and Linux PC.<\/p>\n\n\n\n<p>2019, last year, was the year when Edge AI became mainstream. Multiple companies have released boards and chips for fast inference on the edge and a plethora of optimization frameworks and models have appeared. Up to date, in my articles and videos, I mostly focused my attention on the use of machine learning for computer vision, but I was always interested in running deep learning-based ASR projects on an embedded device. The problem until recently was the lack of simple, fast and accurate engines for that task. When I was researching this topic about a year ago, the few choices for when you had to run ASR (not just hot-word detection, but large vocabulary transcription) on, say, Raspberry Pi 3 were:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>CMUSphinx<\/li><li>Kaldi<\/li><li>Jasper<\/li><\/ul>\n\n\n\n<p>Links:<\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/34624277\/python-3-artificial-intelligence-offline-stt-and-tts\/43489369\">Python 3 Artificial Intelligence: Offline STT and TTS<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/maker.pro\/raspberry-pi\/tutorial\/the-best-voice-recognition-software-for-raspberry-pi\">The Best Voice Recognition Software for Raspberry Pi<\/a><\/p>\n\n\n\n<p>And a couple of other ones. None of them were easy to set up and not particularly suitable for running in resource constrained environment. So, a few weeks ago, I started looking into this area again and after some search has stumbled upon Mozilla\u2019s DeepSpeech engine. It has been around for a while, but only recently (December 2019) they have released a 0.6.0 version of their ASR engine, which comes with.tflite model among other significant improvements. It has reduced the size of the English model from 188 MB to 47 MB. \u201cDeepSpeech v0.6 with TensorFlow Lite runs faster than real-time on a single core of a Raspberry Pi 4.\u201d, claimed Reuben Morais from Mozilla in the&nbsp;<a href=\"https:\/\/hacks.mozilla.org\/2019\/12\/deepspeech-0-6-mozillas-speech-to-text-engine\/\">news announcement<\/a>. So I decided to verify that claim myself, run some benchmarks on different hardware and make my own audio transcription application with hot word detection. Let\u2019s see what the results are.<\/p>\n\n\n\n<p>Hint: I wasn\u2019t disappointed.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059966\/image_rAEE7PEH7U.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"Actually I was as happy as this Firefox!\"\/><\/figure>\n\n\n\n<p>Actually I was as happy as this Firefox!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-installation-0\">Installation<\/h3>\n\n\n\n<p><strong>Raspberry Pi 4\/3B<\/strong><\/p>\n\n\n\n<p>The pre-built wheel package for arm7 architecture is set to use.tflite model by default and installing it as easy as just<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install deepspeech<\/code><\/pre>\n\n\n\n<p>This is it really! The package is self-contained, no Tensorflow installation needed. The only external dependency is Numpy. You\u2019ll need to download model separately, we\u2019ll cover it in the next section.<\/p>\n\n\n\n<p><strong>Nvidia Jetson Nano<\/strong><\/p>\n\n\n\n<p>As of the day of writing this article(1\/22\/2020) the pre-built wheel for arm64 architecture uses large.pbmm model by default. So, if you download it from DeepSpeech releases on Github, you\u2019ll have an unpleasant surprise. With the swap file expanded to 4 GB, Jetson Nano can run the full model, but it takes about 18 seconds for 1.9-second file\u2026 There is a preview wheel with.tflite model support enabled available for download at&nbsp;<a href=\"https:\/\/community-tc.services.mozilla.com\/api\/queue\/v1\/task\/KZMAnYo2Qy2-icrTp5Ldqw\/runs\/0\/artifacts\/public\/deepspeech-0.6.1-cp37-cp37m-linux_aarch64.whl\">https:\/\/community-tc.services.mozilla.com\/api\/queue\/v1\/task\/KZMAnYo2Qy2-icrTp5Ldqw\/runs\/0\/artifacts\/public\/deepspeech-0.6.1-cp37-cp37m-linux_aarch64.whl<\/a><\/p>\n\n\n\n<p>You can download it and install with<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3.7 -m pip install --user deepspeech-0.6.1-cp37-cp37m-linux_aarch64.whl<\/code><\/pre>\n\n\n\n<p>We need to have Python 3.7 installed! Nvidia Jetson comes with Python 3.6 by default.<\/p>\n\n\n\n<p><strong>Windows 10\/Linux<\/strong><\/p>\n\n\n\n<p>For Windows and Linux you\u2019ll need to download.tflite enabled version of pip package.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install deepspeech-tflite<\/code><\/pre>\n\n\n\n<p>If you\u2019re using Python 3.8 you\u2019ll likely to encounter DLL loading error on Windows. It can be corrected fairly simple with a little change to DeepSpeech package code, but I suggest you just install the version for Python 3.7, which works flawlessly.<\/p>\n\n\n\n<p>If you have NVIDIA GPU and CUDA 10 installed you can opt for GPU-enabled version of Deepspeech<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install deepspeech-gpu<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-benchmarking-1\">Benchmarking<\/h3>\n\n\n\n<p>Let\u2019s download the models, language model binary and some audio samples.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -LO https:\/\/github.com\/mozilla\/DeepSpeech\/releases\/download\/v0.6.1\/deepspeech-0.6.1-models.tar.gztar xvf deepspeech-0.6.1-models.tar.gz<\/code><\/pre>\n\n\n\n<p>Download example audio files<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -LO https:\/\/github.com\/mozilla\/DeepSpeech\/releases\/download\/v0.6.1\/audio-0.6.1.tar.gztar xvf audio-0.6.1.tar.gz<\/code><\/pre>\n\n\n\n<p><strong>Raspberry Pi 4 run:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deepspeech --model deepspeech-0.6.1-models\/output_graph.tflite --lm deepspeech-0.6.1-models\/lm.binary --trie deepspeech-0.6.1-models\/trie --audio audio\/2830-3980-0043.wav<\/code><\/pre>\n\n\n\n<p>If successful you should see the following output<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059967\/capture_y3r9dGaMlB.JPG?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>Not bad! 1.6 seconds for 1.98 seconds sound file. It IS faster than real time.<\/p>\n\n\n\n<p><strong>Nvidia Jetson Nano run:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deepspeech --model deepspeech-0.6.1-models\/output_graph.tflite --lm deepspeech-0.6.1-models\/lm.binary --trie deepspeech-0.6.1-models\/trie --audio audio\/2830-3980-0043.wav<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059974\/image_pHpQx5Ig3w.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>Hm.. a little bit slower than Raspberry Pi. That is expected since Nvidia Jetson CPU is less powerful than Raspberry Pi 4. There are no pre-built binaries for arm64 architecture with GPU support as of this moment, so we cannot take advantage of Nvidia Jetson Nano\u2019s GPU for inference acceleration. I don\u2019t think this task is on the DeepSpeech team roadmap, so in the near future, I\u2019ll do some research here myself and will try to compile that binary to see what speed gains can be achieved from using GPU. But seconds is still pretty decent speed and depending on your project you might want to choose to run DeepSpeech on CPU and have GPU for other deep learning tasks.<\/p>\n\n\n\n<p><strong>Windows 10\/Linux<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deepspeech --model deepspeech-0.6.1-models\/output_graph.tflite --lm deepspeech-0.6.1-models\/lm.binary --trie deepspeech-0.6.1-models\/trie --audio audio\/2830-3980-0043.wav<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059975\/image_sWGedUHwrH.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059979\/screenshot_from_2020-01-22_21-59-21_M38tLuHgVY.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>Or if using GPU enabled version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deepspeech --model deepspeech-0.6.1-models\/output_graph.pbmm --lm deepspeech-0.6.1-models\/lm.binary --trie deepspeech-0.6.1-models\/trie --audio audio\/2830-3980-0043.wav<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059980\/screenshot_from_2020-01-22_22-03-20_H4zZB4x1Qi.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>As you see.tflite model achieves sub-real time on modern CPU systems, which is great news for people creating offline ASR applications.<\/p>\n\n\n\n<p>Here is comparison result table:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059987\/capture1_fNrgtXXtxP.JPG?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>Well, we did benchmarking with pre-recorded sound samples, but we really want to do some real-time transcribing. Let\u2019s do that!<\/p>\n\n\n\n<p>Download DeepSpeech examples from&nbsp;<a href=\"https:\/\/github.com\/mozilla\/DeepSpeech-examples\">https:\/\/github.com\/mozilla\/DeepSpeech-examples<\/a><\/p>\n\n\n\n<p>Navigate to mic_vad_streaming and install the dependencies with<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip3 install -r requirements.txt<\/code><\/pre>\n\n\n\n<p>Connect the microphone to your system (I am using Raspberry Pi 4 1 GB). For the microphone, despite you can use any microphone, including your laptop\u2019s inbuilt microphone, the quality of the sound really influences the results a lot. For this demo, I am using ReSpeaker USB Mic Array from Seeed Studio. It features the support of Far-field voice pick-up up to 5m and 360\u00b0 pick-up pattern with following acoustic algorithms implemented: DOA(Direction of Arrival), AEC(Automatic Echo Cancellation), AGC(Automatic Gain Control), NS(Noice Suppression).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059972\/image_BUbuVIbam5.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\" width=\"407\" height=\"124\"\/><\/figure><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 ..\/DeepSpeech-examples\/mic_vad_streaming\/mic_vad_streaming.py -m .\/output_graph.tflite -l lm.binary -t trie -v 3<\/code><\/pre>\n\n\n\n<p>Execute this command from the folder with models. -v argument allows you to tweak the threshold of VAD(Voice activity detection). Here is the result of the demo.<\/p>\n\n\n\n<figure><iframe width=\"100%\" height=\"100%\" src=\"https:\/\/www.youtube.com\/embed\/a7n5XLZrM1w?rel=0\" allowfullscreen=\"\"><\/iframe><\/figure>\n\n\n\n<p>Okay, great! Can we improve on that? Yes. We really don\u2019t want our device to be transcribing the conversations all the time. Talk about privacy nightmares and wasted electricity.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059968\/image_F6RvbfDbgC.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"It\/He\/She? is listening... Or maybe not. If it's not Opensource you'd never know.\"\/><\/figure>\n\n\n\n<p>It\/He\/She? is listening&#8230; Or maybe not. If it&#8217;s not Opensource you&#8217;d never know.<\/p>\n\n\n\n<p>So we will want to implement so-called wakeup word detection. DeepSpeech is a general-purpose ASR engine and for the wake-up words we need to use something more light-weight and more accurate for short voice commands. I tried two frameworks for hot word detection on Raspberry Pi: Snowboy and&nbsp;Porcupine. The first one ran successfully, but only supported Python 2\u2026 A closer look at snowboy Github repo shows that it is probably not under active development now. Porcupine worked great and it is free for non-commercial applications. So, I wrote a little script that would run wake-up word detection and upon its detection start transcribing speech with DeepSpeech ASR. It would stop transcribing when \u201cstop transcribing\u201d keyword is recognized in the transcription. After that, it goes back to waiting for wake-up word mode.<\/p>\n\n\n\n<p>Here is the result of the script &#8211; quite neat and completely offline.<\/p>\n\n\n\n<figure><iframe width=\"100%\" height=\"100%\" src=\"https:\/\/www.youtube.com\/embed\/CV7-QRS94cc?rel=0\" allowfullscreen=\"\"><\/iframe><\/figure>\n\n\n\n<p>To reproduce the result yourself, download the files from&nbsp;<a href=\"https:\/\/github.com\/Picovoice\/porcupine\">Porcupine Github<\/a>&nbsp;and make the folder with the following file structure (I cannot redistribute Porcupine libraries and code, so I just uploaded&nbsp;<a href=\"https:\/\/github.com\/AIWintermuteAI\/DeepSpeech_RaspberryPi4_Hotword\">my own script to Github<\/a>&nbsp;together with folder structure).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/hackster.imgix.net\/uploads\/attachments\/1059990\/image_MQbEhy1dxz.png?auto=compress%2Cformat&amp;w=740&amp;h=555&amp;fit=max\" alt=\"\"\/><\/figure>\n\n\n\n<p>You will also need to make a one-line change to resources\/util\/python\/util.py:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>elif 'rev 3' in model_info:    \n\treturn 'cortex-a53'<\/code><\/pre>\n\n\n\n<p>It is hacky approach, but unfortunately Porcupine is not officially supported on Raspberry Pi 4&#8230; Despite it is the same architecture with Raspberry Pi 3. So if you wouldn&#8217;t change &#8220;rev 5&#8221; to &#8220;rev 3&#8221; it wouldn&#8217;t start.<\/p>\n\n\n\n<p>I hope you enjoyed this article and it was useful for you. In my opinion, 2020 will be the year reliable offline NLP and ASR will come to Edge devices, such as our phones, smart assistants and other embedded electronics. If you\u2019d like to participate in that move, you\u2019re welcome to have a look at Mozilla&#8217;s DeepSpeech Github and try training your own model, for different languages or different vocabulary. The thing I really like about DeepSpeech apart from being so easy to use, is that it is completely open-source and open to contributions.<\/p>\n\n\n\n<p>The hardware for this article was kindly provided by Seeed Studio. Check out<\/p>\n\n\n\n<p><a href=\"https:\/\/www.seeedstudio.com\/Raspberry-Pi-4-Computer-Model-B-4GB-p-4077.html\">Raspberry Pi 4<\/a>,&nbsp;<a href=\"https:\/\/www.seeedstudio.com\/ReSpeaker-USB-Mic-Array-p-4247.html\">ReSpeaker USB Mic Array<\/a>&nbsp;and other hardware for makers at Seeed Studio store!<\/p>\n\n\n\n<p>Stay tuned for more videos and articles!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Note: This article by Dmitry Maslov originally appeared on Hackster.io In this article, we\u2019re going<\/p>\n","protected":false},"author":200,"featured_media":29392,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-29380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio\" \/>\n<meta property=\"og:description\" content=\"Note: This article by Dmitry Maslov originally appeared on Hackster.io In this article, we\u2019re going\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/\" \/>\n<meta property=\"og:site_name\" content=\"Latest News from Seeed Studio\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-23T07:39:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-23T08:40:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png\" \/>\n\t<meta property=\"og:image:width\" content=\"974\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Elaine Wu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elaine Wu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/\",\"name\":\"Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio\",\"isPartOf\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png\",\"datePublished\":\"2020-01-23T07:39:12+00:00\",\"dateModified\":\"2020-01-23T08:40:23+00:00\",\"author\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png\",\"contentUrl\":\"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png\",\"width\":974,\"height\":608,\"caption\":\"Offline Speech Recognition on Raspberry Pi 4 with Respeaker\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.seeedstudio.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Offline Speech Recognition on Raspberry Pi 4 with Respeaker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#website\",\"url\":\"https:\/\/www.seeedstudio.com\/blog\/\",\"name\":\"Latest News from Seeed Studio\",\"description\":\"Emerging IoT, AI and Autonomous Applications on the Edge\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11\",\"name\":\"Elaine Wu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g\",\"caption\":\"Elaine Wu\"},\"description\":\"Head of AI Robotics @seeed Every day holds new magic \u2728 on ne sait jamais\u2601\ufe0f\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/elaine1994\/\"],\"url\":\"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/","og_locale":"en_US","og_type":"article","og_title":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio","og_description":"Note: This article by Dmitry Maslov originally appeared on Hackster.io In this article, we\u2019re going","og_url":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/","og_site_name":"Latest News from Seeed Studio","article_published_time":"2020-01-23T07:39:12+00:00","article_modified_time":"2020-01-23T08:40:23+00:00","og_image":[{"width":974,"height":608,"url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png","type":"image\/png"}],"author":"Elaine Wu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elaine Wu","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/","url":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/","name":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker - Latest News from Seeed Studio","isPartOf":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage"},"image":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png","datePublished":"2020-01-23T07:39:12+00:00","dateModified":"2020-01-23T08:40:23+00:00","author":{"@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11"},"breadcrumb":{"@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#primaryimage","url":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png","contentUrl":"https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png","width":974,"height":608,"caption":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker"},{"@type":"BreadcrumbList","@id":"https:\/\/www.seeedstudio.com\/blog\/2020\/01\/23\/offline-speech-recognition-on-raspberry-pi-4-with-respeaker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.seeedstudio.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Offline Speech Recognition on Raspberry Pi 4 with Respeaker"}]},{"@type":"WebSite","@id":"https:\/\/www.seeedstudio.com\/blog\/#website","url":"https:\/\/www.seeedstudio.com\/blog\/","name":"Latest News from Seeed Studio","description":"Emerging IoT, AI and Autonomous Applications on the Edge","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.seeedstudio.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/61c04bed5bbe2d098f04195c6e48fb11","name":"Elaine Wu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.seeedstudio.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/184af8ef71f0d6b64c276f9bb38b992e?s=96&r=g","caption":"Elaine Wu"},"description":"Head of AI Robotics @seeed Every day holds new magic \u2728 on ne sait jamais\u2601\ufe0f","sameAs":["https:\/\/www.linkedin.com\/in\/elaine1994\/"],"url":"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/"}]}},"modified_by":"Elaine Wu","views":92732,"featured_image_urls":{"full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",974,608,false],"thumbnail":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57-80x80.png",80,80,true],"medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57-300x187.png",300,187,true],"medium_large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57-768x479.png",640,399,true],"large":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",640,400,false],"1536x1536":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",974,608,false],"2048x2048":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",974,608,false],"visody_icon":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",32,20,false],"magazine-7-slider-full":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",974,608,false],"magazine-7-slider-center":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",936,584,false],"magazine-7-featured":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",974,608,false],"magazine-7-medium":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",609,380,false],"magazine-7-medium-square":["https:\/\/www.seeedstudio.com\/blog\/wp-content\/uploads\/2020\/01\/\u5c4f\u5e55\u5feb\u7167-2020-01-23-\u4e0b\u53483.37.57.png",675,421,false]},"author_info":{"display_name":"Elaine Wu","author_link":"https:\/\/www.seeedstudio.com\/blog\/author\/elaine\/"},"category_info":"<a href=\"https:\/\/www.seeedstudio.com\/blog\/category\/news\/\" rel=\"category tag\">News<\/a>","tag_info":"News","comment_count":"4","_links":{"self":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/users\/200"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/comments?post=29380"}],"version-history":[{"count":3,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29380\/revisions"}],"predecessor-version":[{"id":29394,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/posts\/29380\/revisions\/29394"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media\/29392"}],"wp:attachment":[{"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/media?parent=29380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/categories?post=29380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seeedstudio.com\/blog\/wp-json\/wp\/v2\/tags?post=29380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}