VoCore has its eye by using MJPEG camera , recently I am trying to add ear&mouth to it.
The following points are keys for make this happen:
for internet voice chat, my choice is G711
for local network, pure PCM, do not compress
2. sample quality.
G711 only support 8KHz, 16bits.
PCM 48KHz, 32bits for local network.
3. DAC chip.
WM8988 or other many choices.
Sample for voice, 8KHz is enough. Default PCM 8KHz is 16bits, so my choice is 8KHz. (this is the lowest quality, so if this way works, we can improve it later if there still exists free bandwidth)
For codec part, my target is to encode/decode same time.
I spend a lot time test some codec:
skype silk quality is best, but on vocore, the speed is too slow, 10 second wav file encode speed is only 0.3x. Far from online chat request. Decode might be better, but still not enough 0.8x. (Of course, CPU usage is over 90%, btw, this is the reason I write vohttpd 😀 LuCI can not open at all, but vohttpd works very well) Opus is not a good way.
(If you want do this test, it is very easy under openwrt, just install the opus library and opus tools)
Let’s choose old fashion way. 🙂 I do not want waste much cpu on this, so G711 is the best choice, it only compress 16bits -> 8bits, so 8KB/s is enough for voice transfer.
Of course, if you are rich and have google fiber at home and 4G outside, that is another story 🙂 We do not need to compress and send voice sample by 44.1KHz 32bits 🙂 only take 176KB/s. This is CD quality, lol.
Somebody has already done that, use RT5350 and WM8988 to make a wifi audio, WWAN speed is far enough for transfer 48KHz, 32bits audio. Easy to make it support Airplay and some other wifi audio protocol.
Now, I am trying to make a DIY wifi audio… 🙂
Happy New Year 🙂