Here is one ,NET version
http://nspeex.codeplex.com/
One of the simplest encodings are the Alaw/Mulaw 8bit mono encodings that need only 64kbps of data. Thats the bandwidth needed by simple POTS line and the encodings are used there too. They are optimized for voice and therefore music and other sounds play badly.
As for codecs, its better if you first make an estimate of the kind of bandwidth that you would like to dedicate to a voice channel. There are many codecs out there ranging from those that do heavy compression and others that keep the quality intact and therefore less compression.