Razoa/Mastering_Ai
2
1import gradio as gr2from pedalboard import Pedalboard, Compressor, Gain, Limiter, HighpassFilter3from pedalboard.io import AudioFile4import os5import tempfile6 7def master_audio(input_file):8 if input_file is None:9 return None10 11 try:12 # 1. Mamaky ny rakitra13 with AudioFile(input_file) as f:14 audio = f.read(f.frames)15 samplerate = f.samplerate16 17 # 2. Mastering Chain tsotra18 board = Pedalboard([19 HighpassFilter(cutoff_frequency_hz=30), 20 Compressor(threshold_db=-18, ratio=3.0),21 Gain(gain_db=3),22 Limiter(threshold_db=-0.5)23 ])24 25 mastered_audio = board(audio, samplerate)26 27 # 3. Tehirizina amin'ny anarana mazava28 output_path = os.path.join(tempfile.gettempdir(), "mastered.wav")29 with AudioFile(output_path, 'w', samplerate, mastered_audio.shape[0]) as f:30 f.write(mastered_audio)31 32 return output_path33 except Exception as e:34 return None35 36# 4. Interface natao ho an'ny Mobile (tsy misy Blocks be pitsiny)37demo = gr.Interface(38 fn=master_audio,39 inputs=gr.Audio(type="filepath", label="Hira ampidirina", sources=["upload"]),40 outputs=gr.Audio(label="Hira efa vita"),41 title="AI Master Pro",42 # Ity 'concurrency_limit' ity dia manampy amin'ny fitoniana43 concurrency_limit=5 44)45 46if __name__ == "__main__":47 demo.launch(share=True)