gladikos commited on
Commit
2ed6969
·
verified ·
1 Parent(s): 23907a4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -27
app.py CHANGED
@@ -1,14 +1,17 @@
1
  import gradio as gr
2
  from transformers import pipeline
 
 
 
3
 
4
- # Alle Sprachmodelle
5
  translation_models = {
6
  "Deutsch → Englisch": "Helsinki-NLP/opus-mt-de-en",
7
  "Englisch → Deutsch": "Helsinki-NLP/opus-mt-en-de",
8
  "Englisch → Französisch": "Helsinki-NLP/opus-mt-en-fr",
9
  "Französisch → Englisch": "Helsinki-NLP/opus-mt-fr-en",
10
- "Spanisch → Deutsch": "Helsinki-NLP/opus-mt-es-de",
11
  "Deutsch → Spanisch": "Helsinki-NLP/opus-mt-de-es",
 
12
  "Deutsch → Griechisch": "Helsinki-NLP/opus-mt-de-el",
13
  "Griechisch → Deutsch": "Helsinki-NLP/opus-mt-el-de",
14
  "Deutsch → Italienisch": "Helsinki-NLP/opus-mt-de-it",
@@ -16,32 +19,33 @@ translation_models = {
16
  }
17
 
18
  # Übersetzungsfunktion
19
- def translate_audio(audio, text, language_pair):
 
 
 
20
  model_name = translation_models[language_pair]
21
  translator = pipeline("translation", model=model_name)
22
-
23
- if audio is not None:
24
- text = audio["text"]
25
-
26
  result = translator(text, max_length=512)
27
  translated_text = result[0]['translation_text']
28
- return translated_text, translated_text
29
-
30
- # Gradio Interface
31
- iface = gr.Interface(
32
- fn=translate_audio,
33
- inputs=[
34
- gr.Audio(label="🎤 Spracheingabe (optional)", type="filepath", format="wav"),
35
- gr.Textbox(lines=4, label="✍️ Oder Text eingeben"),
36
- gr.Dropdown(choices=list(translation_models.keys()), label="🌐 Sprachrichtung wählen")
37
- ],
38
- outputs=[
39
- gr.Textbox(label="📝 Übersetzter Text"),
40
- gr.Audio(label="🔊 Gesprochene Ausgabe", type="auto")
41
- ],
42
- title="🌍 Multilinguale Übersetzer-App",
43
- description="Wähle eine Sprachrichtung, gib Text ein oder sprich etwas. Der Text wird übersetzt und vorgelesen.",
44
- allow_flagging="never"
45
- )
46
-
47
- iface.launch()
 
 
 
1
  import gradio as gr
2
  from transformers import pipeline
3
+ from gtts import gTTS
4
+ import tempfile
5
+ import os
6
 
7
+ # Übersetzungsmodelle definieren
8
  translation_models = {
9
  "Deutsch → Englisch": "Helsinki-NLP/opus-mt-de-en",
10
  "Englisch → Deutsch": "Helsinki-NLP/opus-mt-en-de",
11
  "Englisch → Französisch": "Helsinki-NLP/opus-mt-en-fr",
12
  "Französisch → Englisch": "Helsinki-NLP/opus-mt-fr-en",
 
13
  "Deutsch → Spanisch": "Helsinki-NLP/opus-mt-de-es",
14
+ "Spanisch → Deutsch": "Helsinki-NLP/opus-mt-es-de",
15
  "Deutsch → Griechisch": "Helsinki-NLP/opus-mt-de-el",
16
  "Griechisch → Deutsch": "Helsinki-NLP/opus-mt-el-de",
17
  "Deutsch → Italienisch": "Helsinki-NLP/opus-mt-de-it",
 
19
  }
20
 
21
  # Übersetzungsfunktion
22
+ def translate(text, language_pair):
23
+ if not text:
24
+ return "Kein Text eingegeben.", None
25
+
26
  model_name = translation_models[language_pair]
27
  translator = pipeline("translation", model=model_name)
 
 
 
 
28
  result = translator(text, max_length=512)
29
  translated_text = result[0]['translation_text']
30
+
31
+ # Text-to-Speech
32
+ tts = gTTS(translated_text, lang="en") # einfache Annahme: Zielsprache ist "en"
33
+ tmp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
34
+ tts.save(tmp_file.name)
35
+
36
+ return translated_text, tmp_file.name
37
+
38
+ # Gradio UI
39
+ with gr.Blocks() as demo:
40
+ gr.Markdown("## 🌍 Multilinguale Übersetzer-App mit Text-to-Speech")
41
+
42
+ language = gr.Dropdown(choices=list(translation_models.keys()), label="🌐 Sprachrichtung")
43
+ text_input = gr.Textbox(lines=4, label="📝 Eingabetext")
44
+ translate_button = gr.Button("Übersetzen")
45
+
46
+ output_text = gr.Textbox(label="📄 Übersetzter Text")
47
+ output_audio = gr.Audio(label="🔊 Gesprochene Ausgabe", type="filepath")
48
+
49
+ translate_button.click(fn=translate, inputs=[text_input, language], outputs=[output_text, output_audio])
50
+
51
+ demo.launch()