为什么将 16bit wav 转换为 8 bit wav 时会出现噪音,如何避免?

为什么将 16bit wav 转换为 8 bit wav 时会出现噪音,如何避免?

我们有一些 16bit/8000HZ/Mono/PCM .wav 文件,我们需要转换为 8bit 才能在我们的电话系统中使用。

但转换后,我们发现即使整个源声音都是静音的,8bit .wav 文件中也出现了许多噪音。(您可以使用大胆生成静音,将其导出为 16 位 Microsoft WAV,然后将其导出为 8 位 Microsoft WAV(其他未压缩的文件),以收听发生了什么)。

我试过了大胆袜子酷編輯审判)做这样的转换,转换后都会产生噪音。

这是怎么发生的?有没有什么方法可以避免这种情况?

答案1

您所指的噪音可能是抖动。许多比特率转换算法会在转换之前向信号添加抖动,即低振幅、通常是频率形状的噪声。在大多数情况下,这种噪声实际上会提高转换的可听质量。如果您不想要抖动,希望您的应用程序首选项允许您禁用它。

答案2

如果听不到 8 位声音,就很难分辨出您说的是哪种噪音,但可能存在以下几个问题:

(1)从 16 位转换为 8 位时,总体质量总会有损失 - 毕竟你是在丢弃信息。

(2)如果 16 位样本未标准化(即,如果它们仅使用完整 16 位范围的一小部分),则当转换为 8 位时,它们的质量会很差 - 您应该先进行标准化,以确保转换后使用完整的 8 位范围。

(3) 有两种常见但不同的 8 位音频表示法:有符号(二进制补码)和无符号(偏移),后者更为常见。如果您使用了错误的格式,即转换为一种格式,然后尝试以另一种格式播放,那么音频虽然可识别,但听起来却很糟糕。

(4)对于电话(语音)应用,通常使用非线性(对数)编码来表示 8 位音频,而不是线性编码 - 最常见的两种编码是一条法律µ-定律。但是,转换后的 8 位音频是线性的。如果您尝试在需要 A 律或 µ 律的电话应用程序中使用线性 PCM,那么它听起来就像一团乱麻。

相关内容