我们需要通过互联网分发一些原始语音音频。我们需要体面的品质,但它不需要具有音乐品质。我们主要关注的是消费者的可用性(即他们可以播放的内容和位置)以及下载的大小。我的经验表明,mp3并不能为语音音频产生最佳的压缩数,但我对最好的替代方案感到茫然。最终,我们希望自动化转换过程,以便消费者选择他们想要的质量与尺寸级别。

有帮助吗?

解决方案

从这里开始。

正如您正确指出的那样,语音压缩与一般音频压缩不同。你会发现许多专用于电话应用的编解码器,从PCM和ADPCM到后来的基于分组的编码,如GSM蜂窝网络上使用的CELP。

尽管如此,VOIP语音编码与使用媒体的编码略有不同。你可以在 Speex中找到一个好的,免费的(无阻碍和开源(BSD))语音编码/解码库。软件库

同样,您选择的内容取决于您正在编码的语音以及正在传输的媒体。另请注意,根据具体情况,许多库都有几种可以使用的算法,有些甚至可以根据声音和网络条件实时切换。

要获得更多帮助,请缩小问题范围。

- 亚当

其他提示

您应该尝试 Opus 。压缩命令行示例:

ffmpeg -i x.wav -b:a 32k x.opus

现场语音音频(如VoIP电话)中使用最常用的压缩格式是μ -Law(mu-Law / u-Law在美国使用)和a-Law(在欧洲使用等) 。)与未压缩的PCM不同,它不支持宽频率范围(较小范围的可能值忽略必要频谱之外的声音并且需要较少的存储空间)。

出于可用性考虑,最简单的方法是使用mpeg压缩(mp2 / 3/4)流式传输到标准媒体播放器,因为算法很容易获得并且通常很快,而且几乎所有媒体播放器都应该支持它,但对于语音,你可能会尝试指定较低的比特率或首先从较低质量的文件进行转换(WAV可以是几种采样率,语音需要比音乐或效果低得多的采样率,它基本上类似于视频的每秒帧数)。或者,您可以使用Real Media,WMA或其他专有格式,但这会限制可用性,因为用户需要特定的第三方软件进行播放,尽管WMA具有出色的压缩比以及特定于语音音频的压缩选项。

假设您的用户将运行Windows,则可以使用WMA语音压缩编解码器,您可以将其与Windows Media Encoder SDK一起使用。如果不这样做,您可以使用ACM来使用G723 / G728,ADPCM,mu-law或a-law之类的东西,其中一些是在Windows XP和Windows上标准安装的。以上。这些可以打包在WAV文件中。您需要进行一些实验才能找到合适的比特率/质量(可能不会受到mu-law或a-law的影响)。使用语音数据,您可以获得极低的采样率 - 例如16000或8000,因为在人声中没有超过4Khz。

我认为 AMR 是最好的语音编解码器之一。我大约一年前使用它,我记得质量非常好,尺寸水平相当小。

一个缺点,特别是在你的情况下,据我所知,它不受广泛的媒体播放器的支持。 QuickTime和RealPlayer是我知道播放.amr文件的两个。

尝试 speex ...不受专利限制,在尺寸和CPU方面均表现良好。我一直在iPhone上运气很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top