Overview The RitaBoxes have one main feature, to receive short messages and speak them out loud. RitaBoxes connect to the internet over wifi and are constantly checking for new messages. Once a Ritabox receives a new message, it turns on an LED on the front of the unit. The box has two buttons, one that will play the message and another that will repeat the last message it spoke. If all new messages have been played, the RitaBox will say one of the two hundred pre-set fun/mean messages. Messages can be sent to the RitaBoxes either by SMS or through a website. When submitting a message, the sender can specify if this message should go to all boxes or one specific box. So far, I have made four RitaBoxes as Christmas presents for some of my family members (Christmas gift recipients have no choice but to be a test subject).
Hardware The main piece of hardware used is a Raspberry Pi Model B (512 ram). An lm386 op amp circuit was added to drive the speaker in the case. This op amp was chosen because it is able to run off of the 5v supply from the Raspberry Pi’s GPIO so that the only piece in the box that needs power is the Pi. The Raspberry Pi’s GPIO pins were used to also drive the LED and push buttons using the WiringPi library. Wifi is being handled by an Edimax EW-7811Un USB dongle. Pine boxes were constructed and finished to house all of the components for this project.
Software The server-side software for the RitaBoxes was done in PHP and mySQL. GoogleVoice is being used to receive SMS messages. The client side is running Raspbian and the application code is a combination of mySQL, PHP and BASH scripting. The text-to-speech function is being handled by AT&T Lab’s Natural Voices service. Each RitaBox is configured to report health stats (storage use, free ram, running daemons) back to a central manager.
Future Steps Overall, I have found that the Raspberry Pi is very ideal for this application. Switching to an offline text-to-speech solution like Festival is certainly possible for this project. This would cut down on network traffic, and the dependency on an external service. However, from my experience, I would be sacrificing voice quality. From past testing I know that these boards are capable of running the entire Rita system but at this point it’s a matter of finding simple ways to configure and interface with the boxes that has led me to keep the features list small. I don’t believe that the messaging feature would be practical for many people. However this deployment configuration is allowing me to work towards identifying and resolving the issues in developing an easy to use and stable framework for all of the Rita system functions.
Project Rita is an attempt at simplifying daily life by cutting down the amount of time that a person needs to spend in front of a computer screen. This is accomplished by having one device that keeps track of all of the information that the user is personally interested in. At this point of the project that information includes received text messages, emails, Facebook notifications, and the current weather. After collecting all of this information Rita can then present the user with the right information at the right time. For instance when you wake up wouldn’t it be great to be told all of the messages that you missed while you were sleeping along with information about the upcoming day? Rita can do that. Speech-to-Text and Text-to-Speech software allows the user to access this information with very little disruption. This project is being designed to be light-weight enough to run on almost any hardware and flexible enough to be adapted for many different uses. My end plan for Project Rita is build a flexible, useful framework and release the code for others to use and improve upon.