Voice controlled robot arm using a Raspberry Pi
Although most people consider the Raspberry Pi to be a lightweight desktop computer, the small form factor device can also function as an embedded system to take on tasks such as performing metering, control or regulatory functions. Developer Arthur Amarra, who also goes by the name of Algorhythmic, has written a blog posting describing how he used a Raspberry Pi as a voice control system for a robot arm.
To control the arm, the open source speech recognition toolkit Julius is used, running on Debian. The arm being used in this example is OWI's Robotic Arm Edge, which is connected to the Raspberry Pi alongside a USB microphone. The robot arm then moves its individual joints in response to voice commands.
Algorhythmic had carried out the development work in advance on a laptop running a desktop version of Linux. The Julius toolkit requires developers to define voice commands in an acoustic model before it can be used to control anything. This involves some work. The programming itself was relatively simple due to the fact that the USB protocol for the robot arm had already been reverse engineered and can be accessed using pyusb in Python.
The script and tools do not need to be ported to run on the Raspberry Pi. The small processor does, however, slow down speech recognition. According to Algorhythmic, using it also results in a drop in recognition accuracy. Amarra's script is licensed under the GPLv3 and available to download from his web site.