Voice It

The Voice It is a simple DIY device.  It reads the text stored on an RFID tag or encoded in a QR code (or barcode), then looks for an audio file on its SD card with the same name as the text that it read, and plays the file through an internal or external speaker.  You control which objects have an RFID tag/QR code/barcode and you control what’s contained in the audio file.

As an example, the Bliss Tactile Symbols, by default, include an internal pocket, just big enough to hold a simple RFID tag.  The Voice It comes with English and Spanish sound files for each of the 242 out-of-the-box Bliss Tactile Symbols.  You can also attach an RFID tag to any physical object and encode that tag with text using an inexpensive, RFID tag writer.  The Voice It SD card can be removed and additional audio files can be added using a PC.  By default, the Voice It “talks” in English but you can easily create an RFID-based language token to switch the language to Spanish or any other language you’ve put on the SD card.

A similar story can be told where QR codes or barcodes are used instead of RFID tags.  QR codes and barcodes can be produced for free and printed almost for free.  They also can be used in close proximity to each other.  This is more difficult with RFID tags which can electrically interfere with each other.  RFID tags have the advantage that they can be hidden from view and can still be read by the Voice It.

This video shows the Voice It in action, speaking English and Spanish words for the Bliss Tactile Symbols, and other objects, when they are touched to (or brought in close proximity to) the center of the top surface of the box:

If you want to get more volume out of the Voice It, or use it privately, you can attach external, powered speakers to the the built-in headphone jack.  The headphone jack is independent of the internal speaker and volume control.  If you’re using a set of headphones or earbuds, they must not have a built-in microphone.  If the headphones don’t have a built-in volume control you should add a device like this one.

Here’s the Voice It, in action, with external speakers:

The Cost of Parts

The Voice It is constructed of off-the-shelf components and a 3D-printed enclosure.  The components along with the enclosure will cost you around $130 (the actual number will depend on the features you choose to include).  The device is designed to be assembled using simple tools – a couple of screwdrivers, a needle-nosed pliers or tweezers (for retrieving dropped screws), and a roll of masking tape.  You’ll also need a piece of paper and a scissors.

Arduino Microcontroller

The Voice It has, at its heart, an Arduino MKR Zero (pronounced “maker zero”) microcontroller.  Software, running on the Arduino, is responsible for looking for an RFID tag, reading the tag, looking for an associated audio file on the SD card, and then playing the audio file.  You download the Voice It Arduino software, enclosure STL files, and Bliss Tactile Symbol audio files from here.

You’ll also need to download the Arduino IDE (integrated development environment) in order to install the Voice It software and troubleshoot your assembly.

We’ll take you through the entire process of assembling your Voice It in the next few sections.

Parts

The first thing you’ll need to do is to order and gather together all the Voice It parts.  Everything you need (other than the 3D-printed enclosure) is available from Amazon – and we’ve provided links for you in the List of Materials.

You have several options for the kind of Voice It that you will build.  The core components will cost approximately $80.  If you want to add a rechargeable battery, that will cost an additional $19. 

If you want to trigger the device with RFID tags, add $9 more per Voice It.  You’ll also need an RFID tag writer that you can use for all your Voice Its for $37.  RFID tags typically cost between 15 cents to 30 cents each.

If you want to use QR codes to trigger the device, that will cost an additional $48 primarily for a special module that reads the codes.  Fortunately, you can create QR codes for free.

Supporting an internal speaker will add $17 while utilizing only an external speaker or set of headphones will add $6.

You can save some money – though not a lot – by cutting, stripping, and tinning some of the wires yourself.  We’ll leave those decisions to you.  You may be able to obtain a less expensive rechargeable battery if you’re willing to swap the leads on the battery’s JST connector. 

The picture below shows how a battery needs to be wired in order to be used with the Voice It:

With the ridge on the connector facing up, the black wire should be on the right and the red wire should be on the left.

The bulk of Li-Po batteries on the market are intended for use with RC cars and drones.  They are wired backwards (red on the right, black on the left) from batteries intended for use in electronics projects. 

The Voice It designer, currently supports two different batteries.  If you can’t find a battery that matches the size of one of our two recommended batteries, you may need to make some adjustments to the enclosure design.

Note that it’s difficult to purchase just one or just a few of the items in the materials list at a reasonable cost.  This might be a burden for you if you intend to build one and only one Voice It.  Instead, we recommend that you think of yourself as well on the way to building a second Voice It when you see how valuable a device this is!

Setting up the Arduino Software Environment

The Voice It includes an Arduino microprocessor running a program written in the Arduino language.  To install the program on the Voice It, you need to first install the Arduino IDE and supporting libraries on your PC.  You’ll find detailed instructions for doing that, here.

Preparing the SD Card

The SD Card needs to be formatted with a particular file system and you need to copy the sound files to the SD Card.  More about that, here.

Optional: Creating a “sample” RFID Tag for Testing

If you’d like the Voice It to read the contents of RFID tags and use that information to play audio recordings you’ll need to create a sample tag in order to test your assembly.  The instructions for creating a sample tag can be found here.

Optional: Creating a “sample” QR  code or barcode for Testing

If you’d like the Voice It to scan and read the encoding present in a QR code or barcode image and use that information to play an audio recording you’ll need a sample QR code or barcode to test your assembly.  The instructions for creating a sample code can be found here.

Printing an Enclosure

The Voice It enclosure is entirely 3D-printed.  The enclosure is comprised of two to four parts.  A description of the enclosure, including special instructions for 3D-printing the parts, can be found here.

Assembling the Voice It

Now that you have all the parts assembled you’re ready to being the installation process.  It will take you about 1/2 hour to assemble and test the Voice It:

Web-page version of the assembly instructions along with videos demonstrating each step along the way..

Note that you can easily perform the assembly in half the time taken in the video.  Too much talking!

Finally, if you run into any problems during the Voice It assembly, refer to the troubleshooting instructions in the “assembly” subfolder of the “Voice It” folder.

Using the Voice It with RFID Tags

Once the battery has been fully charged, the Voice It will continue to operate for the entire day – actually for a couple of days.  At the end of the day connect the Voice It to a USB charging cable and let it charge overnight.  You can take it off the charger the next morning and use it for the day.

There’s nothing special that you need to do if you don’t plan to use the Voice It for several days, weeks, or months.  Just put it on a charger for at least 8 hours prior to its next use.  You don’t have to worry about over charging or under charging the Voice It rechargeable battery.  There is circuitry on both the Arduino and in the battery to manage the charging and discharging process so that the battery’s life is preserved as much as possible.

You don’t need to turn off the audio amplifier at any point during the life of the Voice It.

Note, if you turn off the audio amplifier by turning the volume control knob to the all the way counterclockwise until you feel a “click”, the next time you turn the amplifier on, you’ll also need to press the reset button to wake-up the Voice It.  You’ll hear the “startup” sound approximately five seconds later.

Using the Voice It with QR Codes and Barcodes

Almost all the information above applies to the version of the Voice It that can read a QR codes/barcodes (as well as for the version that can read both QR codes/barcodes and an RFID tag).  One thing to keep in mind is that the QR code reading module consumes a fair amount of power and when combined with the audio amplifier associated with an internal speaker, that becomes a “more than fair” amount of power.  The module is sensitive to movement.  If anything passes in front of the module, or even if the lighting in the room changes significantly, the module light will go on for five seconds.  So, you may not get a full eight hours of usage out of the Voice It before you need to put it back on a charger.  You can limit the number of times that the module will respond to movement by pointing the module downward.

The QR code reading module needs a bit of ambient light before it will notice that something has entered its field of view.  Normal daylight or classroom lighting should be sufficient.  If you find that the QR code module doesn’t respond when a QR code is passed in front of it, you may need to increase the amount of ambient lighting in the room or near the Voice It.

Finally, the QR code module has a lot of specialized settings that you can control, appropriately enough, by showing it a set of different QR codes.  We’ve selected several default settings that we “think” will work for you but you can change them if you’d like.  More on that capability here.

Creating and Assembling the Barcode Scanning Platform

You can read pre-printed barcodes from just about any item, a pill bottle, a can of soup, a cake mix box, a book – use your imagination, just about everything has a barcode!

You can find the STL files, for a platform to assist barcode scanning, in the “scanning platform STLs” folder.

This video describes how to assemble and test the platform.

Charging Your Voice Its

The easiest way to charge you Voice Its is to purchase a set of magnetic USB charging cables like these, some extra micro USB magnetic charging tips, and a charging station like this.

Several Voice Its can stack nicely while charging.  In the picture below, I’m using several magnetic USB chargers and a charging hub:

How Can I Tell what a Voice It can do?

If you’ve forgotten what features and electronics went into a Voice It, how can you tell what it can do?

If you look at the top surface of the Voice It and you see a circular engraving, that’s a good indication that the Voice It has an internal RFID reader card and can be triggered by an RFID tag:

 

If you see a large block hanging off of the enclosure top, it’s a give away that the Voice It can be triggered by a QR code or barcode:

And, of course, if your Voice it has both indications, then it can do both.

A Voice It can be assembled with an internal speaker and/or support connection to an external speaker or set of headphones.  Here’s how you tell the difference:

 

Adding New Content

At some point you may want to extend the capabilities of the Voice It.  Those capabilities will come in three possible forms:

  • additional words for a particular language
  • additional languages
  • reading a book
  • update to the software

Additional Words

Adding new words to a language is as simple as creating a recording of someone saying that word and putting that recording in the proper folder on the SD card.  The file should have the name of the English version of the word.  For example, if the new word you’re adding is “peanuts”, then the file should be named “peanuts.wav”.  Even if you’re adding the Spanish version of the word (i.e., “miseria”), your file should still be named “peanuts.wav”, though the sound recorded in the file will be the Spanish pronunciation of the word.

Additional Languages

Words in languages other than English and Spanish, should be placed in their own subfolder.  English words are placed in the “en” subfolder and Spanish words are placed in the “es” subfolder.  Create a new subfolder for your language using the two character standard representation for that language.

You’ll need to record two additional files and place them in your subfolder.  The first should be called “xx_language.wav” (note the underscore character in the filename).  The “xx” should be the two character language representation that you’ve chosen as the name of your folder.  This file should contain a recording of someone saying the name of the language in that language.  For example, the file “de_language.wav” in the “de” folder for German words, should be a recording of someone saying the word “Deutsche”.   This file will be played when the Voice It encounters an RFID tag with the content “*xx” (i.e., an asterisk followed by the two letter designation for the language).  In this example, the tag would have the characters “*de” encoded on it.

The second standard file in your folder should be called “set volume.wav” (no underscore).  It will be used to set the volume level (i.e., by turning the volume control knob) of the audio amplifier to the loudness level that you want for a particular individual in a particular environment.  It should be a recording of someone speaking sentences in the language for about 15 seconds.  It’s best if this file is recorded at the same time and at the same volume as the other words in the folder.  This file will be played when the “change language” tag been read by the Voice It and then a tag encoded with “set volume” is read.

Note that a sound file can contain much more than individual words,.  It could just as easily contain a reading of a book, a song, a description of the contents and use of a pill bottle, the instructions to bake a cake, or anything that can be captured auditorily.

Bliss Tactile Symbols and Extended Core Words/Concepts

You can record a file for each of the 242 core concepts supported by the Bliss Tactile Symbols or you can create audio files for just the concepts you need to support at this time.  The filenames should be the English equivalent of that concept so that the same concept will have the same name in each of the language folders.

We provide a document in the Voice It “assembly” folder called “Add your language” in both Word and PDF formats to help you choose the specific word in your language to record.  The default English and Spanish words are shown along with the part of speech.

Note that a Bliss Symbol may represent multiple English words and you can encode each of those words on the RFID tag for the symbol (separated by a comma).  If, however, in your language, each English word has the same translation, there’s no need to encode both words on the tag.  For example, this Bliss concept:

Represents both the English words “he” and “him” and it makes sense to encode the RFID tag with both words and speak both words.  However, in Spanish, both of these words translate as “él”.  It doesn’t make sense to have the Voice It speak “él, él” when this tactile symbol is brought near.  It’s probably better to encode the RFID tag with just “he” or just “him”.

Removing and Reinserting the SD Card

Note, after inserting the SD card, you may not hear the startup sound.  Pressing the reset button may not cause the Voice It to wake up and play the startup sound. When this happens, plug the Voice It into your PC, or into power, using a USB cable and wait for the startup sound. Now everything should be back to normal.

WAV Format Files

The Voice It can only play “unsigned”, “8-bit”, WAV files.  Unfortunately, there aren’t a ton of ways to create such a recording.  You can use the free PC software “Audacity” or you can record your file online at the TwistedWave website (click the “New Document…” button) and then download your recording directly to the SD card.

If you find that the Voice It won’t play your recording, Connect the Voice It to your PC and launch the Arduino IDE.  Open the Serial Monitor and attempt to invoke the recording by placing  the associated RFID tag on the Voice It box.  The Voice It program will display information about what it’s experiencing in the Serial Monitor.  The snippet below shows a successful reading of the RFID tag and a successful processing of the audio file:

Tag data: [different] 
different.wav
File type (expecting WAVE): WAVE
Chunk size (expecting 16): 16
Format (expecting 1): 1
Number of channels (expecting 1): 1
Sample rate (variable): 44100
Sample size (expecting 8): 8

Look at the “Tag data:” line and verify that you haven’t misspelled the word.

The next line calls out the name of the file that the program is looking for.  Is that what you named your recording?  If you did, did you save it in the correct folder?  The program will tell you if it can’t find the recording.

Finally, if the file can be found but it can’t be played, the program will list the properties of the recording it found and what it was expecting.  If any property fails to match what the program is expecting, you’ll need to modify the recording or record it again and save it in the proper format.

Reading a Book

The Voice It is adept at book reading – once you’ve recorded audio files for each page of the book.  We’ve done that for you, in both English and Spanish for a famous children’s book: “Goodnight Moon”.  Specifically, we’ve created audio files for each page of this version of the book which is written in both English and Spanish:

You can, and should, purchase a copy of the book before using the audio files that come with the Voice It software.  You can purchase a copy for yourself here and elsewhere. 

An audio file for each page of the book is located in a folder named “GM” in bot the English (en) and Spanish (es) folders.  There is also an audio file called GM_complete.wav in the language folders as well as in the respective GM folders.   This file is a compilation of the recordings for each page with “beeps” inserted as a hint to turn the page.

We’ve also created a page of QR codes that you can use to trigger the playing of each page of the book or to play the complete book as a whole.  Because this book, like all books has an associated bar code:

you can trigger the Voice It to read the book out loud by pointing this code at the Voice It’s QR/barcode reader.  We simply created a copy of the GM_complete.wav file and named it 9780062367914.wav.

Finally, we’ve scanned the book pages pasted them into Microsoft PowerPoint and added a QR code to each slide that points to the audio recording for that page.  A PDF of that  slide deck can be “read”, one page at a time, on any tablet with the help of the Voice It.  Again, you should purchase the book before using any of these images or recordings.

Watch the video below for a demonstration of the Voice It reading this book in several ways.

Updating the Software

On occasion, we may release new versions of the Voice It software to address bugs or add new functionality.  If we update the software for the Arduino MKR Zero, you’ll just upload the new version to the board, using the Arduino IDE, exactly like you did during the initial assembly.

A Closer Look at the Voice It in Action: Reading RFID Tags and QR Codes/Barcodes

More ideas for the Voice It

The Voice It is a general purpose device for reading RFID tags, QR codes and barcodes, and then playing an audio file based on the text encoded in the tag/code.  The RFID tags can take a variety of forms from one that is stuck to another object to one that is embedded or sewn into another object.  QR codes and barcodes can be created using online services and printed or digitally copied to a document or image. The content of the audio file can be what ever you want it to be.  Here are just a few of the ways that the Voice It can be used, but you may be able to imagine many more…

  • clothing color coordination
  • organizing binders
  • choosing among medications
  • parents who want to read to children but may not speak the language
  • visual schedules
  • pronunciation of sight words
  • support of ELL teachers for languages that aren’t staffed
  • augmenting smartphone technologies
  • speaking to Alexa and Siri
  • etc.

Acknowledgements

The Voice It would never have gotten beyond the concept stage if it hadn’t been for the help of a talented, international, team of volunteers:

Justin Wintour Justin lives in Ontario, Canada and is a wiz at C and C++ programming.  That made him the perfect choice to develop the Voice It software that runs on the Arduino MKR Zero.  Justin has taken the audio capabilities, and SD card handling, of the MKR Zero to a place they’ve never been before.
Tim Bellis Tim lives in Colorado, USA and is an expert in mechanical design and 3D modeling.  If you appreciate how sweetly all the components fit together in the 3D-printed enclosure and how easily the Voice It can be assembled, you can thank Tim.