from subprocess import call import gradio as gr import os from TTS.api import TTS # List available 🐸TTS models and choose the first one all_models = TTS.list_models() # for model in all_models: # print(model) # print("Using model: ", all_models[0]) model_name = all_models[0] # Init TTS print("Downloading model...", '') voiceCloneModel = TTS('tts_models/multilingual/multi-dataset/your_tts') def run_cmd(command): try: print(command) call(command) except KeyboardInterrupt: print("Process interrupted") sys.exit(1) def inference(text, speaker): if (speaker == 'Speaker-1'): speaker = 'input/amitabh.mp3' elif (speaker == 'Speaker-2'): speaker = 'input/amrish.mp3' elif (speaker == 'Speaker-3'): speaker = 'input/obama.mp3' elif (speaker == 'Speaker-4'): speaker = 'input/trump.wav' else: speaker = 'input/z-default.wav' # print("speaker: ", speaker) # cmd = ['tts', '--text', text, '--out_path', 'output/tts_output.wav'] # run_cmd(cmd) # Text to speech to a file # tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", # progress_bar=False, gpu=True) voiceCloneModel.tts_to_file(text, speaker_wav=speaker, language="en", file_path="output/output.wav") # for i in range(len(tts.languages)): # tts.tts_to_file(text=text, # speaker=tts.speakers[i], language=tts.languages[0], file_path='output/output-'+str(i)+'.wav') return 'output/output.wav' inputs = [gr.inputs.Textbox(lines=5, label="Input Text"), gr.inputs.Dropdown(['Speaker-1', 'Speaker-2', 'Speaker-3', 'Speaker-4'], label="Model") ] outputs = gr.outputs.Audio(type="filepath", label="Output Audio") title = "Text To Speech" description = "An example of using TTS to generate speech from text." article = "" examples = [ ["This is an open-source library that generates synthetic speech"] ] gr.Interface( inference, inputs, outputs, verbose=True, title=title, description=description, article=article, examples=examples, enable_queue=True, allow_flagging="never", ).launch(debug=True)