vc-3 / app.py
normalin's picture
Update app.py
c232aea verified
from random import choices
import gradio as gr
from TTS.api import TTS
# voice_conversion_models/multilingual/multi-dataset/knnvc
# voice_conversion_models/multilingual/multi-dataset/openvoice_v1
# voice_conversion_models/multilingual/multi-dataset/openvoice_v2
tts = TTS(model_name="voice_conversion_models/multilingual/vctk/freevc24", gpu=False)
tts2 = TTS(model_name="voice_conversion_models/multilingual/multi-dataset/knnvc", gpu=False)
tts3 = TTS(model_name="voice_conversion_models/multilingual/multi-dataset/openvoice_v1", gpu=False)
tts4 = TTS(model_name="voice_conversion_models/multilingual/multi-dataset/openvoice_v2", gpu=False)
def greet(source, target, choices_s):
if choices_s == "freevc24":
tts.voice_conversion_to_file(
source_wav=source,
target_wav=target,
file_path="output.wav"
)
elif choices_s == "knnvc":
tts2.voice_conversion_to_file(
source_wav=source,
target_wav=target,
file_path="output.wav"
)
elif choices_s == "openvoice_v1":
tts3.voice_conversion_to_file(
source_wav=source,
target_wav=target,
file_path="output.wav"
)
elif choices_s == "openvoice_v2":
tts4.voice_conversion_to_file(
source_wav=source,
target_wav=target,
file_path="output.wav"
)
return "output.wav"
demo = gr.Interface(fn=greet, inputs=[gr.Audio(label="Source audio", value="kratos.wav", type="filepath"),
gr.Audio(label="Target audio", value="nikole_kidman.wav", type="filepath"),
gr.Dropdown(label="Model name", choices=["freevc24", "knnvc", "openvoice_v1", "openvoice_v2"])],
outputs=gr.Audio(type="filepath"))
demo.launch()