mulyavinaa commited on
Commit
1779526
·
1 Parent(s): e4d4618

Изменение основной программы для теста нескольких моделей

Browse files
Files changed (1) hide show
  1. run.py +50 -16
run.py CHANGED
@@ -1,27 +1,61 @@
1
- from transformers import pipeline
2
- from datasets import load_dataset
3
- import torch
4
  import streamlit as st
5
 
 
 
 
 
 
 
 
6
  @st.cache_resource
7
- def load_speech_model():
8
- synthesiser = pipeline("text-to-speech", "microsoft/speecht5_tts")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
- embeddings_dataset = load_dataset("Matthijs/cmu-arctic-xvectors", split="validation")
11
- speaker_embedding = torch.tensor(embeddings_dataset[7306]["xvector"]).unsqueeze(0)
12
 
13
- return synthesiser, speaker_embedding
 
 
 
 
 
14
 
15
- def speech_elements():
16
- synthesiser, speaker_embedding = load_speech_model()
 
17
 
18
- text = st.text_area('Enter English text here')
19
- st.write(f'You wrote {len(text)} characters.')
 
 
20
 
21
- if st.button('Speech'):
22
- speech = synthesiser(text, forward_params={"speaker_embeddings": speaker_embedding})
23
 
24
- st.audio(speech['audio'], sample_rate=speech['sampling_rate'])
 
25
 
26
 
27
- speech_elements()
 
 
 
 
1
  import streamlit as st
2
 
3
+ from mulyavin_aa import langdetector
4
+ from mulyavin_aa import translator
5
+
6
+ LANG_DETECTOR = "LANG_DETECTOR"
7
+ TRANSLATOR = "TRANSLATOR"
8
+
9
+
10
  @st.cache_resource
11
+ def load_models() -> dict:
12
+ """
13
+ Получение справочника моделей
14
+ :return: Справочник моделей
15
+ """
16
+ models = dict()
17
+ models[LANG_DETECTOR] = langdetector.load_text_detection_model()
18
+ models[TRANSLATOR] = translator.load_text_translator_model()
19
+
20
+ return models
21
+
22
+
23
+ def main_app():
24
+ """
25
+ Основная программа
26
+ """
27
+
28
+ models = load_models()
29
+
30
+ st.title = 'Домашнее задание'
31
+
32
+ # Оформление заголовка
33
+ st.header('Домашнее задание', divider='gray')
34
 
35
+ input_text = st.text_area(
36
+ 'Введите текст на русском или английском языке и нажмите кнопку генератора:')
37
 
38
+ if st.button('Генерировать!!!'):
39
+ # Определение языка
40
+ text_lang = langdetector.lang_detect(input_text, models[LANG_DETECTOR])
41
+ if text_lang not in ['ru', 'en']:
42
+ st.error('Язык текста не может быть определен')
43
+ return
44
 
45
+ # Перевод языка если не en
46
+ if text_lang in ['ru']:
47
+ input_text = translator.translate_to_en(input_text, models[TRANSLATOR])
48
 
49
+ tab1, tab2, tab3 = st.tabs(['Озвученный текст', 'Таб 2', 'Таб 3'])
50
+ with tab1:
51
+ st.header("Озвученный текст на английском языке")
52
+ # st.audio()
53
 
54
+ with tab2:
55
+ st.header("Таб 2")
56
 
57
+ with tab3:
58
+ st.header("Таб 3")
59
 
60
 
61
+ main_app()