Talk Zombie

.              Backside

               front

Talk Zombie wins "Distinctive Excellence" in the AVR Design Contest 2006 organized by Circuit Cellar Magazine and sponsored by ATMEL

Talk Zombie was completed under the guidance of Asst. Prof. Gadre who had conceptualized it as a compact, multilingual talking device, capable of rendering the ambient temperature and current time in the form of speech.

It illustrates how sound can be incorporated into microcontroller applications economically, with an estimated cost of $23. This includes the cost of the Butterfly kit ($20) on which the application is implemented. Talk Zombie is a device which can aid the visually impaired.

Talk Zombie features a joystick-driven menu enabling the user to:

  • Speak out either the temperature or the time.
  • Set the time
  • Toggle the temperature between Celsius and Fahrenheit
  • Choose a language from amongst English, Dutch and French.

The AVR Butterfly proved to be an ideal kit to implement the application, with the following features of the Butterfly being put to good use:

  • External dataflash AT45DB041B, which is used to store the encoded sound files of the three languages.
  • NTC thermistor, the temperature sensor.
  • LCD display.
  • Joystick.

The recorded sound files were first encoded on a PC using Delta modulation. In Delta modulation, each sound sample is represented by one bit. This bit indicates whether the sound sample is greater or lesser than the previous sample. This leads to a high compression ratio (16:1 in our case, as we used recorded sound clips of 16-bit resolution), and a very simple decoding circuitry consisting of an RC integrator circuit, followed by a low pass filter.

Talk Zombie consists of the Butterfly kit and our own PCB screwed together back-to-back. The PCB consists of the following:

  • Decoding circuitry (integrator circuit and filter) for obtaining the analog sound signal.
  • Power amplifier LM386 for conditioning the sound signal.
  • Step up DC-to-DC voltage converter MAX756 for supplying the bias voltage for the LM386.
  • An 8 ohm speaker for giving the audio output.

An application, named the Dataflash Programmer, was written in Turbo C++ to give a PC interface through which the encoded sound files were written on to the external dataflash. The ATMega169 was used to program the AT45DB041B with the encoded sound files, serially transmitted from the PC.

The time can be spoken at the centre push of the joystick. To speak out the time or the temperature, Talk Zombie first fetches the delta modulated sound files from the external dataflash. The data is then sent out serially, from two pins of the ATMega169, with a frequency equal to the sampling frequency of the original sound. The outputs of the two pins are identical, except for a time delay of T (T is the period of sampling of the original sound). This algorithm is based on an article on speech waveform encoding in a previous edition of Circuit Cellar.

To make the device portable, Talk Zombie is powered with 3V derived from two AA cells. The 5V required to bias LM386 is derived from MAX756.

You can also view the abstract.

References :

1) Circuit Cellar v.180 p.16 "Speech Waveform Encoder" by Mariano Barron

2) C programming for Microcontrollers by Joe Pardue