voice_clone / app.py
Amamrnaf
interface
4d59a71
raw
history blame
1.63 kB
import gradio as gr
import os
def process_input(text_input, speaker_audio, speaker_name, option_selected):
if speaker_audio is None or speaker_name.strip() == "":
return "Please provide a valid audio file and speaker name."
# Save speaker audio under the name of the speaker
speaker_audio_path = f"{speaker_name}.wav"
speaker_audio.save(speaker_audio_path)
# Placeholder for generating the output audio
output_audio_path = f"generated_{speaker_name}.wav"
# Assuming some TTS or cloning process here
# Generate and save the output audio
# Replace this with your actual processing logic
with open(output_audio_path, "wb") as f:
f.write(b"Placeholder audio data") # Replace with actual audio data
return output_audio_path
# Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# Audio Cloning and Text-to-Speech")
with gr.Row():
text_input = gr.Textbox(label="Input Text", placeholder="Enter your text here.")
with gr.Row():
speaker_audio = gr.Audio(source="microphone", type="filepath", label="Speaker Audio (to be cloned)")
speaker_name = gr.Textbox(label="Speaker Name", placeholder="Enter the speaker's name.")
option_selected = gr.Dropdown(choices=["Option 1", "Option 2", "Option 3"], label="Select an Option")
submit_btn = gr.Button("Submit")
output_audio = gr.Audio(label="Generated Audio Output")
submit_btn.click(
process_input,
inputs=[text_input, speaker_audio, speaker_name, option_selected],
outputs=output_audio,
)
# Launch the Gradio app
demo.launch()