Opus would be a good choice. It claims to be the superior solution for Internet (i.e. lossy transmission with inconsistent latency) music and speech streaming applications. Specifically, it provides tight control over encoding latency when that's important. It's based on technology from two previous codecs: SILK, developed by Skype for speech transmission, and CELT, a codec developed for low-latency streaming audio.
One nice aspect of Opus is that it is an open standard, so a reference implementation is available that has source code for both floating-point and fixed-point computations. It also claims to have support for multiple architectures, including x86, ARM, and MIPS, which might be useful.
As far as quality goes, there are a number of detailed comparisons available between Opus and other audio codecs like AAC or MP3. Here is a plot that seems to summarize it well:
Basically, the makers of Opus claim superior audio quality to its competitors over a wide range of bitrates. Especially in the pretty-low-bitrate range of 16-32 kbps, it seems to have no peer at the present time. This page has a number of live tests that you can run in your browser, showing its performance with both speech and audio, its robustness to packet loss, and its ability to change bitrates (and therefore audio quality) on the fly.