We have Raspberry Pi 4 in stock!
shop

Cart

Secure checkout
0

Chatterbox is seeking talented, creative and eager interns to join our development team. In this role, you will play a key role in the design and development of key-aspects of our educational smart speaker, designed to teach programming and AI literacy concepts intuitively to kids in K-12 schools.

Responsibilities

In this position, you will be working with our team to design and implement visual coding primitives and integrate with APIs and smart home devices and more. You will discuss and learn about best practices from senior developers and designers while building educational experiences using ChatterBlocks, Python and Javascript programming languages.

Requirements

About Chatterbox

We're a public benefit company that was created as a way to give kids a more engaging introduction to programming and AI literacy. We are committed to a social mission to bring STEAM + AI literacy education to kids from disadvantaged backgrounds. We're currently used in over 1000 schools across the US.

If interested, please send us your resume and portfolio to jobs at hellochatterbox dot com

We are so honored to have mentioned by Leo Laporte on the BEST TECH PODCAST to have ever existed: This Week in Tech!

Make sure to listen to the entire episode, especially the Google I/O review as well as the ethical implications of AI that they announced this past week such as: morphing fakes, the problem with AI agent authority and the problems with giving AI human-like voice responses.

It's these ethical AI issues that inspired us to create Chatterbox to provide kids with the AI literacy education to succeed in the 21st century. Check it out today!

AI for Everyone

Artificial intelligence is reshaping society, medicine, industry and the future of work. 

Today’s toddlers are the first generation to grow up without any memory of the world before AI. Kids are growing up learning to talk to smart speakers, use facial recognition with Snapchat filters to generate social memes and ride in their parents’ semi-autonomous cars. 

For today's kids, AI is normal. But do they understand what it is? How it works? How to use it? How to create with it? 

Today’s consumer AI products are not teaching kids how AI works, nor preparing them for the advanced future of AI they will encounter all their lives. 

That's why we created Chatterbox, the smart speaker that teaches kids AI literacy. 

Chatterbox helps drive diversity, equity and inclusion in AI by helping K-12 schools easily integrate AI learning experiences into classrooms with easy-to-implement curriculum. And it's fun! Kids love building a Chatterbox, then teaching it how to respond. 

Our curriculum provides problem-based learning scenarios in which students build and teach a smart speaker assistant how to solve real world problems. Chatterbox’s collaborative curriculum addresses student needs, supports classroom learning and aligns with national science and computer science standards.

By allowing students to explore and learn about AI, they begin to understand the benefits and consequences that AI can have on society, ethics and daily life while on their journey preparing for future STEM jobs.

Want to know how Chatterbox can drive AI Literacy at your school? Contact us today!

New ChatterOS Update released January 15th. We're very excited for this update because we've improved performance of Chatterbox by over 30%! Among fixes in this update are better speech handling, improved understanding and handling of date and time as well as block improvements. For full change log, please see below.

To download update, you can tell Chatterbox to "Check for updates."

To find out if your Chatterbox auto-updated, press button and ask "What version are you?"

Note: Depending on internet connection, please allow up to 30 minutes for update to finish. After update, you need to use the power switch to turn off and turn on Chatterbox for the latest changes.

Bugs Fixes

Skill Updates

Block Updates

System Updates

For any questions, email [email protected].

We are so grateful to have been mentioned on our FAVORITE podcast This Week in Tech! Many thanks to Leo Laporte and Owen JJ Stone for the mention and Mike Elgan for the incredible plug.

As mentioned on the show, the Chatterbox Cyber Monday special is going on all week! Use code CYBERMONDAY at checkout for 25% off your order until December 6th, 2020 (or while supplies last).

On day 13 of our 30-day skill challenge we will be building a simple dictionary skill to look up the meaning of any word.

Have you ever come across a word and not know what it means? Today we are going to teach Chatterbox how to look up word definitions for you so you can be a real life lexicon master.

Let's build the skill!

When in the Skill Builder, if you look under the "Internet" category, you'll find a block named Get Meaning for. This block does exactly what it says. It can either get the meaning of a word, it's synonyms or it's antonyms.

The Get Meaning block does exactly what it says:

The same way we start all skills, let's brainstorm how we or other people might ask questions about word meanings. You might say "define [word]" or "What's the meaning of [word]" or "what's the definition of [word]".

Since we'll be listening for multiple phrases, we'll use the Listen to Phrases block. Keep in mind that we are listening for a specific word, so we'll also need to create a "word" variable.

Next, we'll be feeding the "word" variable to the Get meaning block to fetch the definition. Any time that we use an API block, we need to store the returned information in a variable. Since we are fetching the definition, we can store it in a variable that we will create called "definition."

Last step is to speak the definition back to the user. For this you need to feed the "definition" variable to the Speak block as we've done in previous skills.

Your final skill should look something like this:

The Get Meaning block has additional functionality for synonyms and antonyms. This additional functionality will mimic the behavior of the Definition skill with a few language tweaks. Can you extend this skill to include Synonyms and Antonyms?

On day 11 of our 30-day skill challenge, we'll be teaching Chatterbox how to search Duck Duck Go for extended answers regarding topics. Learn about the Spanish Inquisition or learn about the American Revolution.

We've previously taught Chatterbox how to answer specific questions about the height of the Empire State Building or the depth of the Pacific Ocean. But what if we wanted to learn more about a certain topic? One of the toughest parts of skill design is understanding where to go for answers that you need.

DuckDuckGo is a privacy-focused internet search engine.

In the case of needing an "extended answer" to a general topic or subject, we've built blocks to make it incredibly simple to search the internet using the Duck Duck Go search engine. Think of Duck Duck Go as a search engine, sort of like Google, but focused on privacy. This means that Duck Duck Go isn't collecting information about everything that you are interested in as well as everything that you are searching for. Yes, that is what search engines do! We'll be having an upcoming blog post on the importance of privacy.

Let's talk about intents

Let's talk about intents. If you wanted to know what the weather was, you may go to DarkSky to get the latest weather. But what if you wanted to listen to a song? You wouldn't go to DarkSky for that, right?!

The toughest part about creating "skills" for Chatterbox is understanding where to go for information or answers. For this skill, let's use the Easter Bunny as an example. What if you wanted an extended answer or synopsis about the Easter Bunny? Well, we made a block for that!

The Duck Duck Answer block let's you search the internet using Duck Duck Go privacy-focused search engine.

This block will give you a short answer about lots of different topics that you might have questions about.

Building the DuckDuckGo search skill

In the same we that we start most skills, we need to think about how we might "invoke" or activate the skill. For this example, we'll be using:

"Search duckduckgo for" [subject]

We'll need a variable to store the subject that we are searching for, so your skill may look similar to this.

"Search duckduckgo for" [subject]

The next step is to search for the subject using the Duckduckgo block to get an answer.

Something to keep in mind is that every API works in different ways. We've done our best to simplify this for you, but we want to make sure that you understand the subtleties of APIs.

When requesting an answer from the Duckduckgo block, there are things that it knows, but there are also things that it doesn't know. If Duckduckgo doesn't have an answer to a query (fancy word for question), then it might respond with the value "None."

Why this is important for us is that if there is an answer to our question, we want to speak it. But what we don't' get an answer to our question?

For this we will use a new block called an IF block, that lets us do one thing if an answer is found, and something else if no answer.

If there is an answer, speak the answer. If no answer, then speak "I'm sorry I don't know about that."

Putting it all together

Your final skill should look similar to this:

You should have two variables: a subject variable and an answer variable. After invoking the skill, you should set the answer variable to the result of the duck duck answer block.

If there is an answer, speak it, else have Chatterbox speak "I'm sorry I don't know about that."

On day 10 of our 30-day skill challenge, we'll be teaching Chatterbox how to get answers to life's toughest questions. We'll be able to find out the distance to the moon, calculate the number of days until Thanksgiving and get the answer to what is the meaning of life.

Today we are going to learn how to teach Chatterbox how to find answers to some of our toughest questions. So far we've learned how to make Chatterbox respond to commands and get information. But what happens if we want to find an answer to a more complicated question, such as "What states border California?"

Let's talk about questions

Before we go any further let's talk about questions. Before we start building a skill, it's important to understand the question being asked.

What states border California?

As humans, we are able to process most questions easily, but it's often harder to get computers to answer the same questions. In the example above, we are essentially asking 4 different questions:

What state is North of California? Oregon
What state is West of California? None
What state is South of California? None
What state or states are East of California? Nevada and Arizona

Even people might need a map for reference. It's simple to make a skill that listens for "What states border California?" But what if we wanted to change it to: "What states border Iowa?" How would we get this information without having to manually check each time, or even one time. How do we get computers do this? That's a much tougher question.

What is Wolfram Alpha?

As a skill designer, your thought process should be:

  1. What is the user asking?
  2. Where can I find the information that they are asking?
  3. How to properly respond for the user?

Most of the time, the hardest part of this process has to do with how to find an answer to their question. This is where an amazing company and Chatterbox Partner comes in.

Meet Wolfram Alpha. According to its website,

WolframAlpha is a computational knowledge engine or answer engine.

In other words, WolframAlpha has lots and lots of different information that can be mixed, matched and computed with each using WolframAlpha technology. What does this mean for us? It means that we can simply ask it all sorts of questions in plain speech and get exactly the answer that we were looking for. It's AMAZING!

Let's build the skill and try it out!

Building the 'Ask Wolfram Alpha' skill

First, make sure you have the Internet extension enabled from the Extensions page.

Next, we need to figure out people will invoke (invoke means trigger or activate) the skill. For this skill, we'll keep it simple and use "Ask wolfram alpha"

Remember the double-sided text block can be found in the Data block category

We'll be asking Wolfram Alpha all sorts of questions, so it's good practice to store these questions in a variable. Add the "question" variable to the When I hear block.

Adding the question variable let's you automatically store the question in a variable to use throughout your skill

Finally, we want to search the Internet category for the Wolfram Alpha Short Answer block. This block uses the Wolfram Alpha API to search for answers and calculations from the entire Wolfram Alpha service. What's great is that it returns an answer that Chatterbox can speak.

This expression makes Chatterbox speak the Wolfram Alpha answer to a question

Congratulations! You've just built a voice skill that integrates with the Wolfram Alpha API. Your final skill will look similar to this:

Special note: If you ask a question and Chatterbox responds with "Wolfram Alpha did not understand your input," it's because your question might have gotten cut off a little bit. To fix this, you can try speaking a little bit faster or you can shorten "Ask wolfram alpha" to "Ask wolfram" or whatever else you would like.

Trying out the Wolfram Alpha service with Chatterbox

You've just turned your Chatterbox into a mini-supercomputer that not too long ago, would've been nearly impossible to create. Below are some questions to get you going:

What is the distance to the Moon?
How deep is the Pacific Ocean?
How many days until Thanksgiving?
What is the meaning of life?
What are words that rhyme with banana?
What states border California?
Where in the world is Carmen Sandiego?
How much wood could a woodchuck chuck?
What is 45 times 67?

We hope you enjoy your supercharged Chatterbox!

On day 9 of our 30-day skill challenge, we'll be making a hand wash timer that you can groove to. We'll also be learning about Skill Design and how to make Chatterbox Stop Audio and Wait.

I think it is safe to say that we all have been washing our hands more than ever before in the history of humankind. The CDC (Center for Disease Control) recommends that you scrub your hands for 20 seconds or "Hum the "Happy Birthday" song from beginning to end twice."

I don't know about you, but I'm so tired of singing Happy Birthday that I don't even want to hear it on my birthday?!

That's why today we're going to make a hand wash timer that we can groove to...

How to think about Skill Design (part 1)

So far we've built a bunch of skills, but we haven't discuss the process of designing a skill.

There are 3 main parts to every skill:

  1. How to start (or invoke) the skill?
  2. What to do?
  3. How to respond to the user?

For our hand wash timer, it should follow something similar to:

  1. Say "Start hand wash timer"
  2. Play a song for 20 seconds
  3. Great job for washing your hand!

For the most part this is right. But if we think about it deeper, step #2 could involve multiple steps. Let's try this out in 3 steps.

How to start the Hand Wash Timer?

Just like we've done in previous skills, we are going to start with a Listen block. So far, we've used two different Listen blocks.

The When I hear block is listening for specific keywords or keyphrases to match, while the On phrases like block requires similar examples in order to "train" itself to understand the variances between.

For this skill we'll simply use: "Start hand wash timer"

What are we going to do?

When we say "Play a song for 20 seconds" are we doing one thing or are we doing multiple things? Turns out that language is a little bit tricky sometimes. Humans are able to understand multiple things all at once while computers need to be told all the steps. But if we look closer we'll see that there are extra steps.

"Play a song for 20 seconds" really means:

  1. Start playing song
  2. Wait for 20 seconds
  3. Stop playing song

Step 1: Luckily, we already know that the Play audio block is how we can easily play audio sounds. For this example we'll be using this song:

For this example:https://www.youtube.com/watch?v=_NNYI8VbFyY

Step 2: To make Chatterbox wait, you use the Wait block which you can find in the Actions category. This block will wait for an amount of seconds.

Step 3: We've learned how to start audio by playing it, but to Stop audio we need a different audio block. Use the audio block with a selector. Set the selector to STOP.

Responding to the User

After 20 seconds of music, we want Chatterbox to speak. For this we use the Speak block and enter what you want the message to be.


Putting it all together

Deploy the skill and try it out! If you didn't listen to the song yet, you're in for a nice surprise. 😀

© 2022 Gigundo, Inc. Public Benefit Corporation.
crossmenu