Blog | Git Repositry | Download |

The uSpeech library provides an interface for voice recognition using the Arduino. It currently produces phonemes, often the library will produce junk phonemes. Please bare with it for the time being. A noise removal function is underway.

Minimum Requirements

The library is quite intensive on the processor. Each sample collection takes about 3.2 milliseconds so pay close attention to the time. The library has been tested on the Arduino Uno (ATMega32). Each signal object uses up 180bytes. No real time scheduler should be used with this.


  • Letter based recognition
  • Small memory footprint
  • Arduino Compatible
  • Fixed point arithmetic (not anymore)
  • 30% – 40% accuracy if based on phonemes, up to 80% if based on words.
  • Plugs directly into an analogRead() port


Head over to the wiki and you will find most of the documentation required. Doxygen manual is available here.


Download the source code from github. Then read installation section of the wiki.


The library utilizes a special algorithm to enable speech detection. First the complexity of the signal is determined by taking the absolute derivative of the signal multiplying it by a fixed point scalar and then dividing it by the absolute integral of the signal. Consonants (other than R,L,N and M) have a value above 40 and vowels have a value below 40. Consonants, they can be divided into fricatives and plosives. Plosives are like p or b whereas fricatives are like s or z. Generally each band of the complexity coefficient (abs derivative over abs integral) can be matched to a small set of fricatives and plosives. The signal determines if it is a plosive or a fricative by watching the length of the utterance (plosives occur over short periods while fricatives over long). Finally the most appropriate character is chosen.


Documentation in other languages are welcome. I will be translating to spanish and chinese (simplified) but the more the merrier. Have a look at the following sections before doing anything:

To get started hacking on this project you should make all changes to the 4.x-workingBranch.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s