Voice / app.py
roger
feat: add conversion audio data flow img
3597939
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()