ubiodee commited on
Commit
c410fd5
·
verified ·
1 Parent(s): fa0ab55

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -9
  2. app.py +41 -0
  3. requirements.txt +1 -3
README.md CHANGED
@@ -1,11 +1,8 @@
1
- ---
2
- license: mit
3
- title: Multilingual Realtime Translator
4
- sdk: gradio
5
- emoji: 🚀
6
- colorTo: green
7
- short_description: ranslate between English and Nigerian languages using speech
8
- ---
9
  # Multilingual Realtime Translator
10
 
11
- Translate between English and Nigerian languages using speech and text.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Multilingual Realtime Translator
2
 
3
+ This Gradio app translates speech or text between English and Yoruba (extendable to Hausa and Igbo).
4
+
5
+ ## Usage
6
+
7
+ - Upload to your Hugging Face Space
8
+ - Ensure you have the proper model weights downloaded (Whisper, MarianMT)
app.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import pipeline, MarianMTModel, MarianTokenizer
3
+ import edge_tts
4
+ import asyncio
5
+
6
+ # Load Whisper for English ASR
7
+ asr_en = pipeline("automatic-speech-recognition", model="openai/whisper-base")
8
+
9
+ # Load MarianMT for Yoruba-English (can switch for Igbo/Hausa)
10
+ mt_model_name = "Helsinki-NLP/opus-mt-yo-en"
11
+ tokenizer = MarianTokenizer.from_pretrained(mt_model_name)
12
+ model = MarianMTModel.from_pretrained(mt_model_name)
13
+
14
+ def translate_speech(audio):
15
+ transcription = asr_en(audio)["text"]
16
+ inputs = tokenizer(transcription, return_tensors="pt", padding=True)
17
+ translated_tokens = model.generate(**inputs)
18
+ translated_text = tokenizer.decode(translated_tokens[0], skip_special_tokens=True)
19
+ return transcription, translated_text
20
+
21
+ def translate_text(text):
22
+ inputs = tokenizer(text, return_tensors="pt", padding=True)
23
+ translated_tokens = model.generate(**inputs)
24
+ translated_text = tokenizer.decode(translated_tokens[0], skip_special_tokens=True)
25
+ return translated_text
26
+
27
+ with gr.Blocks() as demo:
28
+ gr.Markdown("### Multilingual Realtime Translator - English ↔ Yoruba (V1)")
29
+
30
+ with gr.Tab("Speech Input"):
31
+ mic = gr.Audio(source="microphone", type="filepath", label="Speak Now")
32
+ transcription = gr.Textbox(label="Transcription")
33
+ translation = gr.Textbox(label="Translation")
34
+ mic.submit(translate_speech, inputs=mic, outputs=[transcription, translation])
35
+
36
+ with gr.Tab("Text Input"):
37
+ input_text = gr.Textbox(label="Enter text")
38
+ translated_text = gr.Textbox(label="Translated text")
39
+ input_text.submit(translate_text, inputs=input_text, outputs=translated_text)
40
+
41
+ demo.launch()
requirements.txt CHANGED
@@ -1,6 +1,4 @@
 
1
  transformers
2
  torch
3
- openai-whisper
4
- gradio
5
  edge-tts
6
- speechrecognition
 
1
+ gradio
2
  transformers
3
  torch
 
 
4
  edge-tts