solie79 commited on
Commit
9b0a1f4
·
verified ·
1 Parent(s): dd1926a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -9
app.py CHANGED
@@ -1,20 +1,55 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
  from gtts import gTTS
 
4
 
5
- # Load translation model
6
- translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-fr")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  def translate_and_speak(text, target_language):
9
- # Translate text
10
- translated_text = translator(text, tgt_lang=target_language)[0]['translation_text']
11
 
12
- # Convert text to speech
13
- tts = gTTS(translated_text, lang=target_language)
14
- output_path = "output.mp3"
15
- tts.save(output_path)
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
- return translated_text, output_path
 
18
 
19
  # Gradio Interface
20
  demo = gr.Interface(
@@ -29,4 +64,5 @@ demo = gr.Interface(
29
  ]
30
  )
31
 
 
32
  demo.launch(share=True)
 
1
  import gradio as gr
2
  from transformers import pipeline
3
  from gtts import gTTS
4
+ import os
5
 
6
+ # Mapping user-selected languages to available translation models
7
+ TRANSLATION_MODELS = {
8
+ "fr": "Helsinki-NLP/opus-mt-en-fr",
9
+ "es": "Helsinki-NLP/opus-mt-en-es",
10
+ "de": "Helsinki-NLP/opus-mt-en-de",
11
+ "it": "Helsinki-NLP/opus-mt-en-it",
12
+ "zh": "Helsinki-NLP/opus-mt-en-zh",
13
+ "ar": "Helsinki-NLP/opus-mt-en-ar",
14
+ "hi": "Helsinki-NLP/opus-mt-en-hi",
15
+ "ur": "Helsinki-NLP/opus-mt-en-ur"
16
+ }
17
+
18
+ # Language mapping for gTTS
19
+ TTS_LANGUAGES = {
20
+ "fr": "fr",
21
+ "es": "es",
22
+ "de": "de",
23
+ "it": "it",
24
+ "zh": "zh",
25
+ "ar": "ar",
26
+ "hi": "hi",
27
+ "ur": "ur"
28
+ }
29
 
30
  def translate_and_speak(text, target_language):
31
+ """ Translates input text to the selected language and converts it to speech. """
 
32
 
33
+ if not text.strip():
34
+ return "Please enter some text.", None
35
+
36
+ if target_language not in TRANSLATION_MODELS:
37
+ return "Translation model not available for this language.", None
38
+
39
+ try:
40
+ # Load translation model dynamically based on user choice
41
+ translator = pipeline("translation", model=TRANSLATION_MODELS[target_language])
42
+ translated_text = translator(text)[0]['translation_text']
43
+
44
+ # Convert text to speech using gTTS
45
+ output_path = "output.mp3"
46
+ tts = gTTS(text=translated_text, lang=TTS_LANGUAGES[target_language])
47
+ tts.save(output_path)
48
+
49
+ return translated_text, output_path
50
 
51
+ except Exception as e:
52
+ return f"Error: {str(e)}", None
53
 
54
  # Gradio Interface
55
  demo = gr.Interface(
 
64
  ]
65
  )
66
 
67
+ # Launch Gradio App
68
  demo.launch(share=True)