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 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) unique_filename = f"output_{uuid.uuid4().hex}.wav" print(f"Saving audio to file: {unique_filename}") # Save to file torchaudio.save(unique_filename, output, sample_rate) print(f"Audio saved: {unique_filename}") # Return the path to the generated audio file return unique_filename #if (output_format == "mp3"): # AudioSegment.from_wav("temp.wav").export("temp.mp3", format = "mp3") # output_filename = "temp.mp3" #return output_filename description_text = """
For faster inference without waiting in queue, you may duplicate the space and upgrade to a GPU in the settings.
Generate audio using Tango2 by providing a text prompt. Tango2 was built from Tango and was trained on Audio-alpaca
This is the demo for Tango2 for text to audio generation: Read our paper.