Téléverser les fichiers vers "/"
autres fichiers
This commit is contained in:
43
server.py(gradio)
Normal file
43
server.py(gradio)
Normal file
@ -0,0 +1,43 @@
|
||||
import gradio as gr
|
||||
import torch
|
||||
import scipy.io.wavfile
|
||||
import numpy as np
|
||||
import tempfile
|
||||
from audiocraft.models import MusicGen, AudioGen
|
||||
|
||||
print("🔄 Chargement des modèles...")
|
||||
music_model = MusicGen.get_pretrained("facebook/musicgen-small")
|
||||
audio_model = AudioGen.get_pretrained("facebook/audiogen-medium")
|
||||
|
||||
def generate_music(prompt, duration=10):
|
||||
music_model.set_generation_params(duration=duration)
|
||||
wav = music_model.generate([prompt])
|
||||
wav_np = wav[0, 0].cpu().numpy()
|
||||
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
|
||||
scipy.io.wavfile.write(f.name, music_model.sample_rate, (wav_np * 32767).astype(np.int16))
|
||||
return f.name
|
||||
|
||||
def generate_sound(prompt, duration=5):
|
||||
audio_model.set_generation_params(duration=duration)
|
||||
wav = audio_model.generate([prompt])
|
||||
wav_np = wav[0, 0].cpu().numpy()
|
||||
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
|
||||
scipy.io.wavfile.write(f.name, audio_model.sample_rate, (wav_np * 32767).astype(np.int16))
|
||||
return f.name
|
||||
|
||||
with gr.Blocks(title="🎙️ Studio Audio IA") as demo:
|
||||
gr.Markdown("## 🎙️ Studio Audio IA")
|
||||
with gr.Tab("🎵 Musique"):
|
||||
p1 = gr.Textbox(label="Prompt")
|
||||
d1 = gr.Slider(5, 30, value=10, step=5, label="Durée (s)")
|
||||
b1 = gr.Button("Générer")
|
||||
o1 = gr.Audio(label="Résultat")
|
||||
b1.click(generate_music, inputs=[p1, d1], outputs=o1)
|
||||
with gr.Tab("🔊 Bruitages"):
|
||||
p2 = gr.Textbox(label="Prompt")
|
||||
d2 = gr.Slider(2, 15, value=5, label="Durée (s)")
|
||||
b2 = gr.Button("Générer")
|
||||
o2 = gr.Audio(label="Résultat")
|
||||
b2.click(generate_sound, inputs=[p2, d2], outputs=o2)
|
||||
|
||||
demo.launch(server_name="0.0.0.0", server_port=7860, share=False)
|
||||
Reference in New Issue
Block a user