Как сделать звук с затуханием в Python??

#python

#python

Вопрос:

def fade_in (snd, fade_length): «‘выполнение звукового затухания для этого волнового файла»‘ new_snd = sound.copy(snd)

 for sample in new_snd:
    snd_index = sound.get_index(sample)
    factor = 0
    snd_samp = sound.get_sample(snd, snd_index)
    if snd_index <= fade_length:
        left = (sound.get_left(snd_samp) * factor)
        right = (sound.get_right(snd_samp) * factor)
        factor  = 0.25
        sound.set_values(sample,int(left),int(right))
    else:
        left = sound.get_left(sample)
        right = sound.get_right(sample)
        sound.set_values(sample, int(left), int(right))

return new_snd
  

Комментарии:

1. Это всего лишь блок кода. Вы должны задать вопрос.

2. я пытался написать код для выполнения звука с затуханием в Python, но тогда этот код не работает. в части, если snd_index <= fade_length: left = (sound.get_left(snd_samp) * factor) right = (sound.get_right(snd_samp) * factor) factor = 0.25 sound.set_values(sample, int (слева), int (справа))в этой части я напечатал значения left и right, но все они равны 0, я не понимаю, почему

3. о, на самом деле я понял это, но теперь у меня возникла новая проблема, когда часть snd_index <= fade_length. когда он запускает эту часть, он получает какой-то странный звук, ничего похожего на оригинал, но он вернул эту часть в нормальное состояние

Ответ №1:

left и right всегда будет равен нулю, так как вы устанавливаете factor равным нулю каждый запуск в цикле for. Вы должны объявить factor вне цикла for:

 def fade_in (snd, fade_length):
    new_snd = sound.copy(snd)
    factor = 0

    for sample in new_snd:
        snd_index = sound.get_index(sample)
        snd_samp = sound.get_sample(snd, snd_index)
        if snd_index <= fade_length:
            left = (sound.get_left(snd_samp) * factor)
            right = (sound.get_right(snd_samp) * factor)
            factor  = 0.25
            sound.set_values(sample,int(left),int(right))
        else:
            left = sound.get_left(sample)
            right = sound.get_right(sample)
            sound.set_values(sample, int(left), int(right))

    return new_snd