用于音频混音分离的Python模块

2024-06-25 23:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索了很长时间,但没有找到真正有效的方法。
我的想法是,我有一个音乐混音(主要是.mp3),我正试图用pyechonest来标识曲目列表。然而,这将只识别单一的轨道(纠正我,如果我错了),所以我想有另一个模块,可以分裂在它的单独轨道混合。在

我查了一下pydub的音频分割,但还是发现了问题。在

提前谢谢。在

编辑: 所以,我找到了一种剪切文件的方法,但是现在pyechonest返回了播客的名称,而不是tracknames本身,我的代码(比如5个部分):

>>> from pyechonest import track
>>> resultlist = []
>>> path = "C:\\WinPython\\OwnScripts\\Convert"
>>> for i in range(0, 5, 1):
       #for file parts I tried 25-30 second long, 128k mp3 and wav
...    filename = path+"\\unleashed16_part"+str(i+1)+".wav"
...    resultlist.append(track.track_from_filename(filename))
>>> resultlist
[<track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - 001 Digital Punk - Unleashed>, <track - Defqon.1 2013 Continuous mix by Frontliner>]

显然不是我想要的。。。有没有办法迫使echonest不看播客,或者返回多种可能性之类的东西?在


Tags: path方法fromfor音乐trackfilenamemp3
1条回答
网友
1楼 · 发布于 2024-06-25 23:26:59

如果你能设置一个合理的最小歌曲长度,你可以使用反垃圾邮件的想法,而不必每秒钟都向他们的API发送音频。在

例如,如果你知道最短的歌曲是至少3分钟,你可以每2分钟发送一个30秒的块回回声巢

 14 minutes: ("=" is 15 seconds)
|===|===|===|===|===|===|===|===|===|===|===|===|===|
 song 1 (3:00)   song 2 (5:15)     song 3 (4:30)
|============|====================|=================|
 ^^        ^^        ^^        ^^        ^^        ^^   <  send these chunks

数学原理是这样的:

^{pr2}$

基本上,你希望最短的歌曲有两个区块被发送来识别,这样至少有一个不会在歌曲前后重叠

相关问题 更多 >