Answers.Body: <h2>Phrase detection instead of text-to-speech</h2>
  
  <p>It's worth noting that detection of particular phrases or commands is considered a distinct problem, different from text to speech / text transcription.</p>
  
  <p>While you <em>can</em> simply convert <em>everything</em> it hears to text and then look up keywords there, a specialized detector that directly tries to match incoming audio to a small subset of commands can be done with better accuracy and less processing power required. For this reason, this would generally be the preferred approach in commercial products.</p>
  
  <p>However, for beginner experiments with home automation, you should probably start with choosing an existing speech analysis API where all the audio and natural language parts are appropriately implemented by someone else. Building a good speech command analysis system from scratch is a major undertaking by itself, and you will have your hands full with developing an "artificial intelligent agent"; as a rule, you don't want a project where you have to tackle <em>two</em> major open-ended problems, pick one of them and then you'll have a chance to achieve something interesting there.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-16T14:10:14.370Z
Answers.Text: I am making this in python 2.7 what active API's would I be able to use for this type of task @Peteris
Answers.UserDisplayName: N. Chalifour
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-16T12:53:50.453Z
Answers.LastActivityDate: 2017-01-16T12:53:50.453Z
Answers.UserDisplayName: Peteris
Answers.Body: <p>Cheep digital assistant "AI" 's have a call word <code>Hey, &lt;AI's NAME&gt;</code>
  I assume you want a bit more than that.</p>
  
  <p>You could train it to figure out which words in some context determine if you are engaging with it or not.
  If your only question to the network is if you are engaging with it or talking to someone else this is all you'd need.</p>
  
  <p>Index a dictionary or have it build one from collecting words (building a dictionary from scratch is a better solution it saves space in the short term and is more easily expandable in the long term) and score words based on usage in engaging speech and non-engaging speech or what you want it to do.</p>
  
  <p>Build on that with an index of multi word strings.</p>
  
  <p>By the end hopefully you will have a table of contexts when you are engaging with the AI when you definitely are not and some grey area.</p>
  
  <p>The training process is long and tedious but if you have a recording of you talking and not talking to the AI and you feed it with such knowledge and you breed the network you should have it get okay at determining context.</p>
  
  <p>If you have to sit and hold it's hand for 2-72 hours while it grows up it will likely be painful, although you may end up with a better result.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-01-16T04:06:06.837Z
Answers.LastActivityDate: 2017-01-16T04:06:06.837Z
Answers.UserDisplayName: haelmic
Body: <p>I am trying to make an intelligent agent similar to Jarvis from Iron Man, but much less complex. However, I want my AI to be able to determine if I am talking to it or not. So, I plan on having it always listen to my voice and convert that to text. However, I am not sure how I can train the AI to recognize if it is being spoken to or not?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-01-16T16:40:06.660Z
Comments.Text: You may have a look at [jarvis](https://github.com/alexylem/jarvis) for inspiration.
Comments.UserDisplayName: Tensibai
Tags: <neural-networks><machine-learning><deep-learning><ai-design><intelligent-agent>
Title: How can I design an AI that knows when its being spoken to?
UserDisplayName: N. Chalifour
ThreadText: # How can I design an AI that knows when its being spoken to?
  
  (Asked by: username_0 on 2017-01-15)
  
  I am trying to make an intelligent agent similar to Jarvis from Iron Man, but much less complex. However, I want my AI to be able to determine if I am talking to it or not. So, I plan on having it always listen to my voice and convert that to text. However, I am not sure how I can train the AI to recognize if it is being spoken to or not?
  
  **Tags:** neural-networks, machine-learning, deep-learning, ai-design, intelligent-agent
  > **Comments:**
  > **username_1**: You may have a look at [jarvis](https://github.com/alexylem/jarvis) for inspiration.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2017-01-16. Score: 3
  
  ## Phrase detection instead of text-to-speech
  
  It's worth noting that detection of particular phrases or commands is considered a distinct problem, different from text to speech / text transcription.
  
  While you *can* simply convert *everything* it hears to text and then look up keywords there, a specialized detector that directly tries to match incoming audio to a small subset of commands can be done with better accuracy and less processing power required. For this reason, this would generally be the preferred approach in commercial products.
  
  However, for beginner experiments with home automation, you should probably start with choosing an existing speech analysis API where all the audio and natural language parts are appropriately implemented by someone else. Building a good speech command analysis system from scratch is a major undertaking by itself, and you will have your hands full with developing an "artificial intelligent agent"; as a rule, you don't want a project where you have to tackle *two* major open-ended problems, pick one of them and then you'll have a chance to achieve something interesting there.
  
  > **Comments:**
  > **username_0**: I am making this in python 2.7 what active API's would I be able to use for this type of task @Peteris  
  
  ---
  
  ### Answer by username_3 on 2017-01-16. Score: 2
  
  Cheep digital assistant "AI" 's have a call word `Hey,` 
  I assume you want a bit more than that.
  
  You could train it to figure out which words in some context determine if you are engaging with it or not.
  If your only question to the network is if you are engaging with it or talking to someone else this is all you'd need.
  
  Index a dictionary or have it build one from collecting words (building a dictionary from scratch is a better solution it saves space in the short term and is more easily expandable in the long term) and score words based on usage in engaging speech and non-engaging speech or what you want it to do.
  
  Build on that with an index of multi word strings.
  
  By the end hopefully you will have a table of contexts when you are engaging with the AI when you definitely are not and some grey area.
  
  The training process is long and tedious but if you have a recording of you talking and not talking to the AI and you feed it with such knowledge and you breed the network you should have it get okay at determining context.
  
  If you have to sit and hold it's hand for 2-72 hours while it grows up it will likely be painful, although you may end up with a better result.
  
  
  ---
  
  