I'm looking for a low bit rate speech codec to encode audio books, podcasts, lectures etc and play back on an Android phone (galaxy nexus)
My main requirement is to minimize storage, and be compatible with audiobook player apps that remember last stopped positions (e.g. MortPlayer AudioBook)
From what I've seen so far amrwb codec in 3gp container seems good. Opus looks excellent but I don't think Android supports it yet. Is there anything else out there HA experts would recommend for my use case?
Well, if you can afford some more bits, you can also consider using HE-AAC(mono) or HE-AACv2(stereo). This example is encoded by FhG encoder and around 26kbps or so.
Rockbox on android (I think you still need a development build) can play opus or speex. I've been putting voice at 12 kb/s. Another choice is a low bitrate mp3 on google music. (mono, and 22 khz sample rate)
Thanks for your reply and the samples.
I see your samples are at 32 44.1 khz and stereo. Wouldn't a lower sampling rate such as 22khz and mono be more than enough for speech? I would like to have bit rates at 16kbps or lower.
Is there an he-aac encoder available on Linux?
I see aac encoding available in ffmpeg
ffmpeg -codecs |grep -i aac
DEA D aac Advanced Audio Coding
D A D aac_latm AAC LATM (Advanced Audio Codec LATM syntax)
but I don't know if that's the right codec
As for sample rate, if I feed 20.05kHz input to winamp FhG encoder, it seem to encode into 44.1kHz HE-AAC(v2) and the result gets more bloated. Therefore I chose 32k.
On linux you can try Nero or FDK AAC encoder natively. If you want to use the latter, you have to build libfdk-aac, and also ffmpeg/libav yourself with libfdk-aac enabled.
However, if you want to go as low as 16kbps, HE-AAC(v2) might not be your choice anyway.