我希望从第一个样本[0]开始线性地减少声音中的样本值,该样本将具有最大值(32767),并且最后一个[声音长度结束]具有最小可能值( -32767)。为此,我假设您可以使用格式y = mx + b。由于m = y2-y1 / x2-x1,我有:
def decreasing(sound):
length = getLength(sound)
max = 32767.0
min= -32767.0
for sample in getSamples(sound):
setSampleValue(sound, int((((min-max) / (length)) * (index)) + max))
我遇到的问题是y = mx + b中的 x , x 是索引我认为是x plain上的值你可以找到样本值(y)。但是,当我运行代码时,我得到错误是:index ... 全局找不到名称,因为我不确定如何定义它。基本上我要问的是如何在我的等式中创建这个数字:http://i.imgur.com/D4znydj.png x 。
答案 0 :(得分:0)
假设getSamples()返回一个列表,你可能想要这样的东西:
for index, sample in enumerate(getSamples(sound)):
setSampleValue(sample, int((((min-max)/length) * index) + max))