| 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() |
|
|