Arduino voice changer turns you into [Vader]

Halloween is just around the corner, so of course we’re looking forward to a bunch of awesome costumes put together by Hackaday readers. In an effort to match his voice to his costume, [Phil Burgess] over at Adafruit (and former Hackaday alumnus) put together an Arduino-powered voice changer to give his voice the gravitas of [James Earl Jones] or the lightheartedness of a member of the Lollipop Guild.

If you’ve ever played with a turntable, you’ll know playing a 33 RPM record at 45 or 78 RPM turns your treasured copy of Dark Side of the Moon into a lighthearted aural experience with a pitch that is much too high. Likewise, playing a single at 33 or 16 RPM means those once dulcet tones are now recordings of tormented souls in an acoustic hell.

[Phil]’s voice changer operates on the same principle by recording sounds from a microphone into a circular array and playing them back at a different rate; faster if the desired effect is a Munchkin, and slower if this year’s Halloween costume will be a Sith lord.

The completed build incorporates a 10k pot to dynamically change the timbre of the voice changer, as well as an Adafruit Wave Shield to play back a few pre-recorded sounds of lightsabers clashing. In all, a very cool project for your Halloween costume that’s also a very good introduction to DSP and real-time audio modifications with a microcontroller.

12 thoughts on “Arduino voice changer turns you into [Vader]

  1. Very nicely done. I didnt know this shield was capable of real time signal processing like that. Super convincing too. NICE JOB.

  2. @bzroom
    this shield does not do ANY processing. it is only a “soundcard” and a “flashdrive”… the AVR/arduino does all the processing

    PS: this does not work as well with my hardware but is still fun.

    in my hardware (screw the 23$ shield!), i use R2R ladder for DAC and use direct port writes. “PORTA=low;PORTC=hi;”

    also, it DOES work on an ATMega1280… but not on an ATMega32 (40 pin DIP)

    its the damm 22$ substitute for resistors that does not work with the Mega. go figure

    watching people use a creditcard to buy what they already have… priceless!

    1. You came to complain about the lack of efficacy and ridiculous price of a ‘hack’ whose title starts with the word “Arduino” ……

      Just let that sink in for a minute :-D

    2. So, how does your few resistor hack read those SD cards and indexes the files and all that?
      And how does it not sound awful?

      priceless is how you make yourself the fool.

  3. A Halloween hack for you I have…

    Or..
    Soldering ninja are at you, young Padawan.

    This is pretty neat, however there are single chips which do this (or at least used to be)..
    I think they are pretty much extinct now unless you search the charity shops for a voice changing toy with corroded batteries and perform brain surgery to extract the chip.

    1. The simplest circuit I’ve seen for this vioce effect uses a 555 and an opto-isolator to chop the voice and give the robotic effect.
      The effect is variable by using a pot in the r/c circuit that regulates the 555 astable frequency.

  4. Lost me at the wave shield. Why not put that in the title? Arduino + Waveshield +amplified microphone=scary voice changer. Also “Halloween City” or whatever local gypsy halloween store you have in your area have voice changers for $5.00 that might fit the more budget minded tweaker. There is a resistor (R4) iirc that can be fiddled with. A 555 one like Jeff mentioned can add interesting Dahlek modulation with a robot voice changer :) EXTERMINATE your supply of candy into my bag :D

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