LouisMonawe commited on
Commit
8f8dd51
·
1 Parent(s): 2d50524

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -39
app.py CHANGED
@@ -47,44 +47,67 @@
47
 
48
  # iface.launch()
49
 
50
- from transformers import MarianMTModel, MarianTokenizer, pipeline
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
- # Define supported models for South African languages
54
- language_models = {
55
- "Afrikaans": "Helsinki-NLP/opus-mt-en-af",
56
- "Zulu": "Helsinki-NLP/opus-mt-en-zu",
57
- "Xhosa": "Helsinki-NLP/opus-mt-en-xh",
58
- "Sesotho": "Helsinki-NLP/opus-mt-en-st",
59
- "Setswana": "Helsinki-NLP/opus-mt-en-tn",
60
- }
61
-
62
-
63
- # Translation function
64
- def translate(text, target_language):
65
- model_name = language_models[target_language]
66
- tokenizer = MarianTokenizer.from_pretrained(model_name)
67
- model = MarianMTModel.from_pretrained(model_name)
68
-
69
- # Setup pipeline
70
- translation_pipeline = pipeline("translation", model=model, tokenizer=tokenizer)
71
-
72
- # Translate
73
- result = translation_pipeline(text)
74
- return result[0]["translation_text"]
75
-
76
-
77
- # Build Gradio interface
78
- interface = gr.Interface(
79
- fn=translate,
80
- inputs=[
81
- gr.Textbox(label="Enter English Text"),
82
- gr.Dropdown(choices=list(language_models.keys()), label="Translate to"),
83
- ],
84
- outputs="text",
85
- title="African Language Translator",
86
- description="Translate English text into Afrikaans, Zulu, Xhosa, Sesotho or Setswana",
87
- )
88
-
89
- # Launch the app
90
- interface.launch()
 
47
 
48
  # iface.launch()
49
 
50
+ # from transformers import MarianMTModel, MarianTokenizer, pipeline
51
+ # import gradio as gr
52
+
53
+ # # Define supported models for South African languages
54
+ # language_models = {
55
+ # "Afrikaans": "Helsinki-NLP/opus-mt-en-af",
56
+ # "Zulu": "Helsinki-NLP/opus-mt-en-zu",
57
+ # "Xhosa": "Helsinki-NLP/opus-mt-en-xh",
58
+ # "Sesotho": "Helsinki-NLP/opus-mt-en-st",
59
+ # "Setswana": "Helsinki-NLP/opus-mt-en-tn",
60
+ # }
61
+
62
+
63
+ # # Translation function
64
+ # def translate(text, target_language):
65
+ # model_name = language_models[target_language]
66
+ # tokenizer = MarianTokenizer.from_pretrained(model_name)
67
+ # model = MarianMTModel.from_pretrained(model_name)
68
+
69
+ # # Setup pipeline
70
+ # translation_pipeline = pipeline("translation", model=model, tokenizer=tokenizer)
71
+
72
+ # # Translate
73
+ # result = translation_pipeline(text)
74
+ # return result[0]["translation_text"]
75
+
76
+
77
+ # # Build Gradio interface
78
+ # interface = gr.Interface(
79
+ # fn=translate,
80
+ # inputs=[
81
+ # gr.Textbox(label="Enter English Text"),
82
+ # gr.Dropdown(choices=list(language_models.keys()), label="Translate to"),
83
+ # ],
84
+ # outputs="text",
85
+ # title="African Language Translator",
86
+ # description="Translate English text into Afrikaans, Zulu, Xhosa, Sesotho or Setswana",
87
+ # )
88
+
89
+ # # Launch the app
90
+ # interface.launch()
91
+
92
+
93
  import gradio as gr
94
+ from transformers import MarianMTModel, MarianTokenizer
95
+
96
+ # Pick your language pair
97
+ model_name = "Helsinki-NLP/opus-mt-en-zu" # English to Zulu
98
+
99
+ # Load tokenizer and model locally
100
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
101
+ model = MarianMTModel.from_pretrained(model_name)
102
+
103
+
104
+ def translate(text):
105
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
106
+ translated = model.generate(**inputs)
107
+ return tokenizer.decode(translated[0], skip_special_tokens=True)
108
+
109
 
110
+ # Gradio interface
111
+ gr.Interface(
112
+ fn=translate, inputs="text", outputs="text", title="English to Zulu Translator"
113
+ ).launch()