| import gradio as gr |
| import tempfile |
| from TTS.api import TTS |
|
|
| |
| |
| |
| print("⏳ Loading XTTS v2 model...") |
|
|
| tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2") |
|
|
| print("✅ XTTS loaded") |
|
|
|
|
| |
| |
| |
| def generate_xtts(text, speaker_wav): |
| if not text.strip(): |
| return None |
|
|
| if speaker_wav is None: |
| return None |
|
|
| temp_wav = tempfile.NamedTemporaryFile(delete=False, suffix=".wav") |
|
|
| tts.tts_to_file( |
| text=text, |
| speaker_wav=speaker_wav, |
| language="en", |
| file_path=temp_wav.name |
| ) |
|
|
| return temp_wav.name |
|
|
|
|
| |
| |
| |
| demo = gr.Interface( |
| fn=generate_xtts, |
| inputs=[ |
| gr.Textbox( |
| label="Enter Text", |
| placeholder="Hello, this is my XTTS project demo" |
| ), |
| gr.Audio( |
| type="filepath", |
| label="Reference Voice (6–10 sec WAV)" |
| ) |
| ], |
| outputs=gr.Audio(label="Generated Speech"), |
| title="XTTS v2 Voice Cloning Demo", |
| description="Multilingual zero-shot TTS using Coqui XTTS-v2" |
| ) |
|
|
| demo.launch() |