aiconq commited on
Commit
4a76fcb
·
verified ·
1 Parent(s): 848785c

Create processing.py

Browse files
Files changed (1) hide show
  1. processing.py +38 -0
processing.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import whisper
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+ from gtts import gTTS
4
+ import tempfile
5
+ import os
6
+ import certifi
7
+
8
+ os.environ["SSL_CERT_FILE"] = certifi.where()
9
+
10
+ def transcribe_translate_speak(audio_path, target_language):
11
+ # Transcribe
12
+ model = whisper.load_model("tiny")
13
+ result = model.transcribe(audio_path)
14
+ transcription = result["text"]
15
+
16
+ # Translate
17
+ model_map = {
18
+ 'hi': "Helsinki-NLP/opus-mt-en-hi",
19
+ 'es': "Helsinki-NLP/opus-mt-en-es",
20
+ 'fr': "Helsinki-NLP/opus-mt-en-fr",
21
+ 'bn': "shhossain/opus-mt-en-to-bn"
22
+ }
23
+
24
+ if target_language not in model_map:
25
+ raise ValueError(f"Unsupported language: {target_language}")
26
+
27
+ trans_model = MarianMTModel.from_pretrained(model_map[target_language])
28
+ tokenizer = MarianTokenizer.from_pretrained(model_map[target_language])
29
+ inputs = tokenizer(transcription, return_tensors="pt", padding=True, truncation=True)
30
+ outputs = trans_model.generate(**inputs)
31
+ translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
32
+
33
+ # TTS
34
+ tts = gTTS(translated_text, lang=target_language)
35
+ tts_path = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False).name
36
+ tts.save(tts_path)
37
+
38
+ return transcription, translated_text, tts_path