subramaniansrc commited on
Commit
fdd9c78
·
verified ·
1 Parent(s): 190a0a5

Update tts_engine.py

Browse files
Files changed (1) hide show
  1. tts_engine.py +36 -18
tts_engine.py CHANGED
@@ -1,30 +1,48 @@
1
- from TTS.api import TTS
2
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
 
 
3
 
4
- english_tts = None
5
- tamil_tts = None
6
  translator = None
7
- tokenizer = None
8
 
9
 
10
- def load_models():
11
 
12
- global english_tts, tamil_tts, translator, tokenizer
13
 
14
- if english_tts is None:
15
 
16
- english_tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
 
 
 
17
 
18
- if tamil_tts is None:
19
 
20
- tamil_tts = TTS("tts_models/ta/cv/vits")
21
 
22
- if translator is None:
23
 
24
- tokenizer = AutoTokenizer.from_pretrained(
25
- "ai4bharat/indictrans2-en-indic"
26
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
- translator = AutoModelForSeq2SeqLM.from_pretrained(
29
- "ai4bharat/indictrans2-en-indic"
30
- )
 
1
+ from transformers import pipeline
2
+ from gtts import gTTS
3
+ import tempfile
4
+
5
 
 
 
6
  translator = None
 
7
 
8
 
9
+ def load_translator():
10
 
11
+ global translator
12
 
13
+ if translator is None:
14
 
15
+ translator = pipeline(
16
+ "translation",
17
+ model="Helsinki-NLP/opus-mt-en-ta"
18
+ )
19
 
20
+ return translator
21
 
 
22
 
23
+ def translate_to_tamil(text):
24
 
25
+ translator = load_translator()
26
+
27
+ result = translator(text)
28
+
29
+ return result[0]["translation_text"]
30
+
31
+
32
+ def generate_voice(text, language):
33
+
34
+ audio_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3")
35
+
36
+ if language == "Tamil":
37
+
38
+ text = translate_to_tamil(text)
39
+
40
+ tts = gTTS(text=text, lang="ta")
41
+
42
+ else:
43
+
44
+ tts = gTTS(text=text, lang="en")
45
+
46
+ tts.save(audio_file.name)
47
 
48
+ return audio_file.name