从python将WAV转换为mp3

时间:2018-07-21 20:22:46

标签: python-3.x audio compression mp3 continuous-fourier

我不确定问这个问题的最好方法,但是可以了。

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

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

如果是这样,给定我的傅里叶系列,如何制作mp3文件?

我要实现的目标: 我有一个傅立叶变换算法,我认为它在压缩和标准FFT方面更胜一筹,我想测试一下声音压缩的假设。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我会忘记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,您的频率粒度越高(每个频率之间的差值及其幅值越小),所需的音频样本数量就越多...意味着在频率空间中更高的频率测量精度需要时域中更长的音频采样窗口...对于非周期性信号(当音频只是恒定音而不是歌曲时)来说是很好的选择...但是对于不断变化的音频就像不定期播放的歌曲一样,没有有意义的宽音频样本窗口,因为当您扩大采样窗口时,您将包含来自不断变化的音频信号的越来越不同的曲线,因此,最终的频率幅值将由对整个采样窗口中遇到的所有频率求平均值,因此一旦FFT使用以下方法将音频信号返回到PCM,您付出的代价就是时域精度的损失傅立叶逆变换