interpreter / app.py
gladikos's picture
Update app.py
b30d2a7 verified
raw
history blame
1.77 kB
import gradio as gr
from transformers import pipeline
# Alle Sprachmodelle
translation_models = {
"Deutsch → Englisch": "Helsinki-NLP/opus-mt-de-en",
"Englisch → Deutsch": "Helsinki-NLP/opus-mt-en-de",
"Englisch → Französisch": "Helsinki-NLP/opus-mt-en-fr",
"Französisch → Englisch": "Helsinki-NLP/opus-mt-fr-en",
"Spanisch → Deutsch": "Helsinki-NLP/opus-mt-es-de",
"Deutsch → Spanisch": "Helsinki-NLP/opus-mt-de-es",
"Deutsch → Griechisch": "Helsinki-NLP/opus-mt-de-el",
"Griechisch → Deutsch": "Helsinki-NLP/opus-mt-el-de",
"Deutsch → Italienisch": "Helsinki-NLP/opus-mt-de-it",
"Italienisch → Deutsch": "Helsinki-NLP/opus-mt-it-de"
}
# Übersetzungsfunktion
def translate_audio(audio, text, language_pair):
model_name = translation_models[language_pair]
translator = pipeline("translation", model=model_name)
if audio is not None:
text = audio["text"]
result = translator(text, max_length=512)
translated_text = result[0]['translation_text']
return translated_text, translated_text
# Gradio Interface
iface = gr.Interface(
fn=translate_audio,
inputs=[
gr.Audio(label="🎤 Spracheingabe (optional)", type="filepath", format="wav"),
gr.Textbox(lines=4, label="✍️ Oder Text eingeben"),
gr.Dropdown(choices=list(translation_models.keys()), label="🌐 Sprachrichtung wählen")
],
outputs=[
gr.Textbox(label="📝 Übersetzter Text"),
gr.Audio(label="🔊 Gesprochene Ausgabe", type="auto")
],
title="🌍 Multilinguale Übersetzer-App",
description="Wähle eine Sprachrichtung, gib Text ein oder sprich etwas. Der Text wird übersetzt und vorgelesen.",
allow_flagging="never"
)
iface.launch()