为啥我压缩wav后会有点击?

Posted

技术标签:

【中文标题】为啥我压缩wav后会有点击?【英文标题】:Why is there a click after I compress the wav?为什么我压缩wav后会有点击? 【发布时间】:2012-01-04 17:43:22 【问题描述】:

我正在使用 freemp3droid 将 wav 文件转换为 mp3。文件开头有一个点击。当我大胆地查看文件时,最初的 100 字节(在标题之外)具有相同的模式。会发生什么?

这是点击的波形(99% 相同,每次都相同)

http://code.google.com/p/freemp3fordroid/source/browse/trunk/jni/frontend/main.c#215

【问题讨论】:

您是否在网站上打开了错误报告? 不知道你的意思:文件开头有点击 卡尔,应该保持沉默。但是每次压缩都有一个未记录的点击,它是由压缩过程中的一些逻辑错误生成的。 您是否尝试过使用不同的 MP3 编码器? 这不是关于使用不同的。它是关于修复这个的。 【参考方案1】:

您的编码器是否尝试像压缩音频一样压缩 WAV/RIFF 44 字节标头?

【讨论】:

我都试过了,用 44 字节压缩,没有压缩,两者都有 pop。 仅供参考,编码器是开源的,问题中有源代码链接。【参考方案2】:

值得了解点击是什么。如果您实际上压缩了标头,那么您会得到一个奇怪的不连续信号。您必须对信号有所了解才能了解正在发生的事情。您的波形不是以零值开始的。这意味着您必须立即从无电压变为一定电压。如果你有一个从零开始的正弦波,你会听到纯音。由于您从信号开始,这相当于开始时的高频吱吱声,您的扬声器会变成爆裂声。

如果你压缩一个不以零开头的信号,你会得到同样的pop。

阻止这种情况的方法是添加一个斜坡来启动您的声音。从零开始并线性上升,直到达到波形的起始值,您不会听到爆音。

【讨论】:

【参考方案3】:

我在这里看不出真正的问题。因为,有损压缩通常使用连续函数来近似输入数据。在 MP3 案例中,使用了 Modified Cosine Discrete Transform,其中包括几个具有不同参数集的余弦函数(请查看 Fourier Series 以了解基本概念)。因此,您无法使用此类方法轻松表示高频,并且会在某些点导致高峰值或某些失真。

【讨论】:

【参考方案4】:

有点晚了,但正确的答案是,freemp3droid 不是而且永远无法编码除原始 pcm 之外的任何其他格式。由于您的输入格式是 wav,freemp3droid 将 wav 标头解释为信号,从而产生巨大的初始点击。

http://code.google.com/p/freemp3fordroid 处的语句 “convertFile: the raw pcm or wav data to convert to MP3” 是完全错误的。

【讨论】:

以上是关于为啥我压缩wav后会有点击?的主要内容,如果未能解决你的问题,请参考以下文章

无损压缩(ALAC/APE/FLAC/WAV)

为啥压缩文件手机上查看会有ds store

为啥我压缩了文件与压缩前的大小差不多?

在 C# 或 C++ 中将压缩的 wav 文件转换为未压缩的 wav 文件的最简单方法是啥?

为啥下载centOS7显示是压缩包而不是光盘映像文件,下载虚拟机时会有影响吗,需要解压吗?

读取 u-LAW 编码的 WAV 文件并不压缩保存