gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:32:26 25 4
gpt4 key购买 nike

我有一个包含许多预先录制的音符的大型库(大约 1200 个),它们的振幅都是一致的。

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

具有不同攻击时间的样本:Samples with different attack times

如您所见,这些样本具有不同的峰值幅度点,需要将其排列起来才能听起来像人类弹奏的和弦。

手动对齐攻击点:Manually aligned attack points

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

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

我正在考虑使用 python 混合解决方案,例如此处找到的解决方案 Mixing two audio files together with python通过一些调整来混合音频样本。

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

最佳答案

如果有人真的对这个问题感兴趣,我已经找到了解决我的问题的方法。虽然有点复杂,但已经取得了很好的结果。

为了找到样本的峰值幅度的时间,我在这里找到了这个线程:Finding the 'volume' of a .wav at a given time其中最上面的答案提供了一个名为 AudioFile 的 scala 库的链接,该库提供了一种通过浏览帧缓冲区窗口中的样本来查找峰值 amplite 的方法。然而,该库要求所有文件均为 .aiff 格式,因此创建了第二个示例库,其中包含转换为 .aiff 的所有旧 .wav 示例。

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

完成此操作后,将使用 Pydub 库编写 Python 脚本 http://pydub.com/它将两个样本配对,并找到它们峰值幅度时间的差值 (t)。峰值幅度最低时间的样本将在仅包含静音的 .wav 中预先附加长度 (t) 的静音。

然后将这两个样本相互叠加以产生准确混合的和弦!

关于python - 准确地将两个音符相互混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com