Spaces:
Running
Running
Yurii Paniv
commited on
Commit
•
6edda28
1
Parent(s):
8d7e3e3
Add tests for formatter
Browse files- tests/test_formatter.py +14 -0
- ukrainian_tts/formatter.py +1 -25
- ukrainian_tts/tts.py +2 -0
tests/test_formatter.py
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from ukrainian_tts.formatter import preprocess_text
|
2 |
+
|
3 |
+
|
4 |
+
def test_formatter():
|
5 |
+
examples = [
|
6 |
+
("Quality of life update", "КВюаліті оф ліфе юпдате"),
|
7 |
+
("Він украв 20000000 $", "Він украв двадцять мільйонів долар"),
|
8 |
+
("111 000 000 000 доларів державного боргу.", "сто одинадцять мільярдів доларів державного боргу."),
|
9 |
+
("11100000001 доларів державного боргу.", "одинадцять мільярдів сто мільйонів один доларів державного боргу."),
|
10 |
+
("це 19-річне вино.", "це дев'ятнадцять-річне вино."),
|
11 |
+
("10-30-40-50-5-9-5", "десять-тридцять-сорок-п'ятдесят-п'ять-дев'ять-п'ять")
|
12 |
+
]
|
13 |
+
for item in examples:
|
14 |
+
assert preprocess_text(item[0]) == item[1]
|
ukrainian_tts/formatter.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
import num2words
|
2 |
import re
|
3 |
-
from .stress import sentence_to_stress, stress_dict, stress_with_model
|
4 |
|
5 |
|
6 |
def preprocess_text(text, use_autostress_model=False):
|
@@ -77,28 +76,5 @@ def preprocess_text(text, use_autostress_model=False):
|
|
77 |
text = text.replace(english_char.upper(), english[english_char].upper())
|
78 |
text = text.replace(english_char, english[english_char])
|
79 |
|
80 |
-
text = sentence_to_stress(
|
81 |
-
text, stress_with_model if use_autostress_model else stress_dict
|
82 |
-
)
|
83 |
|
84 |
-
return text
|
85 |
-
|
86 |
-
|
87 |
-
if __name__ == "__main__":
|
88 |
-
assert preprocess_text("Quality of life update") == "КВюаліті оф ліфе юпдате"
|
89 |
-
assert (
|
90 |
-
preprocess_text("Він украв 20000000 $") == "Він украв двадцять мільйонів долар"
|
91 |
-
)
|
92 |
-
assert (
|
93 |
-
preprocess_text("111 000 000 000 доларів державного боргу.")
|
94 |
-
== "сто одинадцять мільярдів доларів державного боргу."
|
95 |
-
)
|
96 |
-
assert (
|
97 |
-
preprocess_text("11100000001 доларів державного боргу.")
|
98 |
-
== "одинадцять мільярдів сто мільйонів одна доларів державного боргу."
|
99 |
-
)
|
100 |
-
assert preprocess_text("це 19-річне вино.") == "це дев'ятнадцять-річне вино."
|
101 |
-
assert (
|
102 |
-
preprocess_text("10-30-40-50-5-9-5")
|
103 |
-
== "десять-тридцять-сорок-п'ятдесят-п'ять-дев'ять-п'ять"
|
104 |
-
)
|
1 |
import num2words
|
2 |
import re
|
|
|
3 |
|
4 |
|
5 |
def preprocess_text(text, use_autostress_model=False):
|
76 |
text = text.replace(english_char.upper(), english[english_char].upper())
|
77 |
text = text.replace(english_char, english[english_char])
|
78 |
|
|
|
|
|
|
|
79 |
|
80 |
+
return text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ukrainian_tts/tts.py
CHANGED
@@ -4,6 +4,7 @@ from os.path import exists, join
|
|
4 |
from TTS.utils.synthesizer import Synthesizer
|
5 |
from enum import Enum
|
6 |
from .formatter import preprocess_text
|
|
|
7 |
from torch import no_grad
|
8 |
|
9 |
class Voices(Enum):
|
@@ -55,6 +56,7 @@ class TTS:
|
|
55 |
raise ValueError(f"Invalid value for voice selected! Please use one of the following values: {', '.join([option.value for option in Voices])}.")
|
56 |
|
57 |
text = preprocess_text(text, stress)
|
|
|
58 |
|
59 |
with no_grad():
|
60 |
wavs = self.synthesizer.tts(text, speaker_name=voice)
|
4 |
from TTS.utils.synthesizer import Synthesizer
|
5 |
from enum import Enum
|
6 |
from .formatter import preprocess_text
|
7 |
+
from .stress import sentence_to_stress, stress_dict, stress_with_model
|
8 |
from torch import no_grad
|
9 |
|
10 |
class Voices(Enum):
|
56 |
raise ValueError(f"Invalid value for voice selected! Please use one of the following values: {', '.join([option.value for option in Voices])}.")
|
57 |
|
58 |
text = preprocess_text(text, stress)
|
59 |
+
text = sentence_to_stress(text, stress_with_model if stress else stress_dict)
|
60 |
|
61 |
with no_grad():
|
62 |
wavs = self.synthesizer.tts(text, speaker_name=voice)
|