|
|
import spaces |
|
|
import gradio as gr |
|
|
from f5_tts.infer.utils_infer import remove_silence_for_generated_wav |
|
|
from f5_tts.api import F5TTS |
|
|
import tempfile |
|
|
import os |
|
|
f5tts = F5TTS() |
|
|
|
|
|
|
|
|
@spaces.GPU |
|
|
def run_tts(ref_audio, ref_text, gen_text, remove_silence=False): |
|
|
output_wav_path = tempfile.mktemp(suffix=".wav") |
|
|
|
|
|
wav, sr, _ = f5tts.infer( |
|
|
ref_file=ref_audio, |
|
|
ref_text=ref_text, |
|
|
gen_text=gen_text, |
|
|
file_wave=output_wav_path, |
|
|
remove_silence=remove_silence, |
|
|
) |
|
|
|
|
|
return output_wav_path |
|
|
|
|
|
demo = gr.Interface( |
|
|
fn=run_tts, |
|
|
inputs=[ |
|
|
gr.Audio(label="Reference Audio", type="filepath"), |
|
|
gr.Textbox(label="Reference Text", placeholder="some call me nature, others call me mother nature."), |
|
|
gr.Textbox(label="Generation Text", placeholder="I don't really care what you call me..."), |
|
|
gr.Checkbox(label="Remove Silence from Output?", value=False) |
|
|
], |
|
|
outputs=gr.Audio(label="Generated Speech"), |
|
|
title="🗣️ F5-TTS Demo", |
|
|
description="Upload a reference voice, give reference and generation text, and hear it in the same voice!", |
|
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch() |
|
|
|