Raspberry Pi Halloween Voice Changer

[Dave Shevett] has spent a lot of time (more than a year) expanding his Technomancer costume along with the companion (Arduino-driven) magic staff. He found, however, he needed a way to get his voice out from behind the mask. If you are going to go through that much trouble, you might as well augment your voice at the same time, right?

[Dave’s] voice changer uses a Raspberry Pi which isn’t all that complicated. The Pi uses Linux, and Unix–the predecessor to Linux–has a long history of having little tools you can string together to do big jobs. So once you have a Pi and a sound card, the rest is just some Linux command line wizardry.

There’s a battery and a small portable amplifier to get that booming voice. Since you don’t want to lug a keyboard and monitor around to handle every reboot, [Dave] set the Pi up to run his voice-changing scripts on each reboot.

This is a great example of why old Unix programmers make small tools and use the shell to join them together. [Dave’s] voice changer is pretty much just some off the shelf parts and a  script so simple it hardly qualifies as programming in any real sense. In fact, it is essentially one line of “code”:

play "|rec --buffer 2048 -d pitch -300 echos 0.8 0.88 100 0.6 150 .5 band 1.2k 1.5k"

Sure, there is some street cred in embedded development to doing everything the hard way, but with the advent of cheap embedded Linux systems, why not take advantage of the tools where you can?

If you want a more roll-your-own approach, you can pick up your Arduino or break out an audio mixer (but good luck getting it in your costume).

15 thoughts on “Raspberry Pi Halloween Voice Changer

      1. I must say the positive feedback and support I get from other geeks is heartwarming and fulfilling. And even though you didn’t ask, my reasoning for sticking with the Pi was looking for a generic platform solution I could use for other aspects of the costume going forward. For instance, I’m incorporating wireless communication between various components. Something possible with Arduinos, but easier with a full fledged OS and network stack. Thanks again for your thoughtful, supportive feedback!

  1. The audio sounds really cool.

    It’s a pity you have to view the source code to find the link to the audio file and then download and save it to the local machine and play it with a different audio player because the server it’s hosted on issues mime type text/pain for .m4a audio files.

    It’s here by the way – http://planet-geek.com/wp-content/uploads/2015/10/Voice-024.m4a but to have to ‘save page as’ because you browser treats it as text. Then open it with something that plays audio.

      1. It’s still sent as text/plain because of the file extension.

        If you rename it to MP3 then most systems will send it to an audio player which most likely also supports m4a.

        [audio src="http://planet-geek.com/wp-content/uploads/2015/10/Voice-024.m4a" /]

        GET /wp-content/uploads/2015/10/Voice-024.m4a HTTP/1.1
        Host: planet-geek.com
        User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:41.0) Gecko/20100101 Firefox/41.0
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        Accept-Language: en-GB,en;q=0.5
        Accept-Encoding: gzip, deflate
        DNT: 1
        Referer: http://planet-geek.com/2015/10/29/hacks/using-a-raspberry-pi-as-a-realtime-voice-changer-for-halloween/
        Cookie:
        Connection: keep-alive
        If-Modified-Since: Thu, 29 Oct 2015 13:11:44 GMT
        If-None-Match: W/”6988e13-7e140-d70e400″
        Cache-Control: max-age=0

        HTTP/1.1 200 OK
        Server: nginx
        Date: Sat, 31 Oct 2015 21:42:01 GMT
        Content-Type: text/plain
        Transfer-Encoding: chunked
        Connection: keep-alive
        Vary: Accept-Encoding
        Last-Modified: Thu, 29 Oct 2015 13:11:44 GMT
        Etag: W/”6988e13-7e140-d70e400″
        Content-Encoding: gzip
        ———————————————————-

  2. The RPi doesn’t have sound in – what are you using for the input? (I’m waiting for one of those cheap USB microphones to arrive from China but to be honest I don’t hold out a lot of hope for it working in the Pi, at least at first…)

    1. Oh never mind, I just found the link to the full article. I thought this hackaday article was all there was. That’s happened to me before on Hackaday, they seldom give prominence to the offsite link. Looks like you used a very similar sound card to the one I ordered ($1.17 – cheap if you’re willing to wait 3 weeks…) http://www.ebay.com/itm/381338122460

      1. I sort of lucked out – the USB sound board I’m using was double-shipped by mistake, so even though I wasn’t exactly breaking the bank at $5 or so i paid for the first one, getting two for that price made it worth it!

    1. apt-get install sox, it’s a suite of tools for working with audio and includes the “play” and “rec” commands in the post. It’s mentioned, but I had to figure it out too.

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