Harveenchadha commited on
Commit
69e8afe
1 Parent(s): aef112d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py CHANGED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ os.system('git clone https://github.com/Open-Speech-EkStep/vakyansh-tts')
3
+ os.chdir('vakyansh-tts')
4
+ os.system('bash install.sh')
5
+ os.system('python setup.py bdist_wheel')
6
+ os.system('pip install -e .')
7
+ os.chdir('tts_infer')
8
+ os.system('mkdir translit_models')
9
+ os.chdir('translit_models')
10
+ os.system('wget https://storage.googleapis.com/vakyaansh-open-models/translit_models/default_lineup.json')
11
+ os.system('mkdir hindi')
12
+ os.chdir('hindi')
13
+ os.system('wget https://storage.googleapis.com/vakyaansh-open-models/translit_models/hindi/hindi_transliteration.zip')
14
+ os.system('unzip hindi_transliteration')
15
+
16
+ os.system('wget https://storage.googleapis.com/vakyansh-open-models/tts/hindi/hi-IN/female_voice_0/glow.zip')
17
+ os.system('unzip glow.zip')
18
+
19
+ os.system('wget https://storage.googleapis.com/vakyansh-open-models/tts/hindi/hi-IN/female_voice_0/hifi.zip')
20
+ os.system('unzip hifi.zip')
21
+
22
+ os.system('rm glow.zip')
23
+ os.system('rm hifi.zip')
24
+
25
+ os.chdir('/content/vakyansh-tts/')
26
+
27
+ from tts_infer.tts import TextToMel, MelToWav
28
+ from tts_infer.transliterate import XlitEngine
29
+ from tts_infer.num_to_word_on_sent import normalize_nums
30
+
31
+ import re
32
+ from scipy.io.wavfile import write
33
+ device = 'cpu'
34
+
35
+ text_to_mel = TextToMel(glow_model_dir='/content/vakyansh-tts/tts_infer/translit_models/hindi/glow_ckp', device=device)
36
+ mel_to_wav = MelToWav(hifi_model_dir='/content/vakyansh-tts/tts_infer/translit_models/hindi/hifi_ckp', device=device)
37
+
38
+ def translit(text, lang):
39
+ reg = re.compile(r'[a-zA-Z]')
40
+ engine = XlitEngine(lang)
41
+ words = [engine.translit_word(word, topk=1)[lang][0] if reg.match(word) else word for word in text.split()]
42
+ updated_sent = ' '.join(words)
43
+ return updated_sent
44
+
45
+ def run_tts(text, lang):
46
+ text = text.replace('।', '.') # only for hindi models
47
+ text_num_to_word = normalize_nums(text, lang) # converting numbers to words in lang
48
+ text_num_to_word_and_transliterated = translit(text_num_to_word, lang) # transliterating english words to lang
49
+
50
+ mel = text_to_mel.generate_mel(text_num_to_word_and_transliterated)
51
+ audio, sr = mel_to_wav.generate_wav(mel)
52
+ write(filename='temp.wav', rate=sr, data=audio) # for saving wav file, if needed
53
+ return (sr, audio)
54
+
55
+ _, audio = run_tts('hello my name is harveen', 'hi')