Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 准确地将两个音符相互混合_Python_Audio_Audio Processing - Fatal编程技术网

Python 准确地将两个音符相互混合

Python 准确地将两个音符相互混合,python,audio,audio-processing,Python,Audio,Audio Processing,我有一个很大的图书馆,里面有许多预先录制的音符(大约1200个),它们的振幅都是一致的 我正在研究将两个音符叠加在一起的方法,这样听起来就像是同时演奏两个音符的和弦 具有不同攻击时间的示例: 正如您所看到的,这些样本具有不同的峰值振幅点,需要对齐才能听起来像人类弹奏的和弦 手动对齐的攻击点: 第二幅图显示了由ear手动对齐的攻击点,但对于我希望创建许多和弦样本排列的如此大的数据集,这是一种不可行的方法 我正在考虑一种方法,通过这种方法,我可以确定两个音频样本的峰值振幅时间,然后在混合音符以创建和

我有一个很大的图书馆,里面有许多预先录制的音符(大约1200个),它们的振幅都是一致的

我正在研究将两个音符叠加在一起的方法,这样听起来就像是同时演奏两个音符的和弦

具有不同攻击时间的示例:

正如您所看到的,这些样本具有不同的峰值振幅点,需要对齐才能听起来像人类弹奏的和弦

手动对齐的攻击点:

第二幅图显示了由ear手动对齐的攻击点,但对于我希望创建许多和弦样本排列的如此大的数据集,这是一种不可行的方法

我正在考虑一种方法,通过这种方法,我可以确定两个音频样本的峰值振幅时间,然后在混合音符以创建和弦时,将这两个峰值振幅时间对齐。但我不确定如何进行这样的实施

我正在考虑使用python混合解决方案,比如在这里找到的一个,通过一些调整,将音频样本相互混合


我正在寻找如何在音频样本中识别峰值振幅时间的想法,或者如果您对实现此想法的其他方法有任何想法,我将非常感兴趣。

如果有人对这个问题感兴趣,我已经找到了解决我问题的方法。这有点牵强,但它取得了优异的成绩

为了找到一个样本的峰值振幅时间,我在这里找到了这个线索:上面的答案提供了一个名为AudioFile的scala库的链接,它提供了一种通过在帧缓冲区窗口中查看样本来找到峰值振幅的方法。但是,该库要求所有文件都采用.aiff格式,因此创建了第二个示例库,其中包含转换为.aiff的所有旧.wav示例

在缩小帧缓冲窗口后,我能够确定在哪一帧中找到了最高振幅。将这个帧除以音频样本的采样率(已知为48000),我能够准确地找到峰值振幅的时间。该信息用于创建一个文件,该文件存储样本文件的名称及其峰值振幅时间

完成后,使用Pydub库编写了一个python脚本,它将两个样本配对,并找到它们峰值振幅时间的差异(t)。具有最低峰值振幅时间的样品将具有从仅包含静默的.wav预先添加到其上的长度(t)静默


然后将这两个样品相互叠加,以产生精确混合的和弦

如果对于每对音频输入文件,您都有一个良好的输出文件示例,您可能会训练您的系统自动调整它选择如何组合这对输入文件以最佳匹配输出文件,然后利用该训练执行类似的组合,而不需要已知良好的输出文件。。。ML宝贝!这个项目实际上将用于机器学习,建立一个通过tensorflow运行的和弦FFT数据库。不幸的是,如果我已经拥有了所有好的和弦,我就不需要创建这些音符配对了。为了训练tensorflow,我正在考虑创建许多和弦排列。我认为这个链接涉及到与
音频处理相关的每个答案,无论是预处理还是后处理:,你也可以访问这个参考:尼斯。。。除了仅拾取具有最大振幅的样本(可能容易受到锯齿状最大振幅点之外的虚假峰值的影响)之外,还有一种替代方法,即在音频文件中滑动一个包含几个样本的窗口,在该窗口中输入一组样本的RMS计算,以识别功率度量