import spaces import gradio as gr import json import torch import wavio from tqdm import tqdm from huggingface_hub import snapshot_download from pydub import AudioSegment from gradio import Markdown import uuid import torch from diffusers import DiffusionPipeline,AudioPipelineOutput from transformers import CLIPTextModel, T5EncoderModel, AutoModel, T5Tokenizer, T5TokenizerFast from typing import Union from diffusers.utils.torch_utils import randn_tensor from tqdm import tqdm from TangoFlux import TangoFluxInference import torchaudio tangoflux = TangoFluxInference(name="declare-lab/TangoFlux") @spaces.GPU(duration=15) def gradio_generate(prompt, steps, guidance,duration=10): output = tangoflux.generate(prompt,steps=steps,guidance_scale=guidance,duration=duration) #output = output.to(torch.float32).div(torch.max(torch.abs(output))).clamp(-1, 1).mul(32767).to(torch.int16).cpu() #wavio.write(output_filename, output_wave, rate=44100, sampwidth=2) filename = 'temp.wav' #print(f"Saving audio to file: {unique_filename}") # Save to file torchaudio.save(filename, output, 44100) # Return the path to the generated audio file return filename #if (output_format == "mp3"): # AudioSegment.from_wav("temp.wav").export("temp.mp3", format = "mp3") # output_filename = "temp.mp3" #return output_filename description_text = """

Duplicate Space For faster inference without waiting in queue, you may duplicate the space and upgrade to a GPU in the settings.

Generate high quality and faithful audio using TangoFlux by providing a text prompt in just a few seconds. TangoFlux was trained from scratch and was undergone alignment using a new method called Claped-Ranked Preference Optimization (CRPO).

Read our paper.

""" # Gradio input and output components input_text = gr.Textbox(lines=2, label="Prompt") #output_format = gr.Radio(label = "Output format", info = "The file you can dowload", choices = "wav"], value = "wav") output_audio = gr.Audio(label="Generated Audio", type="filepath") denoising_steps = gr.Slider(minimum=10, maximum=100, value=25, step=5, label="Steps", interactive=True) guidance_scale = gr.Slider(minimum=1, maximum=10, value=4.5, step=0.5, label="Guidance Scale", interactive=True) duration_scale = gr.Slider(minimum=1, maximum=30, value=10, step=1, label="Duration", interactive=True) # Gradio interface gr_interface = gr.Interface( fn=gradio_generate, inputs=[input_text, denoising_steps, guidance_scale,duration_scale], outputs=output_audio, title="TangoFlux: ", description=description_text, allow_flagging=False, examples=[ ["Quiet whispered conversation gradually fading into distant jet engine roar diminishing into silence"], ["Clear sound of bicycle tires crunching on loose gravel and dirt, followed by deep male laughter echoing"], ["Multiple ducks quacking loudly with splashing water and piercing wild animal shriek in background"], ["Powerful ocean waves crashing and receding on sandy beach with distant seagulls"], ["Gentle female voice cooing and baby responding with happy gurgles and giggles"], ["Clear male voice speaking, sharp popping sound, followed by genuine group laughter"], ["Stream of water hitting empty ceramic cup, pitch rising as cup fills up"], ["Massive crowd erupting in thunderous applause and excited cheering"], ["Deep rolling thunder with bright lightning strikes crackling through sky"], ["Aggressive dog barking and distressed cat meowing as racing car roars past at high speed"], ["Peaceful stream bubbling and birds singing, interrupted by sudden explosive gunshot"], ["Man speaking outdoors, goat bleating loudly, metal gate scraping closed, ducks quacking frantically, wind howling into microphone"], ["Series of loud aggressive dog barks echoing"], ["Multiple distinct cat meows at different pitches"], ["Rhythmic wooden table tapping overlaid with steady water pouring sound"], ["Sustained crowd applause with camera clicks and amplified male announcer voice"], ["Two sharp gunshots followed by panicked birds taking flight with rapid wing flaps"], ["Melodic human whistling harmonizing with natural birdsong"], ["Deep rhythmic snoring with clear breathing patterns"], ["Multiple racing engines revving and accelerating with sharp whistle piercing through"], ["Massive stadium crowd cheering as thunder crashes and lightning strikes"], ["Heavy helicopter blades chopping through air with engine and wind noise"], ["Dog barking excitedly and man shouting as race car engine roars past"], ["Quiet speech and then and airplane flying away"], ["A bicycle peddling on dirt and gravel followed by a man speaking then laughing"], ["Ducks quack and water splashes with some animal screeching in the background"], ["Describe the sound of the ocean"], ["A woman and a baby are having a conversation"], ["A man speaks followed by a popping noise and laughter"], ["A cup is filled from a faucet"], ["An audience cheering and clapping"], ["Rolling thunder with lightning strikes"], ["A dog barking and a cat mewing and a racing car passes by"], ["Gentle water stream, birds chirping and sudden gun shot"], ["A dog barking"], ["A cat meowing"], ["Wooden table tapping sound while water pouring"], ["Applause from a crowd with distant clicking and a man speaking over a loudspeaker"], ["two gunshots followed by birds flying away while chirping"], ["Whistling with birds chirping"], ["A person snoring"], ["Motor vehicles are driving with loud engines and a person whistles"], ["People cheering in a stadium while thunder and lightning strikes"], ["A helicopter is in flight"], ["A dog barking and a man talking and a racing car passes by"], ], cache_examples="lazy", # Turn on to cache. ) gr_interface.queue(15).launch()