Spaces:
Runtime error
Runtime error
Harveenchadha
commited on
Commit
•
69e8afe
1
Parent(s):
aef112d
Update app.py
Browse files
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')
|