|
|
from random import choices |
|
|
|
|
|
import gradio as gr |
|
|
from TTS.api import TTS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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() |