Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,23 +1,17 @@
|
|
1 |
import gradio as gr
|
2 |
from infer import inference
|
3 |
import unicodedata
|
4 |
-
import regex
|
5 |
|
6 |
description = '''
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
'''
|
11 |
|
12 |
# Дополнительные функции для конвертации текста
|
13 |
def normalize_text(text):
|
14 |
return unicodedata.normalize('NFC', text)
|
15 |
|
16 |
-
def remove_combining_chars(text):
|
17 |
-
decomposed = unicodedata.normalize('NFD', text)
|
18 |
-
filtered = ''.join(c for c in decomposed if unicodedata.category(c) != 'Mn')
|
19 |
-
return unicodedata.normalize('NFC', filtered)
|
20 |
-
|
21 |
def convert_accented_text(text):
|
22 |
result = ""
|
23 |
for char in text:
|
@@ -50,9 +44,9 @@ def preprocess_text(text, should_add_pauses, convert_accent):
|
|
50 |
# Функция синтеза речи
|
51 |
def synthesise(text, speed, steps, progress=gr.Progress()):
|
52 |
if text.strip() == "":
|
53 |
-
raise gr.Error("
|
54 |
if len(text) > 50000:
|
55 |
-
raise gr.Error("
|
56 |
|
57 |
print("*** saying ***")
|
58 |
print(text)
|
@@ -69,21 +63,21 @@ if __name__ == "__main__":
|
|
69 |
with gr.Blocks() as demo:
|
70 |
gr.Markdown(description)
|
71 |
|
72 |
-
text_input = gr.Textbox(label='
|
73 |
-
speed_slider = gr.Slider(label='
|
74 |
-
steps_slider = gr.Slider(label='
|
75 |
|
76 |
# Чекбоксы для обработки текста
|
77 |
-
add_pauses_checkbox = gr.Checkbox(label="
|
78 |
-
convert_accent_checkbox = gr.Checkbox(label="
|
79 |
|
80 |
# Кнопка для конвертации текста
|
81 |
-
convert_button = gr.Button("
|
82 |
-
convert_output = gr.Textbox(label="
|
83 |
|
84 |
# Кнопка для синтеза речи
|
85 |
-
synthesize_button = gr.Button("
|
86 |
-
output_audio = gr.Audio(label="
|
87 |
|
88 |
# Связываем кнопки с функциями
|
89 |
convert_button.click(
|
|
|
1 |
import gradio as gr
|
2 |
from infer import inference
|
3 |
import unicodedata
|
|
|
4 |
|
5 |
description = '''
|
6 |
+
Программа может не корректно определять некоторые ударения и не преобразует цифры, акронимы и разные сокращения в словесную форму.
|
7 |
+
Если ударение неправильно, используйте символ + после ударного слога.
|
8 |
+
Также очень короткие фразы могут вызывать сбои, поэтому пишите не одно-два слова, а что-то большее.
|
9 |
'''
|
10 |
|
11 |
# Дополнительные функции для конвертации текста
|
12 |
def normalize_text(text):
|
13 |
return unicodedata.normalize('NFC', text)
|
14 |
|
|
|
|
|
|
|
|
|
|
|
15 |
def convert_accented_text(text):
|
16 |
result = ""
|
17 |
for char in text:
|
|
|
44 |
# Функция синтеза речи
|
45 |
def synthesise(text, speed, steps, progress=gr.Progress()):
|
46 |
if text.strip() == "":
|
47 |
+
raise gr.Error("Вы должны ввести текст")
|
48 |
if len(text) > 50000:
|
49 |
+
raise gr.Error("Текст должен быть меньше 50k символов")
|
50 |
|
51 |
print("*** saying ***")
|
52 |
print(text)
|
|
|
63 |
with gr.Blocks() as demo:
|
64 |
gr.Markdown(description)
|
65 |
|
66 |
+
text_input = gr.Textbox(label='Текст:', lines=5, max_lines=10)
|
67 |
+
speed_slider = gr.Slider(label='Скорость:', maximum=1.3, minimum=0.7, value=1.0)
|
68 |
+
steps_slider = gr.Slider(label='Количество шагов диффузии:', minimum=3, maximum=20, step=1, value=3)
|
69 |
|
70 |
# Чекбоксы для обработки текста
|
71 |
+
add_pauses_checkbox = gr.Checkbox(label="Добавить паузы")
|
72 |
+
convert_accent_checkbox = gr.Checkbox(label="Преобразовать акценты")
|
73 |
|
74 |
# Кнопка для конвертации текста
|
75 |
+
convert_button = gr.Button("Преобразовать текст")
|
76 |
+
convert_output = gr.Textbox(label="Преобразованный текст")
|
77 |
|
78 |
# Кнопка для синтеза речи
|
79 |
+
synthesize_button = gr.Button("Синтезировать речь")
|
80 |
+
output_audio = gr.Audio(label="Аудио", autoplay=False, streaming=False, type="numpy")
|
81 |
|
82 |
# Связываем кнопки с функциями
|
83 |
convert_button.click(
|