File size: 6,079 Bytes
bfd4a9b
b52931d
 
bfd4a9b
 
 
 
b52931d
 
 
cec4f00
 
b52931d
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
 
cec4f00
 
b52931d
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
cec4f00
 
b52931d
 
 
 
 
 
 
3597939
b52931d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bfd4a9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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__)))

# Define the audio file paths (replace with your actual paths)
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()