text-to-speech / app.py
thealphamerc's picture
Add voice assets
7d0bff2
raw
history blame
2.28 kB
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)