近来很多讨论指出华为天通通话带宽为2.4kbps。和动辄256k/320k的MP3、AAC相差甚远,大家比较好奇这样能达到怎样的音质。codec2就是一个专用于语音的低比特率编码格式,当年在哈工大紫丁香小卫星上得到应用,从而有所耳闻。虽然天通用的大概不是codec2,但我们还是可以试一试,用codec2对音频加以编码,模拟一番卫星通话的效果。
原始音频
中央广播电视总台环球资讯广播《大话体坛》2023-09-21
2.4kbps
# codec2命令行工具输入格式为8KHz,16bit signed,little endian,单声道采样
$ ffmpeg -i clip.wav -f s16le -ar 8000 -ac 1 clip.raw
$ c2enc 2400 clip.raw - | c2dec 2400 - - | ffmpeg -y -f s16le -ar 8000 -i - clip_2400.wav
1.2kbps
$ c2enc 1200 clip.raw - | c2dec 1200 - - | ffmpeg -y -f s16le -ar 8000 -i - clip_1200.wav
0.7kbps
$ c2enc 700C clip.raw - | c2dec 700C - - | ffmpeg -y -f s16le -ar 8000 -i - clip_700C.wav
应该还是不错的吧?不过有明显的噼噼啪啪的感觉,网络上有视频测试天通卫星是没有的。
我对这一段再用codec2编码一次:
这时似乎是没有噼啪感。对于之前的测试音频,如果在codec2编码前加3600Hz/3200Hz的低通滤波器,好像噼啪会少一些。看来codec2的最佳实践还有待进一步探究。