Undo vocoder - extract original voice audio

Assuming I’ve used a vocoder to mix a voice audio into a music track: how do I undo this? How do I take the mixed track and extract the original voice audio?

Let’s say I do not know the parameters used by the vocoder when mixing the voice audio into the music track. I just have a music track and I know there are vocoded voice audio signals in it, somewhere. Can I still extract the original voice audio(s)? Perhaps by systematically scanning frequencies or somewhat.

No you can’t. The vocoder effect is a one way trip. There is no “de-vocode” effect.

If you used the vocoder effect in Audacity, you can use “Undo” (Ctrl+Z or select “Undo” from the Edit menu) to step backward through the undo history until you undo the step where you applied the effect.

Hmmm… I remember a bit of my DSP from Uni… can you give me a brief reason why its a one-way encoding? What information is lost?

Lots. Vocoder - Wikipedia

Thanks. I understand.

Let me ask a secondary question however. Assume I have a music file with some vocoded voice audio in it. However the voice is too quiet to hear, it is drowned out by the music. Can I detect/isolate the bands used by the vocoder and amplify them so that I can hear the voice? I’ve tried using a comb filter but I wasn’t sure I was on the right track.

If you had the exact algorithm used, you could reverse it easily.

Since you have no idea and a vocoder can use millions of different settings, each resulting in a different algorithm, you’re out of luck. And then there are still different vocoder applications/plugins.

The example where you could undo a “swirl” on a picture to hide faces, only works if the swirl has been produced in Photoshop and with default settings. But because everyone seems to use default settings, it works most of the time…

No, I don’t think that you could. Vocoding is (very) lossy in that it reduces frequency bands to discrete frequencies. There is no way to determine what the actual content of each frequency band was before it was encoded. If the Audacity Vocoder effect was used then it’s even more impossible (if that makes sense :wink:) because it replaces the original frequency bands with narrow band (random) noise.

If you know what the carrier frequencies are (the centre frequency of each band), then you could probably construct a filter using the Equalization effect (would probably need to set the “Filter Size” to maximum) which would raise the level of the vocoded voice. However, there are two big problems: 1) You probably don’t know what those frequencies need to be (and if it is low in the mix it may be impossible to determine that information), 2) the filter will also amplify those frequencies in the music, so it probably won’t help very much.

Thanks Steve and Cyrano, I’ll look into using the Equalizer effect.