| import gradio as gr |
| import librosa |
| import numpy as np |
| import soundfile as sf |
| import onnxruntime as ort |
| import os |
| from huggingface_hub import hf_hub_download |
|
|
| |
| print("Downloading FlashSR ONNX weights...") |
| model_path = hf_hub_download(repo_id="YatharthS/FlashSR", filename="model.onnx", subfolder="onnx") |
|
|
| |
| print("Initializing ONNX Runtime Session...") |
| ort_session = ort.InferenceSession(model_path, providers=['CPUExecutionProvider']) |
|
|
| |
| input_name = ort_session.get_inputs()[0].name |
| output_name = ort_session.get_outputs()[0].name |
|
|
| def super_resolve_onnx(audio_path): |
| if audio_path is None: |
| return None |
| |
| |
| y, sr = librosa.load(audio_path, sr=16000) |
| |
| |
| lowres_wav = y[np.newaxis, :].astype(np.float32) |
| |
| |
| print("Processing audio via ONNX...") |
| onnx_output = ort_session.run([output_name], {input_name: lowres_wav})[0] |
| |
| |
| new_wav = onnx_output.squeeze() |
| |
| |
| output_path = "output_48khz_onnx.wav" |
| sf.write(output_path, new_wav, 48000) |
| |
| return output_path |
|
|
| |
| title = "⚡ FlashSR ONNX: Real-Time Audio Super-Resolution" |
| description = ( |
| "This version runs entirely on **ONNX Runtime (CPU Optimized)**." |
| ) |
|
|
| demo = gr.Interface( |
| fn=super_resolve_onnx, |
| inputs=gr.Audio(type="filepath", label="Input Audio (VOD Clip)"), |
| outputs=gr.Audio(type="filepath", label="ONNX Enhanced Output (48kHz)"), |
| title=title, |
| description=description, |
| flagging_mode="never" |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |