Den4ikAI commited on
Commit
9b09053
1 Parent(s): eb5ea38

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -11
app.py CHANGED
@@ -1,38 +1,42 @@
1
  import gradio as gr
2
  from infer_onnx import TTS
3
- from ruaccent import RUAccent # https://huggingface.co/TeraTTS/accentuator
4
 
5
- title = "GitHub with models: https://github.com/Tera2Space/RUTTS"
 
6
 
 
7
  models = ["TeraTTS/natasha-g2p-vits", "TeraTTS/glados2-g2p-vits"]
8
 
9
- models = {k:TTS(k) for k in models}
 
10
 
 
11
  accentizer = RUAccent(workdir="./model/ruaccent")
12
  accentizer.load(omograph_model_size='medium', dict_load_startup=True)
13
 
14
-
15
  def process_text(text: str) -> str:
16
  text = accentizer.process_all(text)
17
  return text
18
 
19
- def text_to_speech(model_name, lenght_scale, text, prep_text):
 
20
  if prep_text:
21
  text = process_text(text)
22
- audio = models[model_name](text, lenght_scale=lenght_scale)
23
  models[model_name].save_wav(audio, 'temp.wav')
24
 
25
  return 'temp.wav', f"Обработанный текст: '{text}'"
26
 
 
27
  model_choice = gr.Dropdown(choices=list(models.keys()), value="TeraTTS/natasha-g2p-vits", label="Выберите модель")
28
  input_text = gr.Textbox(label="Введите текст для синтеза речи")
29
- prep_text = gr.Checkbox(label="Предобработать", info="Хотите пред обработать текст?(Ударения, ё)", value=True)
30
- lenght_scale = gr.Slider(minimum=0.1, maximum=2.0, label="Lenght Scale(увеличить длину звучания) Default: 1.2", value=1.2)
31
 
32
  output_audio = gr.Audio(label="Аудио", type="numpy")
33
  output_text = gr.Textbox(label="Обработанный текст")
34
 
35
- iface = gr.Interface(fn=text_to_speech, inputs=[model_choice, lenght_scale, input_text, prep_text], outputs=[output_audio, output_text], title=title)
36
  iface.launch()
37
-
38
-
 
1
  import gradio as gr
2
  from infer_onnx import TTS
3
+ from ruaccent import RUAccent # https://huggingface.co/TeraTTS/accentuator
4
 
5
+ # Заголовок и ссылка на репозиторий с моделями
6
+ title = "Ссылка на репозиторий с моделями: https://github.com/Tera2Space/RUTTS"
7
 
8
+ # Список моделей TTS для выбора
9
  models = ["TeraTTS/natasha-g2p-vits", "TeraTTS/glados2-g2p-vits"]
10
 
11
+ # Создаем словарь моделей и инициализируем их
12
+ models = {k: TTS(k) for k in models}
13
 
14
+ # Создаем объект для акцентуации текста
15
  accentizer = RUAccent(workdir="./model/ruaccent")
16
  accentizer.load(omograph_model_size='medium', dict_load_startup=True)
17
 
18
+ # Функция для предобработки текста (акцентуация и ё)
19
  def process_text(text: str) -> str:
20
  text = accentizer.process_all(text)
21
  return text
22
 
23
+ # Функция для синтеза речи
24
+ def text_to_speech(model_name, length_scale, text, prep_text):
25
  if prep_text:
26
  text = process_text(text)
27
+ audio = models[model_name](text, length_scale=length_scale)
28
  models[model_name].save_wav(audio, 'temp.wav')
29
 
30
  return 'temp.wav', f"Обработанный текст: '{text}'"
31
 
32
+ # Создание интерфейса Gradio
33
  model_choice = gr.Dropdown(choices=list(models.keys()), value="TeraTTS/natasha-g2p-vits", label="Выберите модель")
34
  input_text = gr.Textbox(label="Введите текст для синтеза речи")
35
+ prep_text = gr.Checkbox(label="Предобработать", info="Хотите предобработать текст? (ударения, ё)", value=True)
36
+ length_scale = gr.Slider(minimum=0.1, maximum=2.0, label="Length scale (увеличить длину звучания) По умолчанию: 1.2", value=1.2)
37
 
38
  output_audio = gr.Audio(label="Аудио", type="numpy")
39
  output_text = gr.Textbox(label="Обработанный текст")
40
 
41
+ iface = gr.Interface(fn=text_to_speech, inputs=[model_choice, length_scale, input_text, prep_text], outputs=[output_audio, output_text], title=title)
42
  iface.launch()