python 合唱效果和音频数据的含义

Posted

技术标签:

【中文标题】python 合唱效果和音频数据的含义【英文标题】:python chorus effect and meaning of audio data [closed] 【发布时间】:2014-02-19 17:27:29 【问题描述】:

能否请您解释或指出正确的方法来思考如何在wav文件上实现两种音效。

所以我读取 wav 文件并将其转换为 int 值(在 numpy 数组中)

array([59383, 58290, 60629, ..., 52606, 51982, 56274], dtype=uint16)

首先,我不确定我是否清楚数组中的这些值真正代表什么? 每个值都是模拟输出设备在某个时刻会产生的 65535 (unsigned int16) 幅度级别之一,这对吗?

理论上可以通过以下步骤实现合唱效果:

    复制原始数组 弱化这个复制的数组(乘以一些value < 1) 并将这个复制的数组添加到原始数组中

实际上,我不知道如何正确添加它们。我是否应该简单地逐个添加值,对两个数组进行卷积或交错原始数组并将其修改为副本。 合唱效果也应该有任意时间延迟,我不知道我该如何做到这一点。

如何实现我要添加的数据的随机性?

【问题讨论】:

既然你还在理解这些概念,我建议你把这个问题带到信号处理论坛,等你理解了这些概念后再回来了解代码细节。 这个问题似乎是题外话,因为这不是(还)一个编程问题 我会尝试在signal processing提问,谢谢! 【参考方案1】:

你基本上有正确的想法。这里有几点:

1)波形文件是线性信号与时间,所以你的理解是正确的。 (许多音频事物都是对数的,因此认为它可能是非线性的并非不合理——例如,LP 是以非线性方式编码的。)

2) 如果要进行数学运算,请先转换为 floatint32,以免超出 int16 的限制。

3) 要及时偏移,请使用 numpy 切片。也就是说,类似于new = old[1000:]+old[:-1000]。请注意,您需要将相同长度的部分添加在一起,因此如果添加时移,则无法将其添加到完整数组中,因为时移会更短。

4)至于添加“随机时间”,您可以在上面添加一个随机时间。为了使时间在整个加法过程中不断变化,您需要扭曲原始信号,这将更加复杂。

【讨论】:

非常感谢您的回答!它为我澄清了一些事情。

以上是关于python 合唱效果和音频数据的含义的主要内容,如果未能解决你的问题,请参考以下文章

python求音频的梅尔倒谱系数

python求音频的梅尔倒谱系数

python求音频的梅尔倒谱系数

音频波形中负值的含义

python求音频的梅尔倒谱系数

(小甲鱼python)文件永久存储(上)总结 python文件永久存储(创建打开文件文件对象的各种方法及含义)