To give some context, I am designing a cosplay armor costume that somewhat muffles everything that is spoken while wearing it. I have a simple low power audio amp that I was intending to use to amplify my voice and place a small (3") speaker on the outside of the armor, theoretically enabling me to be easily heard outside the outfit without needing to really raise my voice. However, because of the restricted possible range between the mic and the speaker, by the time the volume of audio from the speaker is at acceptable levels, it is evidently picked up again by the mic inside the costume, and produces an annoying squeal from the speaker that rapidly increases in loudness until the amp's volume is turned down, at which point the level of audio from the speaker is undesirably low. The amp is a physically separate device from both the speaker and the (suitably biased) microphone, so I could potentially add some custom electronics to either location. I cannot change any of the properties of the amplifier itself, which takes a line-in, and can directly drive a speaker.

Yes, I know there are commercial stormtrooper amps that likely do most of what I am wanting to accomplish here, but I'd like to see if I can work a solution out myself, and hopefully not have to splurge more than a hundred dollars on what amounts to nothing more than a voice amplifier.

And to that end, I was thinking of possibly using an inductor that coupled with the impedance of either the mic or speaker, depending on inductor placement, would have an L/Z time constant such that the cutoff frequency would be approximately 1.5khz, which is far enough above normal spoken communication that I am hoping it should not interfere with normal voice communication, and still below the frequencies of the squeals produced, which according to the decibel meter that I used to check, peak at well over 2khz.

But I am not sure if that will actually work, nor am I sure whether it would be better to place it on the input or output even if it did.

  • 1
    \$\begingroup\$ Either an inductor in series with the speaker or a RC filter in-line with the mic input. \$\endgroup\$
    – user105652
    Aug 11 '20 at 3:32
  • 1
    \$\begingroup\$ The main reason is, as you stated, the distance between the speaker and the mic. The mic is able to pick up even the small vibrations that the speaker's diaphragm creates. If there's enough amplification factor then it's inevitable the feedback will occur. So, filtering out above 1.5kHz may not help as the most powerful content is still present. You need to solve this mechanically so that the mic does not pick up the vibrations. I cannot make any further suggestions as I have no idea how the suit and other electronics are placed. \$\endgroup\$ Aug 11 '20 at 4:56
  • \$\begingroup\$ Change to a different electret mic with better far field pickup and only near field within 1” and then place near corner of lips for best pick without breathing noises. \$\endgroup\$ Aug 11 '20 at 21:59

I was thinking of possibly using an inductor that coupled with the impedance of either the mic or speaker, depending on inductor placement, would have an L/Z time constant such that the cutoff frequency would be approximately 1.5khz

There is no simple one-size-fits-all solution to this because there can be many, many wavelengths of signal (in the air) between the speaker output and the path audio takes to get back to the microphone. Just moving the speaker or microphone 1 cm can be enough to stop acoustic feedback then, a moment later, due to the audio being reflected back to the microphone along a different path, the signal coming back will sustain oscillation i.e. it becomes positive feedback.

In other words, a simple filter will not do the job effectively at all. It's not like an electronic circuit where negative feedback is applied; it's much more complex than that.

My first recommendation is to incorporate a voice operated switch so that when you are speaking, the amplifier is activated and when you stop speaking closes down thus preventing sustained feedback. This of course relies on normal speech levels being the dominant amplitude.

The next trick is a pitch shifter. I remember electronics magazines way back when publishing a circuit that shifted the whole vocal range by 5 Hz. This is a good way of ensuring that you can't get a sustained feedback but may generate other artefacts. I heard at the time that you could get another 10 dB gain from the amplifier.

I do recall that some megaphones used pitch shift to avoid feedback and I believe that some PA systems do the same.

Along the same lines as pitch-shifting is using a "Dalek effect" "translator" where you are removing a significant amount of natural spectral content of the voice and replacing it with something else. That "something else" can be an assortment of band-limited noise, regular oscillator tones or the output of a musical instrument (aka a vocoder). This type of circuit is generally referred to as a ring-modulator (that's what is used for Dalek voices). I've seen videos of the guy who plays Davros practising lines sat at a table with other Dr, Who actors and wearing the device with no apparent feedback problems.

There are also DSP chips that can eradicate sustained oscillations by modifying in real time the audio filtering algorithm to reduce gain at where it detects the sustained tone.

There is this paper that desribes how frequency-modulation is used to reduce feedback in hearing aids. It considers: -

  • Gain reduction techniques
  • Frequency shifting
  • Adaptive frequency compensation
  • Frequency modulation

Elliot Sound Products aka ESP have a very good article on the link called

Acoustic Feedback In PA Systems (With Special Reference To Frequency Shifting)

The article also goes on to show a circuit diagram of a frequency shifter: -

enter image description here

This circuit and another are on the project 204 page.

  • 2
    \$\begingroup\$ I hadn't thought of shifting pitch before. That's actually a good idea, as it might produce a desirable audio effect. I'll look into seeing if I can achieve that with an arduino microntroller, of which I happen to already have several spares that are doing nothing right now. \$\endgroup\$
    – Mark
    Aug 11 '20 at 17:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.