|
import os |
|
import gradio as gr |
|
|
|
curr_dir = os.path.dirname(os.path.abspath(__file__)) |
|
|
|
print("os.path.dirname:", os.path.dirname(os.path.abspath(__file__))) |
|
|
|
|
|
audio_files = { |
|
"EN": { |
|
"source1": os.path.join(curr_dir, "asset/audio/speech_clone_samples/source/-8014568635405176842.wav"), |
|
"source2": os.path.join(curr_dir, "asset/audio/speech_clone_samples/source/2188769758301752050.wav"), |
|
"prompt1": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt1/4813840990459345930.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt1/-4261051484297537007.wav") |
|
], |
|
"prompt2": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt2/-5427774732334682307.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt2/-8434461861028245286.wav") |
|
], |
|
"gen1": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen1/5518114099457736437.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen1/7702800575106132714.wav") |
|
], |
|
"gen2": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen2/-3552571881595006474.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen2/1663763965594639195.wav") |
|
] |
|
}, |
|
"ZH": { |
|
"source1": os.path.join(curr_dir, "asset/audio/speech_clone_samples/source/6180100163014579264.wav"), |
|
"source2": os.path.join(curr_dir, "asset/audio/speech_clone_samples/source/3454520432972073544.wav"), |
|
"prompt3": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt3/-3133904573328901327.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt3/-6807997165982172717.wav") |
|
], |
|
"prompt4": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt4/3957690686751537502.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/prompt/prompt4/-6025252638827969073.wav") |
|
], |
|
"gen3": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen3/4648220778277450149.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen3/3417274376341807017.wav") |
|
], |
|
"gen4": [ |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen4/8580165735770550130.wav"), |
|
os.path.join(curr_dir, "asset/audio/speech_clone_samples/generated/gen4/-2291633937079669023.wav") |
|
] |
|
} |
|
} |
|
|
|
|
|
def create_audio_demo(): |
|
with gr.Blocks(title="Voice Conversion") as demo: |
|
gr.Image(os.path.join(curr_dir, "asset/img/converted_audio.png"), height=360) |
|
gr.Markdown("# Voice Conversion") |
|
with gr.Tabs(): |
|
with gr.TabItem("English (EN)"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
gr.Markdown("### Source Audio 1") |
|
gr.Audio(audio_files["EN"]["source1"], label="Source 1") |
|
with gr.Column(): |
|
gr.Markdown("### Prompts") |
|
gr.Audio(audio_files["EN"]["prompt1"][0], label="Prompt 1") |
|
gr.Audio(audio_files["EN"]["prompt1"][1], label="Prompt 2") |
|
|
|
with gr.Column(): |
|
gr.Markdown("### Converted Audio") |
|
gr.Audio(audio_files["EN"]["gen1"][0], label="Converted 1") |
|
gr.Audio(audio_files["EN"]["gen1"][1], label="Converted 2") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
gr.Markdown("### Source Audio 2") |
|
gr.Audio(audio_files["EN"]["source2"], label="Source 2") |
|
with gr.Column(): |
|
gr.Markdown("### Prompts") |
|
gr.Audio(audio_files["EN"]["prompt2"][0], label="Prompt 1") |
|
gr.Audio(audio_files["EN"]["prompt2"][1], label="Prompt 2") |
|
|
|
with gr.Column(): |
|
gr.Markdown("### Converted Audio") |
|
gr.Audio(audio_files["EN"]["gen2"][0], label="Converted 1") |
|
gr.Audio(audio_files["EN"]["gen2"][1], label="Converted 2") |
|
|
|
with gr.TabItem("Chinese (ZH)"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
gr.Markdown("### Source Audio 1") |
|
gr.Audio(audio_files["ZH"]["source1"], label="Source 1") |
|
with gr.Column(): |
|
gr.Markdown("### Prompts") |
|
gr.Audio(audio_files["ZH"]["prompt3"][0], label="Prompt 1") |
|
gr.Audio(audio_files["ZH"]["prompt3"][1], label="Prompt 2") |
|
|
|
with gr.Column(): |
|
gr.Markdown("### Converted Audio") |
|
gr.Audio(audio_files["ZH"]["gen3"][0], label="Converted 1") |
|
gr.Audio(audio_files["ZH"]["gen3"][1], label="Converted 2") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
gr.Markdown("### Source Audio 2") |
|
gr.Audio(audio_files["ZH"]["source2"], label="Source 2") |
|
with gr.Column(): |
|
gr.Markdown("### Prompts") |
|
gr.Audio(audio_files["ZH"]["prompt4"][0], label="Prompt 1") |
|
gr.Audio(audio_files["ZH"]["prompt4"][1], label="Prompt 2") |
|
|
|
with gr.Column(): |
|
gr.Markdown("### Converted Audio") |
|
gr.Audio(audio_files["ZH"]["gen4"][0], label="Converted 1") |
|
gr.Audio(audio_files["ZH"]["gen4"][1], label="Converted 2") |
|
|
|
return demo |
|
|
|
|
|
if __name__ == "__main__": |
|
demo = create_audio_demo() |
|
demo.launch() |
|
|