Spaces:
Runtime error
Runtime error
File size: 4,401 Bytes
fd7a397 6134fc9 465ee60 74138e0 6134fc9 fd7a397 b2d4aa4 44c548d b2d4aa4 465ee60 6e5a5d5 48443f7 efea913 48443f7 fd7a397 efea913 fd7a397 98c6a7f 48443f7 a665630 6134fc9 fd7a397 74138e0 48443f7 2827f70 48443f7 fd7a397 48443f7 3099ecc 48443f7 eb3f816 75df5e7 fd7a397 48443f7 fd7a397 48443f7 74138e0 60d3210 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
from diffusers import AudioLDMPipeline
import torch
import gradio as gr
from transformers import pipeline
#from googletrans import Translator
import os
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
if torch.cuda.is_available():
device = "cuda"
torch_dtype = torch.float16
else:
device = "cpu"
torch_dtype = torch.float32
print(device)
repo_id = "cvssp/audioldm-s-full-v2"
pipe = AudioLDMPipeline.from_pretrained(repo_id, torch_dtype=torch_dtype)
pipe = pipe.to(device)
# pipe.unet = torch.compile(pipe.unet)
#pipe.unet = torch.compile(pipe.unet)
import base64
with open("Iso_Logotipo_Ceibal.png", "rb") as image_file:
encoded_image = base64.b64encode(image_file.read()).decode()
CKPT = "facebook/nllb-200-distilled-600M"
model = AutoModelForSeq2SeqLM.from_pretrained(CKPT)
tokenizer = AutoTokenizer.from_pretrained(CKPT)
def translate_text(text):
translation_pipeline = pipeline("translation",
model=model,
tokenizer=tokenizer,
src_lang="spa_Latn",
tgt_lang="eng_Latn",
max_length=400,
device=device)
result = translation_pipeline(text)
return result[0]['translation_text']
def generate_sound(text,steps,audio_length,negative_prompt):
print(text)
text=translate_text(text)
negative_prompt = translate_text(negative_prompt)
print(text)
waveforms = pipe(text,
num_inference_steps=steps,
audio_length_in_s=audio_length,
negative_prompt = negative_prompt).audios
rate =16000
return rate, waveforms[0]
# def translate_text(text):
# text = es_en_translator(text)[0].get("translation_text")
# return text
with gr.Blocks() as demo:
gr.Markdown("""
<center>
<h1>
Uso de AI para la generación de sonidos a partir de texto.
</h1>
<img src='data:image/jpg;base64,{}' width=200px>
<h3>
Con este espacio podrás generar sondios a partir de texto, intentá ser lo más descriptivo/a posible en el texto. Se puede usar directamente o podés cambiar ajustes, que impacto tiene cada uno está detallado en su descripción. Cambiá valores y mirá los resultados!
</h3>
<h4>El texto se traduce del español al inglés para alimentar al modelo, también se puede escribir el texto de entrada en inglés.</h4>
</center>
""".format(encoded_image))
with gr.Row():
with gr.Column():
gr.Markdown("Primero debes ingresar el texto para generar el sonido:")
with gr.Row():
with gr.Column(scale=4):
prompt = gr.Textbox(label="Texo base para generar el sonido") #Give prompt some real estate
with gr.Column(scale=1, min_width=50):
btn = gr.Button("Generar") #Submit button side by side!
with gr.Row():
with gr.Accordion("Opciones avanzadas", open=False): #Let's hide the advanced options!
negative_prompt = gr.Textbox(label="Texto negativo para la generación", info='Al ingresar texto en este campo el modelo intentará alejarse lo mas posible del mismo, este puede ser "baja calidad"')
with gr.Row():
with gr.Column():
audio_len = gr.Slider(label="Duración del sonido", minimum=1, maximum=30, value=5, step = 1,
info="Cuánto mayor sonido, mayor será el tiempo de procesamiento.")
steps = gr.Slider(label="Paos de Inferencia", minimum=1, maximum=100, value=20,step =1 ,
info="Al aumentar los pasos de inferencia se puede acercar más a la descripción del texto pero con un mayor tiempo de procesamiento.")
with gr.Row():
examples = gr.Examples(inputs=[prompt,negative_prompt],examples=[["Un martillo golpeando madera","low quality"]])
with gr.Column():
output = gr.Audio(label="Resultado") #Move the output up too
btn.click(fn=generate_sound, inputs=[prompt,steps,audio_len,negative_prompt], outputs=[output]) #steps,guidance,width,height]
gr.close_all()
demo.queue()
demo.launch() |