malekradwan130 commited on
Commit
a456e23
·
verified ·
1 Parent(s): c38a9a8

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -0
app.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torchaudio
3
+ from einops import rearrange
4
+ from stable_audio_tools import get_pretrained_model
5
+ from stable_audio_tools.inference.generation import generate_diffusion_cond
6
+ import gradio as gr
7
+
8
+ device = "cuda" if torch.cuda.is_available() else "cpu"
9
+
10
+ # تحميل النموذج
11
+ model, model_config = get_pretrained_model("stabilityai/stable-audio-open-small")
12
+ sample_rate = model_config["sample_rate"]
13
+ sample_size = model_config["sample_size"]
14
+ model = model.to(device)
15
+
16
+ def generate_audio(prompt, duration):
17
+ conditioning = [{
18
+ "prompt": prompt,
19
+ "seconds_total": duration
20
+ }]
21
+ output = generate_diffusion_cond(
22
+ model,
23
+ steps=8,
24
+ conditioning=conditioning,
25
+ sample_size=sample_size,
26
+ sampler_type="pingpong",
27
+ device=device
28
+ )
29
+ output = rearrange(output, "b d n -> d (b n)")
30
+ output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu()
31
+ torchaudio.save("output.wav", output, sample_rate)
32
+ return "output.wav"
33
+
34
+ gr.Interface(
35
+ fn=generate_audio,
36
+ inputs=[
37
+ gr.Textbox(label="Prompt", placeholder="مثال: 128 BPM tech house drum loop"),
38
+ gr.Slider(1, 11, step=1, label="مدة الصوت بالثواني")
39
+ ],
40
+ outputs=gr.Audio(label="الصوت الناتج"),
41
+ title="تجربة Stable Audio Open Small",
42
+ description="أدخل وصفًا صوتيًا، وجرب توليد مقطع صوتي من النموذج."
43
+ ).launch()