<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nick Walsh</title>
    <description>The latest articles on DEV Community by Nick Walsh (@thenickwalsh).</description>
    <link>https://dev.to/thenickwalsh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F5741%2F10949c6d-9553-492d-96aa-d55ec7036497.jpg</url>
      <title>DEV Community: Nick Walsh</title>
      <link>https://dev.to/thenickwalsh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thenickwalsh"/>
    <language>en</language>
    <item>
      <title>Add AI Functionality to Your App in Minutes with AWS AI Cognitive Services</title>
      <dc:creator>Nick Walsh</dc:creator>
      <pubDate>Tue, 10 Mar 2020 19:52:53 +0000</pubDate>
      <link>https://dev.to/aws/add-ai-functionality-to-your-app-in-minutes-with-aws-ai-cognitive-services-3fo2</link>
      <guid>https://dev.to/aws/add-ai-functionality-to-your-app-in-minutes-with-aws-ai-cognitive-services-3fo2</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff607avjfmdkoik597u2m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff607avjfmdkoik597u2m.png" width="800" height="621"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai-service-demos.go-aws.com/" rel="noopener noreferrer"&gt;AWS AI Service Live Demo Site (no code or sign-in required)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Artificial intelligence and machine learning offer truly game changing functionality, but you probably didn't need me to tell you that! Concepts like computer vision and natural language understanding help us to unlock additional value from data we already have in sources like pictures, videos, and text. Additionally, AI can help to convert and generate new media, for scenarios like language translation, text to speech audio synthesis, and transcribing audio to text. &lt;/p&gt;

&lt;p&gt;Unfortunately, the process of learning the prerequisite theory, popular machine learning frameworks, and finally integrating this code into existing software, is cumbersome. Don't even get me started on the process of having to gather and clean your own datasets for training a model!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FESr9FjzVAAAEAgv%3Fformat%3Djpg%26name%3Dmedium" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FESr9FjzVAAAEAgv%3Fformat%3Djpg%26name%3Dmedium" alt="_Using Amazon Rekognition to detect objects in an image_" width="1193" height="829"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Using Amazon Rekognition to detect objects in an image&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To help you on your journey, AWS has a multitude of services to help empower developers without previous machine learning expertise. In this post, I wanted to cover some of the &lt;a href="https://aws.amazon.com/machine-learning/ai-services/" rel="noopener noreferrer"&gt;fully managed AI APIs&lt;/a&gt;, which I find are the most actionable for developers looking to implement powerful AI functionality quickly. These services offer a cost-effective, highly accurate, easy to use solution, without having to manage more of the ML pipeline in a custom model solution with a tool like &lt;a href="https://aws.amazon.com/sagemaker/" rel="noopener noreferrer"&gt;Amazon SageMaker&lt;/a&gt;. If you can use an SDK, you won't have to worry about any ML theory or ops here.&lt;/p&gt;

&lt;p&gt;Some of the biggest benefits of AWS fully managed AI APIs over other self-rolled solutions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extremely high availability, with no need to manage scaling&lt;/li&gt;
&lt;li&gt;Models are crafted and improved over time by AWS AI Applied Scientists. Integrate once, and the endpoints are automatically updated in waves when new versions of the models are launched&lt;/li&gt;
&lt;li&gt;Predictable, value-aligned pricing model (pay per request)&lt;/li&gt;
&lt;li&gt;Very easy to get started with - if you can use an SDK, you can use AWS AI APIs&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Demos:
&lt;/h3&gt;

&lt;p&gt;To see everything on the &lt;a href="https://ai-service-demos.go-aws.com/" rel="noopener noreferrer"&gt;live demo site, check it out here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To power the demos, I used various AWS AI Services to make easily modifiable, standalone React components. Full code samples available here:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/nmwalsh" rel="noopener noreferrer"&gt;
        nmwalsh
      &lt;/a&gt; / &lt;a href="https://github.com/nmwalsh/aws-ai-services-site" rel="noopener noreferrer"&gt;
        aws-ai-services-site
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Simple website to demo functionality for AWS AI services
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;AWS AI Service Demos&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Try out various AI services from AWS, no code or account required.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/nmwalsh/aws-ai-services-site/etc/thumbnail.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fnmwalsh%2Faws-ai-services-site%2Fetc%2Fthumbnail.png" width="650"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Demo site hosted at &lt;a href="https://ai-service-demos.go-aws.com" rel="nofollow noopener noreferrer"&gt;https://ai-service-demos.go-aws.com&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Included examples:&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;All components available in &lt;code&gt;src/components/&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/transcribe" rel="nofollow noopener noreferrer"&gt;Amazon Transcribe&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Transcribe.js&lt;/code&gt;: Batch async transcription job for custom audio&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/polly" rel="nofollow noopener noreferrer"&gt;Amazon Polly&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Polly.js&lt;/code&gt;: Text to speech with standard or neural voice engine across all available languages&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/comprehend" rel="nofollow noopener noreferrer"&gt;Amazon Comprehend&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Comprehend.js&lt;/code&gt;: Sentiment, Entity, Key Phrase, and Syntax Token detection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/rekognition" rel="nofollow noopener noreferrer"&gt;Amazon Rekognition&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Rekognition.js&lt;/code&gt;: Object detection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/translate" rel="nofollow noopener noreferrer"&gt;Amazon Translate&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Translate.js&lt;/code&gt;: Text to text translate&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Installing&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;To run/test locally:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;https://localhost:3000&lt;/code&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;AWS AI Service Free Tiers&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;The services covered in this demo all have very generous free tiers. At a glance:&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Translate&lt;/td&gt;
&lt;td&gt;Text-Text Translation&lt;/td&gt;
&lt;td&gt;2 million characters/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Polly&lt;/td&gt;
&lt;td&gt;Text to Speech&lt;/td&gt;
&lt;td&gt;5 million characters/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Comprehend&lt;/td&gt;
&lt;td&gt;Natural Language Understanding&lt;/td&gt;
&lt;td&gt;5 million characters/API/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Rekognition&lt;/td&gt;
&lt;td&gt;Computer Vision&lt;/td&gt;
&lt;td&gt;5k images/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Transcribe&lt;/td&gt;
&lt;td&gt;Audio to Text Transcription&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/nmwalsh/aws-ai-services-site" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The code samples were built using the minimal requirements wherever possible (I swear, most of the trickery is in the CSS), with the structure following a similar format to &lt;code&gt;Translate.js&lt;/code&gt;, the most minimal example of the bunch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Translate.js &lt;/span&gt;
&lt;span class="c1"&gt;// boilerplate react code above &lt;/span&gt;

&lt;span class="c1"&gt;// 1. instantiate Translate client&lt;/span&gt;
        &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;Translate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;AWS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Translate&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2017-07-01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;currentComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="c1"&gt;// 2. call translateText method&lt;/span&gt;
        &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!!&lt;/span&gt;&lt;span class="nx"&gt;TranslateParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="nx"&gt;Translate&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;translateText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;TranslateParams&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
            &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="c1"&gt;// 3a. catch error&lt;/span&gt;
                &lt;span class="nx"&gt;currentComponent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;resultMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
                &lt;span class="nx"&gt;currentComponent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;resultTranslation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;No translation occurred - check the error!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="c1"&gt;// 3b. process successful response&lt;/span&gt;
                &lt;span class="nx"&gt;currentComponent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;resultTranslation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;TranslatedText&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
                &lt;span class="nx"&gt;currentComponent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setState&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;resultMessage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Text translation successful!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;chck1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;checked&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;});&lt;/span&gt;
      &lt;span class="p"&gt;};&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt;


    &lt;span class="nf"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;translation&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="c1"&gt;// 4. If there is a result message from Translate, generate HTML from JSX&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resultMessage&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
          &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resultMessage&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/code&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="nx"&gt;translation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;resultTranslation&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/code&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cm"&gt;/* other JSX code below for displaying info in app */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;All components available in &lt;code&gt;src/components/&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ai-service-demos.go-aws.com/transcribe" rel="noopener noreferrer"&gt;Amazon Transcribe&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nmwalsh/aws-ai-services-site/blob/master/src/components/Transcribe.js" rel="noopener noreferrer"&gt;Transcribe.js&lt;/a&gt;: Batch async transcription job for custom audio&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://ai-service-demos.go-aws.com/polly" rel="noopener noreferrer"&gt;Amazon Polly&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nmwalsh/aws-ai-services-site/blob/master/src/components/Polly.js" rel="noopener noreferrer"&gt;Polly.js&lt;/a&gt;: Text to speech with standard or neural voice engine across all available languages&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://ai-service-demos.go-aws.com/comprehend" rel="noopener noreferrer"&gt;Amazon Comprehend&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nmwalsh/aws-ai-services-site/blob/master/src/components/Comprehend.js" rel="noopener noreferrer"&gt;Comprehend.js&lt;/a&gt;: Sentiment, Entity, Key Phrase, and Syntax Token detection&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://ai-service-demos.go-aws.com/rekognition" rel="noopener noreferrer"&gt;Amazon Rekognition&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nmwalsh/aws-ai-services-site/blob/master/src/components/Rekognition.js" rel="noopener noreferrer"&gt;Rekognition.js&lt;/a&gt;: Computer vision - object detection in images&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://ai-service-demos.go-aws.com/translate" rel="noopener noreferrer"&gt;Amazon Translate&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/nmwalsh/aws-ai-services-site/blob/master/src/components/Translate.js" rel="noopener noreferrer"&gt;Translate.js&lt;/a&gt;: Text to text translate&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  To clone and install locally:
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/nmwalsh/aws-ai-services-site&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm start&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;https://localhost:3000&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try these services out for free in your own accounts:
&lt;/h2&gt;

&lt;p&gt;The services covered in this demo all have very generous free tiers. At a glance:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Quantity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Translate&lt;/td&gt;
&lt;td&gt;Text-Text Translation&lt;/td&gt;
&lt;td&gt;2 million characters/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Polly&lt;/td&gt;
&lt;td&gt;Text to Speech&lt;/td&gt;
&lt;td&gt;5 million characters/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Comprehend&lt;/td&gt;
&lt;td&gt;Natural Language Understanding&lt;/td&gt;
&lt;td&gt;5 million characters/API/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Rekognition&lt;/td&gt;
&lt;td&gt;Computer Vision&lt;/td&gt;
&lt;td&gt;5k images/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Transcribe&lt;/td&gt;
&lt;td&gt;Audio to Text Transcription&lt;/td&gt;
&lt;td&gt;60 minutes/month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For the most up-to-date info on free tier status, check out &lt;a href="https://aws.amazon.com/free/" rel="noopener noreferrer"&gt;the live pricing page here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built With
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/machine-learning/ai-services/" rel="noopener noreferrer"&gt;AWS AI Services&lt;/a&gt; - Fully managed AI services, on a pay-per-use model.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://aws.amazon.com/amplify/" rel="noopener noreferrer"&gt;AWS Amplify&lt;/a&gt; - Development toolchain for building and deploying webapps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another awesome callout here is &lt;a href="https://aws-amplify.github.io/docs/js/predictions" rel="noopener noreferrer"&gt;Amplify Predictions&lt;/a&gt;, a class of functionality for the Amplify Framework that enables you to easily generate code that achieves similar functionality to what I created, all with a few simple CLI commands! I would highly recommend this, as the autogenerated code will save you significant time for some of the services that would otherwise require writing code to act as connective tissue (storing data to S3 before processing, for example).&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanks for reading!
&lt;/h2&gt;

&lt;p&gt;I hope this article and code sample were helpful for you! My goal with this was to offer a way to try AWS AI services for yourselves, with your own data. This way, you can see if these services would be a good fit for your use case - all before writing any of your own code. I'm working on some more demos in this space and would love to hear your thoughts! &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1237092022785167360-34" src="https://platform.twitter.com/embed/Tweet.html?id=1237092022785167360"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1237092022785167360-34');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1237092022785167360&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;For the latest updates on new demos, or to vote on the next one I'll create, follow along &lt;a href="https://twitter.com/thenickwalsh" rel="noopener noreferrer"&gt;on twitter (@TheNickWalsh)&lt;/a&gt;. Cheers!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>machinelearning</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Databases Deep Dive: Season 1 Recap</title>
      <dc:creator>Nick Walsh</dc:creator>
      <pubDate>Wed, 12 Feb 2020 22:05:18 +0000</pubDate>
      <link>https://dev.to/aws/aws-databases-deep-dive-season-1-recap-1a8p</link>
      <guid>https://dev.to/aws/aws-databases-deep-dive-season-1-recap-1a8p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F6158%2F1%2AhbG9MKXrIZc2xoxnzzoHsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fmax%2F6158%2F1%2AhbG9MKXrIZc2xoxnzzoHsw.png" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS Databases Deep Dive: Season 1 Recap
&lt;/h1&gt;

&lt;p&gt;Databases are ubiquitous, powering the data storage, access, and retrieval functions needed by most applications we use on the internet today. With a constantly expanding landscape of implementation options and acronyms, it’s often difficult to understand where to begin (nonetheless figuring out how to choose one option over another).&lt;/p&gt;

&lt;p&gt;Last year, some teammates and I came together to attempt to ameliorate this issue for database users on AWS. While there’s a vast body of “getting started” content out there, we felt there was a gap in highly technical content that extended beyond the format of &lt;a href="https://www.youtube.com/watch?v=cSPLC-BY7Vc&amp;amp;list=PL2yQDdvlhXf8j0dn2Eji_gRtWnRB9rK-G" rel="noopener noreferrer"&gt;one-to-many style re:Invent talks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Knowing this, our show started to take shape: my co-host &lt;a href="https://twitter.com/jrhunt" rel="noopener noreferrer"&gt;Randall Hunt&lt;/a&gt; and I would bring on a special guest each week from the teams that build these database services, diving deep on each offering from AWS. While there would be some slides, the goal would be for the format to be conversational in nature: expounding on explanations, performance questions, hypotheticals, and everything in between — all integrating questions from twitch chat, no matter how difficult.&lt;/p&gt;

&lt;p&gt;While many nuanced, technical questions are answered initially with “it depends”, we aimed to go a step further so that developers could develop an understanding of the questions to ask themselves in order to arrive at the best tool for the job.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The unifying value propositions we aimed to return to week after week were:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Deepen the understanding&lt;/em&gt; of features and tools available for database services you may already already using&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Broaden your horizons&lt;/em&gt; by exposing you to database offerings that may be better suited for a particular task you face&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Offer a glimpse&lt;/em&gt; of how these services operate under the hood to achieve performance at scale&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, over the course of 3.5 months, we went live on &lt;a href="http://twitch.tv/aws" rel="noopener noreferrer"&gt;*twitch.tv/aws&lt;/a&gt;* weekly, rain or shine, every Tuesday at Noon pacific. In total, Season 1 resulted in a 13 episode series (with countless topics left over for us to cover in season 2).&lt;/p&gt;

&lt;p&gt;To view any of the episodes on demand (with chatlogs replaying as they occurred during the broadcast) check out the &lt;a href="https://www.twitch.tv/videos/415407105?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;full playlist available on Twitch here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Season 1 Episode List
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ep1 — &lt;a href="https://www.twitch.tv/videos/415407105?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;How to Choose The Right Database for the Job&lt;/a&gt; with &lt;a href="https://twitter.com/josephidziorek" rel="noopener noreferrer"&gt;Joe Idziorek&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NoSQL Databases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/422092725?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep2 — Scaling Up With DynamoDB&lt;/a&gt; with &lt;a href="https://twitter.com/houlihan_rick" rel="noopener noreferrer"&gt;Rick Houlihan&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/550448796?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep4 — Manage &amp;amp; Scale Semi-structured Data with &lt;em&gt;Amazon DocumentDB&lt;/em&gt; &lt;/a&gt;with &lt;a href="https://twitter.com/josephidziorek" rel="noopener noreferrer"&gt;Joe Idziorek&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SQL/Relational Databases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/425658570?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep3 — &lt;em&gt;Amazon Aurora:&lt;/em&gt; Architecting the Relational Database Built for the Cloud&lt;/a&gt; with Yoav Eilat&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/434849558?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep5 — &lt;em&gt;Aurora Storage:&lt;/em&gt; Scalability and Reliability for Relational Data&lt;/a&gt; with Yuri Volobuev&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/464396659?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep6 — &lt;em&gt;Aurora Serverless:&lt;/em&gt; What’s Up with Serverless Databases?&lt;/a&gt; with Anoop Gupta&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/457882557?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep10 —&lt;em&gt;Amazon Aurora:&lt;/em&gt; Why are so many people migrating to PostgreSQL?&lt;/a&gt; with Denis Lussier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/470470826?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep13 — What’s New with Serverless Relational Databases? *(ft. Amazon RDS Data API&lt;/a&gt;) *with Nitesh Mehta and Lawrence Webley&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Graph Databases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.twitch.tv/videos/441431977?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep7 —* Amazon Neptune:* Graph Databases Demystified&lt;/a&gt; with &lt;a href="https://twitter.com/b2ebs" rel="noopener noreferrer"&gt;Brad Bebee&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Caching&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.twitch.tv/videos/444994048?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep8 — &lt;em&gt;Redis &amp;amp; Amazon ElastiCache&lt;/em&gt;: Building Real Time Applications&lt;/a&gt; with &lt;a href="https://twitter.com/mohanvar?lang=en" rel="noopener noreferrer"&gt;Mohan Varthakavi&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Database Migrations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/457849712?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep9 — Migrating Relational Databases to the Cloud with *Amazon DMS&lt;/a&gt; *with John Winford&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.twitch.tv/videos/457917428?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep11 — Migrating to the Cloud with NoSQL Databases using *Amazon DMS&lt;/a&gt; *with John Winford and &lt;a href="https://twitter.com/houlihan_rick" rel="noopener noreferrer"&gt;Rick Houlihan&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Performance Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.twitch.tv/videos/471284359?collection=21M8rKhQuRXH0Q" rel="noopener noreferrer"&gt;Ep12 — Analyzing and fine tuning the relational database using *RDS Performance Insights&lt;/a&gt; *with &lt;a href="https://twitter.com/kylelf_" rel="noopener noreferrer"&gt;Kyle Hailey&lt;/a&gt; and &lt;a href="https://twitter.com/mkosut" rel="noopener noreferrer"&gt;Mackenzie Kosut&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sov527idysmmu9p1po7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7sov527idysmmu9p1po7.gif" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Looking back
&lt;/h3&gt;

&lt;p&gt;With Season 1 is in the books, I just wanted to say it was a blast streaming for all of those many hours, and that’s in no small part due to the excellent questions, comments, and feedback we received in the chat from you, the viewers. Whether you asked a deeply technical question about applying a database to one of your production workloads, or simply wanted to comment on our laptop stickers, the audience contributions made it all worthwhile for us.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk88fvzqhqv5b0ko7ejpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk88fvzqhqv5b0ko7ejpu.png" alt="tasteful banter is always appreciated :)" width="628" height="124"&gt;&lt;/a&gt;&lt;em&gt;tasteful banter is always appreciated :)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  And they don’t stop comin’
&lt;/h3&gt;

&lt;p&gt;In the meantime, we’re hard at work preparing for Season 2, &lt;em&gt;which is right around the corner!&lt;/em&gt; As always, your feedback is greatly appreciated, and helps us craft an even better experience for you all. Want more demos? Customer use cases/case studies? Live coding? More elaborate guest introductions? Silly recurring rituals? Any particular guests you demand to see back? We’re all ears. Reach out over &lt;a href="http://twitter.com/thenickwalsh" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;, or email us at databasesdeepdive (at) amazon .com to let us know. If you’re interested in related content in the meantime, our channel also hosts an entire show dedicated to building on DynamoDB, check out &lt;a href="https://www.twitch.tv/collections/3lhjNItRuRXAzg?filter=collections" rel="noopener noreferrer"&gt;past episodes here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To follow along with what’s developing in the next few weeks, follow me &lt;a href="https://twitter.com/thenickwalsh" rel="noopener noreferrer"&gt;on twitter&lt;/a&gt; for announcements, and our AWS &lt;a href="https://twitch.tv/aws" rel="noopener noreferrer"&gt;twitch channel&lt;/a&gt; to get notifications when we go live. Hope to see you in chat!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>database</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
