Update app.py
Browse files
app.py
CHANGED
@@ -3,27 +3,52 @@ import os
|
|
3 |
from TTS.api import TTS
|
4 |
import time
|
5 |
|
6 |
-
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v1")
|
7 |
-
tts.to("cpu")
|
8 |
|
9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
11 |
# TTS with on the fly voice conversion
|
12 |
print(f"Language: {language}")
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
speaker_wav=
|
17 |
-
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
return "ouptut.wav"
|
21 |
|
22 |
|
23 |
demo = gr.Interface(fn=audio_tts, inputs=[gr.Textbox(label="Input text TTS", value="Привет! Я Макс."),
|
24 |
-
gr.Dropdown(choices=["
|
25 |
label="Language", value="rus"),
|
26 |
gr.Audio(source="upload", type="filepath", label="Input audio")],
|
27 |
outputs=gr.Audio(source="upload", type="filepath", label="Output audio"))
|
28 |
|
29 |
-
demo.queue(concurrency_count=1).launch(show_error=True)
|
|
|
3 |
from TTS.api import TTS
|
4 |
import time
|
5 |
|
|
|
|
|
6 |
|
7 |
+
"""
|
8 |
+
For Fairseq models, use the following name format: tts_models/<lang-iso_code>/fairseq/vits. You can find the language ISO codes here and learn about the Fairseq models here.
|
9 |
+
https://dl.fbaipublicfiles.com/mms/tts/all-tts-languages.html
|
10 |
+
"""
|
11 |
+
|
12 |
+
api_rus = TTS(f"tts_models/rus/fairseq/vits", gpu=False)
|
13 |
+
api_eng = TTS(f"tts_models/eng/fairseq/vits", gpu=False)
|
14 |
+
api_spa = TTS(f"tts_models/spa/fairseq/vits", gpu=False)
|
15 |
+
api_fas = TTS(f"tts_models/fas/fairseq/vits", gpu=False) # Persian
|
16 |
+
api_tur = TTS(f"tts_models/tur/fairseq/vits", gpu=False) # Turkish
|
17 |
+
api_deu = TTS(f"tts_models/deu/fairseq/vits", gpu=False) # German, Standard
|
18 |
+
api_ara = TTS(f"tts_models/ara/fairseq/vits", gpu=False) # Arabic
|
19 |
+
api_por = TTS(f"tts_models/por/fairseq/vits", gpu=False) # Portuguese
|
20 |
+
api_hin = TTS(f"tts_models/hin/fairseq/vits", gpu=False) # Hindi
|
21 |
+
|
22 |
+
|
23 |
+
def audio_tts(txt, language, audio_file):
|
24 |
|
25 |
# TTS with on the fly voice conversion
|
26 |
print(f"Language: {language}")
|
27 |
+
if language == "rus":
|
28 |
+
api_rus.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
29 |
+
elif language == "eng":
|
30 |
+
api_eng.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
31 |
+
elif language == "spa":
|
32 |
+
api_spa.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
33 |
+
elif language == "fas":
|
34 |
+
api_fas.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
35 |
+
elif language == "tur":
|
36 |
+
api_tur.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
37 |
+
elif language == "deu":
|
38 |
+
api_deu.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
39 |
+
elif language == "ara":
|
40 |
+
api_ara.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
41 |
+
elif language == "por":
|
42 |
+
api_por.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
43 |
+
elif language == "hin":
|
44 |
+
api_hin.tts_with_vc_to_file(txt, speaker_wav=audio_file, file_path="ouptut.wav")
|
45 |
return "ouptut.wav"
|
46 |
|
47 |
|
48 |
demo = gr.Interface(fn=audio_tts, inputs=[gr.Textbox(label="Input text TTS", value="Привет! Я Макс."),
|
49 |
+
gr.Dropdown(choices=["rus", "eng", "spa", "fas", "tur", "deu", "ara", "por", "hin"],
|
50 |
label="Language", value="rus"),
|
51 |
gr.Audio(source="upload", type="filepath", label="Input audio")],
|
52 |
outputs=gr.Audio(source="upload", type="filepath", label="Output audio"))
|
53 |
|
54 |
+
demo.queue(concurrency_count=1).launch(show_error=True)
|