import gradio as gr import torch import torchaudio from transformers import EncodecModel from encodec.utils import convert_audio from encodec.compress import compress_to_file, decompress_from_file # Import from the correct module import io # Load the Encodec model model = EncodecModel.from_pretrained("facebook/encodec_48khz") model.set_target_bandwidth(6.0) # Set the desired bandwidth (adjust as needed) @spaces.GPU def encode(audio_file_path): try: # Load and pre-process the audio waveform wav, sr = torchaudio.load(audio_file_path) wav = convert_audio(wav, sr, model.sample_rate, model.channels) # Compress to ecdc file in memory output = io.BytesIO() compress_to_file(model, wav, output) output.seek(0) return output except Exception as e: gr.Warning(f"An error occurred during encoding: {e}") return None @spaces.GPU def decode(compressed_audio_file): try: # Decompress audio wav, sr = decompress_from_file(compressed_audio_file) # Convert the decoded audio to a numpy array for Gradio output decoded_audio = wav.cpu().numpy() return decoded_audio except Exception as e: gr.Warning(f"An error occurred during decoding: {e}") return None # Gradio interface with gr.Blocks() as demo: gr.Markdown("