File size: 1,451 Bytes
1de8de7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from TTS.api import TTS
import tempfile
import os

# Modell laden
tts = TTS(model_name="tts_models/multilingual/multi-dataset/xtts_v2", gpu=False)

def generate_audio(text, speaker_wav, language):
    # Temporäre Datei erstellen
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
        output_path = fp.name
    
    # TTS-Generierung
    tts.tts_to_file(
        text=text,
        speaker_wav=speaker_wav,
        language=language,
        file_path=output_path
    )
    
    return output_path

# Gradio-UI
with gr.Blocks() as demo:
    gr.Markdown("# 🗣️ XTTS Text-to-Speech")
    gr.Markdown("Coqui XTTS multilingual TTS Demo")
    
    with gr.Row():
        with gr.Column():
            text_input = gr.Textbox(label="Eingabetext", placeholder="Text hier eingeben...")
            speaker_input = gr.Audio(label="Referenzstimme (max 10s)", sources=["upload"], type="filepath")
            language = gr.Dropdown(
                label="Sprache",
                choices=["en", "de", "es", "fr", "it", "pt", "pl"],
                value="en"
            )
            btn = gr.Button("Generieren")
        
        with gr.Column():
            audio_output = gr.Audio(label="Generierte Sprache", autoplay=True)
    
    btn.click(
        fn=generate_audio,
        inputs=[text_input, speaker_input, language],
        outputs=audio_output
    )

if __name__ == "__main__":
    demo.launch()