gladikos commited on
Commit
a3853c7
·
verified ·
1 Parent(s): 9cabe7c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -36
app.py CHANGED
@@ -1,8 +1,5 @@
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 = {
@@ -18,58 +15,32 @@ translation_models = {
18
  "Italienisch → Deutsch": "Helsinki-NLP/opus-mt-it-de"
19
  }
20
 
21
- # Mapping für TTS-Sprachen
22
- tts_languages = {
23
- "Deutsch → Englisch": "en",
24
- "Englisch → Deutsch": "de",
25
- "Englisch → Französisch": "fr",
26
- "Französisch → Englisch": "en",
27
- "Deutsch → Spanisch": "es",
28
- "Spanisch → Deutsch": "de",
29
- "Deutsch → Griechisch": "el",
30
- "Griechisch → Deutsch": "de",
31
- "Deutsch → Italienisch": "it",
32
- "Italienisch → Deutsch": "de"
33
- }
34
-
35
- # Übersetzungs- und TTS-Funktion
36
  def translate(text, language_pair):
37
  if not text:
38
- return "❗ Kein Text eingegeben.", None
39
 
40
  model_name = translation_models.get(language_pair)
41
  if not model_name:
42
- return "❗ Ungültige Sprachwahl.", None
43
 
44
  try:
45
  translator = pipeline("translation", model=model_name)
46
  result = translator(text, max_length=512)
47
- translated_text = result[0]['translation_text']
48
- except Exception as e:
49
- return f"⚠️ Fehler bei der Übersetzung: {str(e)}", None
50
-
51
- # TTS-Sprache ermitteln
52
- tts_lang = tts_languages.get(language_pair, "en")
53
-
54
- try:
55
- tts = gTTS(translated_text, lang=tts_lang)
56
- tmp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
57
- tts.save(tmp_file.name)
58
- return translated_text, tmp_file.name
59
  except Exception as e:
60
- return translated_text + f"\n\n⚠️ Fehler bei der Sprachausgabe: {str(e)}", None
61
 
62
  # Gradio UI
63
  with gr.Blocks() as demo:
64
- gr.Markdown("## 🌍 Multilinguale Übersetzer-App mit Text-to-Speech")
65
 
66
  language = gr.Dropdown(choices=list(translation_models.keys()), label="🌐 Sprachrichtung")
67
  text_input = gr.Textbox(lines=4, label="📝 Eingabetext")
68
  translate_button = gr.Button("Übersetzen")
69
 
70
  output_text = gr.Textbox(label="📄 Übersetzter Text")
71
- output_audio = gr.Audio(label="🔊 Gesprochene Ausgabe", type="filepath")
72
 
73
- translate_button.click(fn=translate, inputs=[text_input, language], outputs=[output_text, output_audio])
74
 
75
  demo.launch()
 
1
  import gradio as gr
2
  from transformers import pipeline
 
 
 
3
 
4
  # Übersetzungsmodelle definieren
5
  translation_models = {
 
15
  "Italienisch → Deutsch": "Helsinki-NLP/opus-mt-it-de"
16
  }
17
 
18
+ # Übersetzungsfunktion
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  def translate(text, language_pair):
20
  if not text:
21
+ return "❗ Kein Text eingegeben."
22
 
23
  model_name = translation_models.get(language_pair)
24
  if not model_name:
25
+ return "❗ Ungültige Sprachwahl."
26
 
27
  try:
28
  translator = pipeline("translation", model=model_name)
29
  result = translator(text, max_length=512)
30
+ return result[0]['translation_text']
 
 
 
 
 
 
 
 
 
 
 
31
  except Exception as e:
32
+ return f"⚠️ Fehler bei der Übersetzung: {str(e)}"
33
 
34
  # Gradio UI
35
  with gr.Blocks() as demo:
36
+ gr.Markdown("## 🌍 Einfacher Übersetzer powered by Hugging Face")
37
 
38
  language = gr.Dropdown(choices=list(translation_models.keys()), label="🌐 Sprachrichtung")
39
  text_input = gr.Textbox(lines=4, label="📝 Eingabetext")
40
  translate_button = gr.Button("Übersetzen")
41
 
42
  output_text = gr.Textbox(label="📄 Übersetzter Text")
 
43
 
44
+ translate_button.click(fn=translate, inputs=[text_input, language], outputs=output_text)
45
 
46
  demo.launch()