最佳语音压缩算法/格式
我们需要一些原始语音音频,需要通过Internet进行分发。我们需要体面的品质,但并不一定要具有音乐品质。我们主要关注的是消费者的可用性(即他们可以在什么地方播放)以及下载的大小。我的经验表明,mp3不能为语音音频产生最佳的压缩数字,但是我对最佳的替代方法一无所知。最终,我们希望使转换过程自动化,以使消费者可以选择他们想要的质量与尺寸级别。
解决方案
假设用户将运行Windows,有一个WMA语音压缩编解码器可与Windows Media Encoder SDK一起使用。否则,我们可以使用ACM来使用G723 / G728,ADPCM,mu-law或者a-law之类的东西,其中一些是Windows XP及更高版本的标准安装。这些可以打包在WAV文件中。我们需要做一些尝试才能找到合适的比特率/质量(可能不必担心mu-law或者a-law)。有了语音数据,我们就可以以相当低的采样率摆脱困境,例如16000或者8000,因为人类说话的语音没有超过4Khz。
从这里开始。
正如我们正确指出的那样,语音压缩不同于常规的音频压缩。我们会发现许多专用于电话应用的编解码器,范围从PCM和ADPCM到后来的基于分组的编码,例如GSM蜂窝网络上使用的CELP。
但是,由于使用了媒体,VOIP语音编码与编码略有不同。我们可以在Speex软件库中找到一个好的,免费的(无障碍和开源(BSD))库来进行语音编码/解码。
同样,我们选择哪种方式取决于我们要编码的语音及其传输的媒介。还要注意,许多库根据情况可以使用几种算法,有些甚至会根据声音和网络的条件即时运行。
要获得更多帮助,请缩小问题范围。
-亚当
实时语音音频(如VoIP电话)中最常用的压缩格式是-Law(在美国使用mu-Law / u-Law)和a-Law(在欧洲等国家使用),与未压缩的PCM不同,不支持那么宽的频率范围(较小的可能值范围会忽略必要频谱之外的声音,并且需要较少的存储空间)。
出于可用性的考虑,最容易使用mpeg压缩(mp2 / 3/4)来流式传输到标准媒体播放器,因为该算法易于使用,通常速度非常快,几乎所有媒体播放器都应支持它,但是对于语音,我们可以尝试指定较低的比特率或者首先从较低质量的文件进行转换(WAV可以采用几种采样率,而语音所需的采样率要比音乐或者效果低得多,基本上就像视频的每秒帧数一样)。或者,我们可以使用Real Media,WMA或者其他专有格式,但这会限制可用性,因为WMA具有出色的压缩率以及特定于语音音频的压缩选项,因此用户需要使用特定的第三方软件进行播放。
我认为AMR是最好的语音编解码器之一。大约一年前,我在使用它,我记得质量非常好,尺寸很小。
据我所知,一大缺点是,尤其是在情况下,它不受许多媒体播放器的支持。我知道QuickTime和RealPlayer是两个播放.amr文件的文件。
尝试speex ...,不受专利限制,在大小和CPU方面均具有良好的性能。我一直很幸运在iPhone上使用它。