{"id":107,"date":"2020-05-17T12:26:16","date_gmt":"2020-05-17T12:26:16","guid":{"rendered":"http:\/\/fadyanwar.com\/?p=107"},"modified":"2020-05-26T20:28:59","modified_gmt":"2020-05-26T20:28:59","slug":"giving-aiot-a-voice-using-azure-ai","status":"publish","type":"post","link":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/","title":{"rendered":"Giving AIoT a Voice using Azure AI"},"content":{"rendered":"\n<p class=\"has-drop-cap\">In my previous article we learnt together how <a href=\"http:\/\/fadyanwar.com\/index.php\/2020\/05\/08\/an-aiot-example-using-raspberry-pi-and-azure-ai\/\" target=\"_blank\" rel=\"noreferrer noopener\">to use Azure Face API to enable Raspberry Pi IoT device to detect faces<\/a>. In this second howto article we are going to build atop of what we have done so far to give Raspberry Pi a voice using <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/cognitive-services\/speech-services\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Speech API<\/a>.<\/p>\n\n\n\n<p>In order to be able to follow through the steps detailed here you will need to setup a Raspberry Pi following the instructions from the previous article.<\/p>\n\n\n\n<p>When your IoT device is ready, you will need to create a Speech API on your Azure portal. For convenience, I&#8217;m going to use bash commands. To open  your bash console you will need to open the cloud shell from the portal upper right corner.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"190\" height=\"83\" src=\"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/image-5.png?resize=190%2C83\" alt=\"\" class=\"wp-image-112\"\/><\/figure>\n\n\n\n<p>And when the shell pane show up you will need to select the bash option like shown below. You might need to create an Azure storage account first time you use the Azure cloud shell to host your shell files. Azure will create this automatically for you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"429\" height=\"261\" src=\"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/image-6.png?resize=429%2C261\" alt=\"\" class=\"wp-image-113\" srcset=\"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/image-6.png?w=429&amp;ssl=1 429w, https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/image-6.png?resize=300%2C183&amp;ssl=1 300w\" sizes=\"auto, (max-width: 429px) 100vw, 429px\" \/><\/figure>\n\n\n\n<p>We will start by creating a resource group to host the components required by this howto and the future ones. Here I&#8217;m group called AIoT which will be located in northeurope location, you may pick a different location.<\/p>\n\n\n\n<p><code>az group create --name AIoT --location northeurope<\/code><\/p>\n\n\n\n<p>You should get a json success message as following<\/p>\n\n\n\n<p><code>fady@Azure:~$ az group create --name AIoT --location northeurope<br>{<br>\"id\": \"\/subscriptions\/GUID\/resourceGroups\/AIoT\",<br>\"location\": \"northeurope\",<br>\"managedBy\": null,<br>\"name\": \"AIoT\",<br>\"properties\": {<br>\"provisioningState\": \"Succeeded\"<br>},<br>\"tags\": null,<br>\"type\": \"Microsoft.Resources\/resourceGroups\"<br>}<\/code><\/p>\n\n\n\n<p>Now we proceed to create the new Speech API resource named AIoTSpeech under the resource group we just created as following. The F0 sku means you are using a free tier which you can use only once. <\/p>\n\n\n\n<p><code>az cognitiveservices account create -n AIoTSpeech -g AIoT --kind SpeechServices --sku F0 -l northeurope --yes<\/code><\/p>\n\n\n\n<p>You should get another success json message like below<\/p>\n\n\n\n<p><code>fady@Azure:~$ az cognitiveservices account create -n AIoTSpeech -g AIoT --kind SpeechServices --sku F0 -l northeurope --yes<br>{<br>\"customSubDomainName\": null,<br>\"endpoint\": \"https:\/\/northeurope.api.cognitive.microsoft.com\/sts\/v1.0\/issuetoken\",<br>\"etag\": \"\\\"GUID\\\"\",<br>\"id\": \"\/subscriptions\/GUID\/resourceGroups\/AIoT\/providers\/Microsoft.CognitiveServices\/accounts\/AIoTSpeech\",<br>\"internalId\": \"GUID\",<br>\"kind\": \"SpeechServices\",<br>\"location\": \"northeurope\",<br>\"name\": \"AIoTSpeech\",<br>\"networkAcls\": null,<br>\"provisioningState\": \"Succeeded\",<br>\"resourceGroup\": \"AIoT\",<br>\"sku\": {<br>\"name\": \"F0\",<br>\"tier\": null<br>},<br>\"tags\": null,<br>\"type\": \"Microsoft.CognitiveServices\/accounts\"<br>}<\/code><\/p>\n\n\n\n<p>After done, you will need to grab the API keys so you can use them to call the service. You can do so by typing the below command with resources group name and resource name as parameters.<\/p>\n\n\n\n<p><code>az cognitiveservices account keys list -g AIoT -n AIoTSpeech<\/code><\/p>\n\n\n\n<p>You will get a json response message with key 1 &amp; 2, any of them should work.<\/p>\n\n\n\n<p>Now your Azure Speech service is ready, let&#8217;s prepare our Raspberry Pi by installing the nodejs npm packages required to call the API, download the generated voice wav file and play it on Raspberry Pi sound system.<\/p>\n\n\n\n<p><code>npm install microsoft-cognitiveservices-speech-sdk fs play-sound<\/code><\/p>\n\n\n\n<p>After done, create a new file named speech.js and copy and paste the below nodejs code snippet in it<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n\/\/ pull in the required packages.\nvar sdk = require(&quot;microsoft-cognitiveservices-speech-sdk&quot;);\nvar fs = require(&quot;fs&quot;);\nvar player = require('play-sound')(opts = {})\n\n\nvar subscriptionKey = &quot;key&quot;; \/\/place your subscription key here\nvar serviceRegion = &quot;northeurope&quot;; \/\/ place your azure location here\nvar filename = &quot;hello.wav&quot;; \/\/ This is the file name which is going to be downloaded\n\n\/\/ create the pull stream we need for the speech sdk.\nvar pullStream = sdk.AudioOutputStream.createPullStream();\n\n\/\/ open the file and write it to the pull stream.\nfs.createWriteStream(filename).on('data', function(arrayBuffer) {\n  pullStream.read(arrayBuffer.slice());\n}).on('end', function() {\n  pullStream.close();\n});\n\n\/\/ now create the audio-config pointing to our stream and\n\/\/ the speech config specifying the language.\nvar speechConfig = sdk.SpeechConfig.fromSubscription(subscriptionKey, serviceRegion);\n\n\/\/ setting the recognition language to English.\nspeechConfig.speechRecognitionLanguage = &quot;en-US&quot;;\n\nvar audioConfig = sdk.AudioConfig.fromStreamOutput(pullStream);\n\n\/\/ create the speech synthesizer.\nvar synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig);\n\n\/\/ we are done with the setup\nvar text = &quot;Hello World!&quot;\nconsole.log(&quot;Now sending text '&quot; + text + &quot;' to: &quot; + filename);\n\n\/\/ start the synthesizer and wait for a result.\nsynthesizer.speakTextAsync(\n  text,\n  function (result) {\n    console.log(result);\n\n    \/\/when the wav file is ready, play it\n    player.play('hello.wav', function(err){\n        if (err) throw err\n      })\n        \n    synthesizer.close();\n    synthesizer = undefined;\n  },\n  function (err) {\n    console.trace(&quot;err - &quot; + err);\n\n    synthesizer.close();\n    synthesizer = undefined;\n  },\n  filename);\n\n<\/pre><\/div>\n\n\n<p>Copy the file same way explained in the previous article to your Raspberry Pi, connect a speaker or headphones to either your Pi stereo jack or one of its usb ports. Then from the shell, type the below command.<\/p>\n\n\n\n<p><code>node speech.js<\/code><\/p>\n\n\n\n<p>You should now hear the message &#8220;Hello Wrold!&#8221;. Now you had just created an AIoT device which has a voice and can see faces. Hope you did enjoy this howto article. Stay tuned for the next one where we will continue to learn together about AIoT by building atop of what we have achieved so far to <a href=\"http:\/\/fadyanwar.com\/index.php\/2020\/05\/23\/reading-notifications-from-dynamics-365\/\" target=\"_blank\" rel=\"noreferrer noopener\">make our Raspberry Pi IoT device more smart and interactive using Azure cloud cognitive services.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my previous article we learnt together how to use Azure Face API to enable Raspberry Pi IoT device to detect faces. In this second howto article we are going to build atop of what we have done so far to give Raspberry Pi a voice using Azure Speech API. In order to be able [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":134,"comment_status":"open","ping_status":"open","sticky":false,"template":"templates\/template-full-width.php","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_vp_format_video_url":"","_vp_image_focal_point":[],"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[2,4,5,6,3,8,9,7],"class_list":["post-107","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-ai","tag-aiot","tag-azure","tag-cognitiveservices","tag-iot","tag-nodejs","tag-raspberrypi","tag-speech-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Giving AIoT a Voice using Azure AI - Fady Anwar<\/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:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giving AIoT a Voice using Azure AI - Fady Anwar\" \/>\n<meta property=\"og:description\" content=\"In my previous article we learnt together how to use Azure Face API to enable Raspberry Pi IoT device to detect faces. In this second howto article we are going to build atop of what we have done so far to give Raspberry Pi a voice using Azure Speech API. In order to be able [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Fady Anwar\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-17T12:26:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-26T20:28:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i2.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fady Anwar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fadyanwar\" \/>\n<meta name=\"twitter:site\" content=\"@fadyanwar\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fady Anwar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/\"},\"author\":{\"name\":\"Fady Anwar\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#\\\/schema\\\/person\\\/b66e3277ceba346f7053a83464e90b03\"},\"headline\":\"Giving AIoT a Voice using Azure AI\",\"datePublished\":\"2020-05-17T12:26:16+00:00\",\"dateModified\":\"2020-05-26T20:28:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/\"},\"wordCount\":489,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#\\\/schema\\\/person\\\/b66e3277ceba346f7053a83464e90b03\"},\"image\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/fadyanwar.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1\",\"keywords\":[\"AI\",\"AIoT\",\"Azure\",\"CognitiveServices\",\"IoT\",\"nodejs\",\"raspberrypi\",\"speech api\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/\",\"url\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/\",\"name\":\"Giving AIoT a Voice using Azure AI - Fady Anwar\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/fadyanwar.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1\",\"datePublished\":\"2020-05-17T12:26:16+00:00\",\"dateModified\":\"2020-05-26T20:28:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/fadyanwar.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/fadyanwar.com\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1\",\"width\":1920,\"height\":1280,\"caption\":\"artificial intelligence\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/index.php\\\/2020\\\/05\\\/17\\\/giving-aiot-a-voice-using-azure-ai\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fadyanwar.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giving AIoT a Voice using Azure AI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#website\",\"url\":\"https:\\\/\\\/fadyanwar.com\\\/\",\"name\":\"Fady Anwar\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#\\\/schema\\\/person\\\/b66e3277ceba346f7053a83464e90b03\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fadyanwar.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/fadyanwar.com\\\/#\\\/schema\\\/person\\\/b66e3277ceba346f7053a83464e90b03\",\"name\":\"Fady Anwar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g\",\"caption\":\"Fady Anwar\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Giving AIoT a Voice using Azure AI - Fady Anwar","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:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/","og_locale":"en_US","og_type":"article","og_title":"Giving AIoT a Voice using Azure AI - Fady Anwar","og_description":"In my previous article we learnt together how to use Azure Face API to enable Raspberry Pi IoT device to detect faces. In this second howto article we are going to build atop of what we have done so far to give Raspberry Pi a voice using Azure Speech API. In order to be able [&hellip;]","og_url":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/","og_site_name":"Fady Anwar","article_published_time":"2020-05-17T12:26:16+00:00","article_modified_time":"2020-05-26T20:28:59+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/i2.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","type":"image\/jpeg"}],"author":"Fady Anwar","twitter_card":"summary_large_image","twitter_creator":"@fadyanwar","twitter_site":"@fadyanwar","twitter_misc":{"Written by":"Fady Anwar","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#article","isPartOf":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/"},"author":{"name":"Fady Anwar","@id":"https:\/\/fadyanwar.com\/#\/schema\/person\/b66e3277ceba346f7053a83464e90b03"},"headline":"Giving AIoT a Voice using Azure AI","datePublished":"2020-05-17T12:26:16+00:00","dateModified":"2020-05-26T20:28:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/"},"wordCount":489,"commentCount":0,"publisher":{"@id":"https:\/\/fadyanwar.com\/#\/schema\/person\/b66e3277ceba346f7053a83464e90b03"},"image":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","keywords":["AI","AIoT","Azure","CognitiveServices","IoT","nodejs","raspberrypi","speech api"],"articleSection":["Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/","url":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/","name":"Giving AIoT a Voice using Azure AI - Fady Anwar","isPartOf":{"@id":"https:\/\/fadyanwar.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#primaryimage"},"image":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","datePublished":"2020-05-17T12:26:16+00:00","dateModified":"2020-05-26T20:28:59+00:00","breadcrumb":{"@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#primaryimage","url":"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","contentUrl":"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","width":1920,"height":1280,"caption":"artificial intelligence"},{"@type":"BreadcrumbList","@id":"https:\/\/fadyanwar.com\/index.php\/2020\/05\/17\/giving-aiot-a-voice-using-azure-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fadyanwar.com\/"},{"@type":"ListItem","position":2,"name":"Giving AIoT a Voice using Azure AI"}]},{"@type":"WebSite","@id":"https:\/\/fadyanwar.com\/#website","url":"https:\/\/fadyanwar.com\/","name":"Fady Anwar","description":"","publisher":{"@id":"https:\/\/fadyanwar.com\/#\/schema\/person\/b66e3277ceba346f7053a83464e90b03"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fadyanwar.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fadyanwar.com\/#\/schema\/person\/b66e3277ceba346f7053a83464e90b03","name":"Fady Anwar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g","caption":"Fady Anwar"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/a9172040bbc3bbe24fb49d59dac20da030af1f5ff628126c979a1d4b71eaed41?s=96&d=mm&r=g"}}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/fadyanwar.com\/wp-content\/uploads\/2020\/05\/robot-3490522_1920.jpg?fit=1920%2C1280&ssl=1","jetpack_sharing_enabled":true,"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":17,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":181,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/posts\/107\/revisions\/181"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/media\/134"}],"wp:attachment":[{"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fadyanwar.com\/index.php\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}