from pydub import AudioSegment
import os
# A couple of var for readability
slow_mp3_path = "/path/to/my/slow.mp3"
fast_mp3_path = "/path/to/my/fast.mp3"
# Get the audiosegment from the file
slow_mp3_obj = AudioSegment.from_file(tmp_path)
# File's in memory, you can safely delete the original file if you want to save disk space now
os.remove(slow_mp3_path)
# Speed it up
speed_update = slow_mp3.speedup(1.5)
# Save the updated mp3
speed_update.export(fast_mp3_path, format="mp3")
5条答案
按热度按时间qyuhtwio1#
我写了一个库,pydub,主要是为了操纵音频而设计的。
我已经创建了一个实验性的时间拉伸算法,如果你有兴趣看看这些事情是如何工作的。
本质上,你想扔掉一部分数据,但你不能只是更快地回放波形,因为那样它会变得更高(正如synthesizerpatel提到的)。相反,你想扔掉块(20 Hz是人类能听到的最低频率,所以50 ms的块不会引起可听频率的变化,尽管还有其他伪影)。
PS -我得到50 ms这样:
pvabu6sv2#
pymedia包含recode_audio。py的例子,允许任意输入输出格式可用here .这当然也需要安装pymedia。
请注意,正如Nick T所指出的,如果您只是更改采样率而不进行重采样,您将获得高音“快速”音频,因此您需要将time-stretching与更改比特率结合使用。
i34xakig3#
我也想达到同样的目的,我试过了所有建议的答案。不幸的是,
pydub
creator给出的答案不是很有描述性,我很难找到一个例子,而另一个最终是输出一个音调很高的文件。最后,对我来说最简单的事情确实是按照建议使用
pydub
,但使用一个明显没有记录的(或者,很难找到)特性speedup
。它非常简单:
就是这样,fast_mp3_path中的新文件将为1。5、不改变音高的速度。
mnemlml84#
链接:https://mlhive.com/2022/11/read-and-process-audio-files-using-pydub-in-python#:~:text= Playback%20Speed%20and%20Volume,speed%20of%20the%20audio%20文件。
vlju58qv5#
您可以在audio_segment中尝试
_spawn
模块。Pydub的py。下面是一个示例代码: