Rask6723 commited on
Commit
68653c3
·
verified ·
1 Parent(s): 7f41158

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +67 -0
app.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # def translate_and_speak(text):
2
+ # input_text = "en " + text
3
+ # encoded = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True).to(device)
4
+ # generated_tokens = model.generate(**encoded, max_length=128, num_beams=5, early_stopping=True)
5
+ # output = tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
6
+
7
+ # for tag in ["__en__", "__sa__", "en", "sa"]:
8
+ # output = output.replace(tag, "")
9
+ # sanskrit_text = output.strip()
10
+
11
+ # # Convert to speech
12
+ # tts = gTTS(sanskrit_text, lang='hi')
13
+ # with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as fp:
14
+ # tts.save(fp.name)
15
+ # audio_path = fp.name
16
+
17
+ # return sanskrit_text, audio_path
18
+ from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
19
+ import torch
20
+ from gtts import gTTS
21
+ import gradio as gr
22
+ import tempfile
23
+
24
+
25
+
26
+ # Load model and tokenizer
27
+ model__name = "Helsinki-NLP/opus-mt-en-hi"
28
+
29
+
30
+ # Use GPU if available
31
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
32
+ model = model.to(device)
33
+
34
+
35
+ model_name = "SweUmaVarsh/m2m100-en-sa-translation"
36
+ tokenizer = M2M100Tokenizer.from_pretrained(model_name)
37
+ model = M2M100ForConditionalGeneration.from_pretrained(model_name)
38
+
39
+
40
+
41
+ def translate_and_speak(text):
42
+ input_text = "en " + text
43
+ encoded = tokenizer(input_text, return_tensors="pt", truncation=True, padding=True).to(device)
44
+ generated_tokens = model.generate(**encoded, max_length=128, num_beams=5, early_stopping=True)
45
+ output = tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
46
+
47
+ for tag in ["__en__", "__sa__", "en", "sa"]:
48
+ output = output.replace(tag, "")
49
+ sanskrit_text = output.strip()
50
+
51
+ # Convert to speech
52
+ tts = gTTS(sanskrit_text, lang='hi')
53
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as fp:
54
+ tts.save(fp.name)
55
+ audio_path = fp.name
56
+
57
+ return sanskrit_text, audio_path
58
+
59
+ iface = gr.Interface(
60
+ fn=translate_and_speak,
61
+ inputs=gr.Textbox(label="Enter English Text"),
62
+ outputs=[gr.Textbox(label="Sanskrit Translation"), gr.Audio(label="Sanskrit Speech")],
63
+ title="Final Year Project: English to Sanskrit Translator (IT 'A' 2021–2025)",
64
+ description="Enter a sentence in English to get its Sanskrit translation and audio output."
65
+ )
66
+
67
+ iface.launch()