.mp3 大小与 .wav 大小相比如何?

How do .mp3 sizes compare to .wav sizes?

我一直致力于将用户上传的 .mp3 文件转换为 .wav 格式以供后端处理。我一直在关注 this example,我认为它可行,但结果 .wav 比后端想要处理的要大。我对音频合成的内部工作原理知之甚少,无法理解我可以更改哪些内容来进一步压缩最终的 .wav 文件,或者如果这可能的话。

是否是直接 1:1 转换,其中某个尺寸 .mp3 总是会变成某个尺寸 .wav?这将是一个简单的答案,但是创建 .wav 似乎需要太多的配置,我敢肯定这不是那么简单。

几乎没有我能找到的对初学者友好的文档,它详细说明了转换中实际发生的事情,比如这些行(以及所有其他行)实际在做什么:

intBuffer[0] = 0x4952; // "RI"
intBuffer[1] = 0x4646; // "FF"

如有任何帮助,我将不胜感激,我想我已经不知所措了。

I've been working on converting .mp3 files uploaded by a user into .wav format to be handled by the back-end.

为什么?仅当您对原始 PCM 数据进行处理时才需要这样做。在大多数情况下,您可以将其保留为上传给您的原始决赛。

I've been following this example

该示例仅在您需要转换客户端时才有用。如果在服务器上转换,使用 FFmpeg 之类的工具为您转换效率会更高。

but the resultant .wav is bigger

WAV 文件通常存储原始 PCM。这是通过每秒量化数千次压力水平来实现的。它允许无损编辑,但效率不高。我们不会直接 ​​"hear" 压力变化,我们会听到频率。而且,我们听到的内容也发生了一些进化变化。 (例如,如果同时有响亮的声音和安静的声音,我们就不会注意到那些安静的声音。我们的大脑正在寻找即将吃掉我们的狮子,而不是对面的涓涓细流。)

MP3 的工作原理是利用我们听到和感知声音的方式来减少占用 space。处理是在频域中完成的。更多的带宽花在响亮的声音上,而不是安静的声音上。一些声音的时间变得有点混乱。不是在单个样本级别上工作,而是一起处理短时间块 ("frames")。 MP3 是有损的,但旨在丢失不太重要的声音部分。在此过程中,它的声音听起来接近 "transparent",大约是原始 PCM 带宽的 1/7。

WAV 文件中的原始 PCM 文件总是最大的。如果您需要减小尺寸,它不是适合这项工作的工具。