Nehal07 commited on
Commit
fcfd7f5
·
verified ·
1 Parent(s): 18e757e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -8
app.py CHANGED
@@ -1,5 +1,6 @@
1
  import streamlit as st
2
- from translate import Translator
 
3
  from gtts import gTTS
4
  import os
5
 
@@ -29,15 +30,27 @@ language_names = {
29
  'Zulu': 'zu'
30
  }
31
 
 
 
 
 
 
 
 
32
  # Function to translate text
33
  def translate_text(text, target_language_code):
34
  try:
35
- # Initialize the translator
36
- translator = Translator(to_lang=target_language_code)
37
-
38
- # Translate the text to the selected target language
39
- translated_text = translator.translate(text)
40
-
 
 
 
 
 
41
  return translated_text
42
  except Exception as e:
43
  return f"Translation failed: {str(e)}"
@@ -63,4 +76,4 @@ if user_text:
63
  st.audio(tts_file_path, format="audio/mp3")
64
 
65
  # Clean up the TTS audio file
66
- os.remove(tts_file_path)
 
1
  import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+ from datasets import load_dataset
4
  from gtts import gTTS
5
  import os
6
 
 
30
  'Zulu': 'zu'
31
  }
32
 
33
+ # Function to load the translation model and tokenizer
34
+ def load_translation_model(language_pair):
35
+ model_name = f'Helsinki-NLP/opus-mt-{language_pair}'
36
+ model = MarianMTModel.from_pretrained(model_name)
37
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
38
+ return model, tokenizer
39
+
40
  # Function to translate text
41
  def translate_text(text, target_language_code):
42
  try:
43
+ # Load model and tokenizer for the selected language
44
+ language_pair = f'en-{target_language_code}'
45
+ model, tokenizer = load_translation_model(language_pair)
46
+
47
+ # Tokenize the input text
48
+ inputs = tokenizer(text, return_tensors="pt", padding=True)
49
+
50
+ # Translate the text
51
+ translated_tokens = model.generate(**inputs)
52
+ translated_text = tokenizer.decode(translated_tokens[0], skip_special_tokens=True)
53
+
54
  return translated_text
55
  except Exception as e:
56
  return f"Translation failed: {str(e)}"
 
76
  st.audio(tts_file_path, format="audio/mp3")
77
 
78
  # Clean up the TTS audio file
79
+ os.remove(tts_file_path)