June 26, 2023
Наложение звука
Для наложения звуков в формате numpy можно использовать математическую операцию сложения (numpy.add
). Также вам может понадобиться настроить относительную громкость каждого звука перед наложением. Вот пример кода, который демонстрирует наложение двух звуков в формате numpy:
import numpy as np import scipy.io.wavfile as wav # загрузить два звуковых файла rate1, sound1 = wav.read("sound1.wav") rate2, sound2 = wav.read("sound2.wav") # настроить относительную громкость sound1 = sound1.astype(np.float32) / 32767.0 # привести звук1 в диапазон от -1 до 1 sound2 = sound2.astype(np.float32) / 32767.0 # привести звук2 в диапазон от -1 до 1 sound1 *= 0.5 # уменьшить громкость звука 1 в 2 раза sound2 *= 0.8 # увеличить громкость звука 2 на 20% # выровнять длину звуковых файлов min_len = min(len(sound1), len(sound2)) sound1 = sound1[:min_len] sound2 = sound2[:min_len] # наложить звуки (сложить массивы) sound = np.add(sound1, sound2) # сохранить наложенный звуковой файл wav.write("combined.wav", rate1, sound.astype(np.int16))
Этот код загружает два звуковых файла, приводит каждый звук в диапазон от -1 до 1, настраивает относительную громкость, выравнивает длины звуковых файлов и затем настраивает их сумму (наложение) путем сложения массивов numpy. Наложенный звук сохраняется в файл "combined.wav".