Setting audio file properties (KBits/s,bits,Hz,channels)

Is there a program to let me take an audio file ( mainly WAV ) and modify its properties as I want ? For example, can I create a file that is :
-( 4kBits/s, 44khz, mono) or
-(2-bit, 44khz, mono ) or
-(10kBits/s, 19khz, mono ) or
-( any other properties I want )?

I want total freedom over the setting of properties, instead of being forced to choose from a pre-defined list of properties.
Which program should I use ?

SUMMARY: Assume I have a WAV file of (16-bit, 44kHz, stereo) properties. I want to change the file’s properties to (2-bit, 44khz, mono) or (2-bit, 19000Hz, mono) or any other one I wish.
What do I need ?

Yes, Sox http://sox.sourceforge.net/

Thank you Steve.
But Sox is for programmers, I would need to learn all the “commands” and so on.
Is there a simpler program that does the same thing ?

There’s many format conversion programs that support a range of formats, but Sox is the only one that I know of that supports all of the formats that you are asking about.
Sox is a “command line” program rather than having a graphical interface, but it is designed for general public use (not just for programmers). If you check their documentation and/or search Google you should find some examples that will help you to learn how to use it.

A good (free) graphical conversion program is SUPER by erightsoft, but it probably won’t support some of the more unusual formats such as 2 bit PCM. http://www.erightsoft.com/SUPER.html

I think SUPER will only go as low as 8-bit depth.

[I’ve heard 4 bit depth audio and it sounded a little rough, 2 bit must be very poor].