It seems like your first step is sending your signal into a push-pull comparator powered from +/- 15V. One input is your waveform, other input is ground. That'll make the output either +15V or -15V depending on the polarity of the waveform. So, relative to the negative rail, that's 30V or 0V. Relative to the positive rail, that's 0V or -30V. So you can pretty easily stick a couple of current sources hanging off the two rails that will source and sink 20mA as desired.
Here's a classic current source:
If, instead of being wired directly to Vs, R1 is instead connected to a node that switches between 0V and 30V, then the current source will switch on and off as you want.
And, as we've both mentioned, you'd to replace the "Gnd" in this circuit with -15V, and have a flipped upside-down version of the circuit hanging off 15V for your top rail.
(Bonus: those LEDs provide visual feedback as to what's going on as well!)
This is all assuming that you require a constant-current 20mA. If you just want to vaguely charge up some caps, you could just use the comparator + one resistor and a couple of steering diodes, instead of all this current source stuff.
I'd suggest replying with a picture of your proposed circuit so we can double-check it for you.
Also, why are you doing this? With a normal audio signal, the two capacitors are basically going to charge up equally, almost regardless of the content of the audio (except, IIRC, for the fact the the male voice is oddly asymmetrical).
Also, you're muddling your terms. Your message says "at 20mA", implying a current source, so that's how I answered your question; but your question title is asking for a voltage source. Which is it?