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 |
|