Variations

There actually are three basic variations on this device, each with its own advantages and challenges, and each serving a different purpose.

Helmet Voice Changer

This is a version that could be used by a Stormtrooper or Mandalorian bounty hunter from the Star Wars setting; a Dalek or Cyberman from Doctor Who; Iron Man or some similar power-armored superhero; or similar things. (I originally conceived of it for a costume as the Golden Age Sandman, even though he never used one -- which should illustrate how you can go ahead get really creative with this!)

Among the limitations of this version is that its placement makes it difficult to control directly; a separate control of some sort will be needed. The solution presented here is to use an Android app to control the device via Bluetooth; while the Bluefruit app can suffice, I expect to be working up an Android app specifically for this project. (An iOS version is a big maybe.) It should also be possible to control the device through some other method, such as XBee or even a wired remote, though I'll leave these to the reader's creativity.

On the other hand, this version has the benefit of being completely self-contained: the microphone and speaker can be kept in the same enclosure as the electronics. Since the device will be very near the user's mouth, and probably directly in front, some protection will be needed to stop breath and spittle from contacting the mike and electronics, but those concerns are easy enough to address.

Throat Voice Changer

But what if your character doesn't wear a helmet, or any other kind of mask? What if your costume is as the Monitor from the "Arrowverse" TV show crossover events (Elseworlds and Crisis on Infinite Earths), or a Goa'uld System Lord from the Stargate franchise, or something of that sort? What then?

Well, hopefully you can cover up your neck, because that's where the piezoelectric microphone comes in handy. For this, you'll want something very small, and most importantly thin -- and that goes for your speaker as well.

You'll also be doing a bit of sewing; have some lycra (spandex) ready. If you prefer, you may use some other stretch fabric, but lycra will work best for most purposes. (If the neckband is going to be visible, make sure it's the right color! Unless it's going to pass as a decorative neckband, it should match either your skin color or the color of an adjacent garment.)

However, keeping the electronics separate does have the advantage of allowing the user to control the device's parameters right from the box itself. The (arguably) simpler method is to use a touch screen, though it could also be possible to use buttons, switches, and wheels (though I'll leave the implementation to your own creativity). Of course, Bluetooth control is still possible, and the device could even be set up to use both.

Hand-Held Voice Changer

This is the version that isn't hidden; it's just a completely self-contained unit. It can be used to experiment with settings, demonstrate the device, or just have fun at parties.

Since there's no need to keep up any "illusion," there's no need to hide any part of this. The enclosure can include the mike and speaker from the helmet version, and the touch screen from the throat version; everything you need is in one unit, without having to connect up anything else.

Components

The heart of the project is the Sound Processing Shield, a separate project I've done here on Hackaday.

As listed,  the project uses the Arduino Leonardo as the main board. It's the best option I've found that doesn't come with pre-installed headers. This can be important if you're using both the Adafruit PowerBoost 500 Shield for battery power and the 2.8" TFT Touch Shield for control; the former Shield doesn't allow for the SPI pins to go through, and using those pins for the latter Shield can keep things from getting too complicated.

Of course, if you're using the Helmet version, you'll probably need to do without the screen, so Bluetooth control is recommended. While some Arduino-equivalent boards have Bluetooth built in and Adafruit has their BLE Shield, just in case those aren't viable the Sound Processing Shield has a place to plug in Adafruit's Bluetooth LE SPI Friend (using short headers).

Your Additions 

One of the cool things about maker platforms like Arduino is that they're modular: if your particular project calls for more than what's written out, you usually can add it easily enough.

Some possibilities (with varying degrees of practicality):

(Just a reminder: if you use additional Shields, do remember to take note of the I2C addresses used by the boards, and what I/O pins they use. Avoiding data conflicts is kind of important!)

The Sketch

Because the TFT screen's support from Adafruit is in CircuitPython, the entire sketch for this device is written in that language, and uses the libraries provided by Adafruit.

General Notes

Nearly all of the device's functionality is controlled via the I2C bus. The provided sketch assumes:

The sketch is also set up to make it easy to change these.

Description

The sketch starts out with a declaration of constants, beginning with those that the user might wish to change.

The first thing the sketch does is initialize the touchscreen and/or Bluetooth commands. Then the configuration commands for the Sound Processing Shield's I2C chips are sent.

The sketch also checks to see if the EEPROM has the external Programs for the FV-1 that the system needs; and if they're not there, it uploads them. (This will generally only be necessary the first time it's turned on, or when a Program is added or changed.)

Since it's possible to have both TFT and BLE controls at the same time, the status screens for both reflect what the device's state actually is, not what it should be based on what that control's last action was.

The sketch also includes the possibility of uploading new Presets (see below) as well as new Programs for the FV-1.

Preset Programs

The device will have several Presets. These are files using internal or external Programs for the FV-1, along with the correct pot settings, for specific effects. Among those planned (with suggestions welcome):

*The "simple amplification" setting is for those who only have a need for basic amplification, such as stage actors, speakers in medium-sized rooms, those with medical disabilities that soften the voice, etc. It can provide a small amount of "room echo" to make it sound more natural.

In Use

Significantly, the device (as presented) has two separate USB ports. The lower one (on the main board) is used to upload programming; the upper one (on the Power Boost Shield) is used to charge the battery. The standard 5V jack isn't good for either function; its hole in the enclosure is only there because it sticks out too far to do anything else with it.