|
from pedalboard import Pedalboard, Compressor, Reverb, NoiseGate |
|
from pedalboard.io import AudioFile |
|
import sys |
|
import os |
|
now_dir = os.getcwd() |
|
sys.path.append(now_dir) |
|
from i18n import I18nAuto |
|
i18n = I18nAuto() |
|
from pydub import AudioSegment |
|
import numpy as np |
|
import soundfile as sf |
|
from pydub.playback import play |
|
|
|
def process_audio(input_path, output_path, reverb_enabled, compressor_enabled, noise_gate_enabled, ): |
|
print(reverb_enabled) |
|
print(compressor_enabled) |
|
print(noise_gate_enabled) |
|
effects = [] |
|
if reverb_enabled: |
|
effects.append(Reverb(room_size=0.01)) |
|
if compressor_enabled: |
|
effects.append(Compressor(threshold_db=-10, ratio=25)) |
|
if noise_gate_enabled: |
|
effects.append(NoiseGate(threshold_db=-16, ratio=1.5, release_ms=250)) |
|
|
|
board = Pedalboard(effects) |
|
|
|
with AudioFile(input_path) as f: |
|
with AudioFile(output_path, 'w', f.samplerate, f.num_channels) as o: |
|
while f.tell() < f.frames: |
|
chunk = f.read(f.samplerate) |
|
effected = board(chunk, f.samplerate, reset=False) |
|
o.write(effected) |
|
|
|
result = i18n("Processed audio saved at: ") + output_path |
|
print(result) |
|
return output_path |