将 wav 从 python 转换为 mp3

Converting wav to mp3 from python

我不确定问这个问题的最佳方式,但这里是。

我创建了自己的方法来执行一种类型的傅里叶变换,我想看看这是否比 FFT 的标准方法提供更好的压缩。目前,我正在读取一个 wav 文件,使用我的方法(它不是 FFT 或离散的)进行傅里叶变换,并再现 wav 数据。然后我使用 ffmep 命令行工具将我的 wav 文件转换为 mp3。

我的问题是,这个过程会使我的傅立叶变换变得多余吗?

如果是这样,我如何根据我的傅立叶级数生成 mp3 文件?

我想要达到的目标: 我有一个傅里叶变换算法,我认为它在压缩和标准 FFT 方面更好,我想测试这个关于声音压缩的假设。执行此操作的最佳方法是什么?

我会忘记 mp3 ...您的压缩技术取代了 mp3 ...相反,我会在这里专注于 PCM 格式的原始音频

他们的过程

PCM  ->    conversion to mp3    ->    mp3 file     -> decoding to PCM -> PCM

你的过程

PCM  ->  your compression trick -> SpentDeath file ->  decoding to PCM -> PCM

只需使用相同的原始音频 PCM 作为上述两个流程的输入...一个比较是 mp3 文件大小与压缩文件的比较...第二个比较是输出最终 PCM 的质量

我听到你说的不是 FFT,但请记住,如果它是 FFT,你的频率粒度越大(每个频率及其幅度之间的差异越小),所需的数量越多音频样本...意味着频率 space 中更高的频率测量精度需要时域中更长 window 的音频样本...这对于非周期性信号来说很好(当音频只是一个恒定的音调而不是一个song) ... 然而,对于不断变化的音频,比如一首非周期性的歌曲,没有有意义的 windows 音频样本这样的东西,因为当你扩大你的采样 window 时,你会包括更多不同的来自不断变化的音频信号的曲线,因此所产生的频率幅度将来自整个采样过程中遇到的所有频率的平均值 window 因此,一旦 FFT [=],您付出的代价就是时域精度的损失23=] 你的音频信号返回到 PCM 使用g 逆傅里叶变换