Spaces:
Running
Running
Yurii Paniv
commited on
Commit
•
b75a2aa
1
Parent(s):
f9e5028
Fix memory leak, remove gradient storage
Browse files- .gitignore +4 -1
- app.py +13 -10
.gitignore
CHANGED
@@ -130,4 +130,7 @@ dmypy.json
|
|
130 |
|
131 |
# model files
|
132 |
*.pth.tar
|
133 |
-
*.pth
|
|
|
|
|
|
|
|
130 |
|
131 |
# model files
|
132 |
*.pth.tar
|
133 |
+
*.pth
|
134 |
+
|
135 |
+
# gradio
|
136 |
+
gradio_queue.db
|
app.py
CHANGED
@@ -10,6 +10,8 @@ from formatter import preprocess_text
|
|
10 |
from datetime import datetime
|
11 |
from stress import sentence_to_stress
|
12 |
from enum import Enum
|
|
|
|
|
13 |
|
14 |
class StressOption(Enum):
|
15 |
ManualStress = "Наголоси вручну"
|
@@ -50,21 +52,22 @@ for MODEL_NAME in MODEL_NAMES:
|
|
50 |
|
51 |
|
52 |
def tts(text: str, stress: str):
|
53 |
-
synthesizer = Synthesizer(
|
54 |
-
model_path, config_path, None, None, None,
|
55 |
-
)
|
56 |
text = preprocess_text(text)
|
57 |
-
text_limit =
|
58 |
text = text if len(text) < text_limit else text[0:text_limit] # mitigate crashes on hf space
|
59 |
text = sentence_to_stress(text) if stress == StressOption.AutomaticStress.value else text
|
60 |
print(text, datetime.utcnow())
|
61 |
-
|
62 |
-
raise NameError("model not found")
|
63 |
-
wavs = synthesizer.tts(text)
|
64 |
-
# output = (synthesizer.output_sample_rate, np.array(wavs))
|
65 |
-
# return output
|
66 |
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
return fp.name
|
69 |
|
70 |
|
|
|
10 |
from datetime import datetime
|
11 |
from stress import sentence_to_stress
|
12 |
from enum import Enum
|
13 |
+
import torch
|
14 |
+
import gc
|
15 |
|
16 |
class StressOption(Enum):
|
17 |
ManualStress = "Наголоси вручну"
|
|
|
52 |
|
53 |
|
54 |
def tts(text: str, stress: str):
|
|
|
|
|
|
|
55 |
text = preprocess_text(text)
|
56 |
+
text_limit = 1200
|
57 |
text = text if len(text) < text_limit else text[0:text_limit] # mitigate crashes on hf space
|
58 |
text = sentence_to_stress(text) if stress == StressOption.AutomaticStress.value else text
|
59 |
print(text, datetime.utcnow())
|
60 |
+
|
|
|
|
|
|
|
|
|
61 |
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp:
|
62 |
+
with torch.no_grad():
|
63 |
+
synthesizer = Synthesizer(
|
64 |
+
model_path, config_path, None, None, None,
|
65 |
+
)
|
66 |
+
if synthesizer is None:
|
67 |
+
raise NameError("model not found")
|
68 |
+
wavs = synthesizer.tts(text)
|
69 |
+
synthesizer.save_wav(wavs, fp)
|
70 |
+
gc.collect()
|
71 |
return fp.name
|
72 |
|
73 |
|