pokung commited on
Commit
e8bdb2f
·
verified ·
1 Parent(s): 9fe26be

Upload 38 files

Browse files
.gitattributes CHANGED
@@ -42,3 +42,17 @@ examples/0x0011ce99.wav filter=lfs diff=lfs merge=lfs -text
42
  examples/0x0011cedc.wav filter=lfs diff=lfs merge=lfs -text
43
  examples/dialogue_1.wav filter=lfs diff=lfs merge=lfs -text
44
  examples/dialogue_9.wav filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  examples/0x0011cedc.wav filter=lfs diff=lfs merge=lfs -text
43
  examples/dialogue_1.wav filter=lfs diff=lfs merge=lfs -text
44
  examples/dialogue_9.wav filter=lfs diff=lfs merge=lfs -text
45
+ examples/generated/0x0006de19.wav filter=lfs diff=lfs merge=lfs -text
46
+ examples/generated/0x0008d8e5.wav filter=lfs diff=lfs merge=lfs -text
47
+ examples/generated/0x000f7780.wav filter=lfs diff=lfs merge=lfs -text
48
+ examples/generated/0x000faf94.wav filter=lfs diff=lfs merge=lfs -text
49
+ examples/generated/0x0011ce99.wav filter=lfs diff=lfs merge=lfs -text
50
+ examples/generated/dialogue_1.wav filter=lfs diff=lfs merge=lfs -text
51
+ examples/generated/dialogue_9.wav filter=lfs diff=lfs merge=lfs -text
52
+ examples/original/0x0006de19.wav filter=lfs diff=lfs merge=lfs -text
53
+ examples/original/0x0008d8e5.wav filter=lfs diff=lfs merge=lfs -text
54
+ examples/original/0x000f7780.wav filter=lfs diff=lfs merge=lfs -text
55
+ examples/original/0x000faf94.wav filter=lfs diff=lfs merge=lfs -text
56
+ examples/original/0x0011ce99.wav filter=lfs diff=lfs merge=lfs -text
57
+ examples/original/dialogue_1.wav filter=lfs diff=lfs merge=lfs -text
58
+ examples/original/dialogue_9.wav filter=lfs diff=lfs merge=lfs -text
examples/generated/0x0006de19.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:22799d5aaf1f1c10bd98b5117585dbf862268336fb0ed43b6213db5014cfd762
3
+ size 200464
examples/generated/0x0008d8e5.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf4cbd5261c35939b2bcd26fbdcc5ee7f4d861986f67feb4b7e1698a8deb3880
3
+ size 214576
examples/generated/0x000f7780.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:daff7d700b3b7da0d4c1d4b1d26ef6a0978ed9bd563d802563fd7535738bfc7f
3
+ size 317124
examples/generated/0x000faf94.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:890b88c846f65fe12ca9f7c25cdb0d6b81c3dba6297ae2f21b9e812a82ef74e1
3
+ size 525982
examples/generated/0x0011ce99.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:381520ad242a2f2b5292117b264706d5f9a8f02d86125dc953742dd725cae514
3
+ size 419672
examples/generated/dialogue_1.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:45d53cc727fe1d3ee851a8cb339e41b201b067094cdbe13b2c98cf2bf54d96de
3
+ size 1763754
examples/generated/dialogue_9.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c6d82ae45a082cdee06a54aed78666506b4570885b8674d83707e2823ba1f975
3
+ size 882044
examples/original/0x0006de19.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:78d3d9bf2995902a256cedb67c88fa8f3e4725163ddd48709cf61c83ebb786fb
3
+ size 537900
examples/original/0x0008d8e5.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9cb598944972483bb3c9df133e2bc924fe3443a4b940646d2b24b7f39f402705
3
+ size 577324
examples/original/0x000f7780.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd85ed67a67c1db412f12405eb43b5d322e5ff6c9e161ee88e863a5109780d2d
3
+ size 973100
examples/original/0x000faf94.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:556bdd4637f233c678f0b9d8b3157e5b0351a8f49817f4d68a5fb5d7e87c3768
3
+ size 2771244
examples/original/0x0011ce99.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d9d5c13b288c6c2a78b1dddd46933311df01fd3a496ec757bf2d02c32b19e83
3
+ size 1364268
examples/original/dialogue_1.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:961b1c704cdf4e8ccfdd9f982c269e0f0daf4d3ca38f8b77fa1c92fc46104dc9
3
+ size 6350444
examples/original/dialogue_9.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a1f4fabe2a34165a458041ffaac972231483ecbd2c2ad828d8ba6886eb3daec
3
+ size 681544
src/__pycache__/utils.cpython-310.pyc ADDED
Binary file (424 Bytes). View file
 
src/content/__pycache__/about_tab.cpython-310.pyc ADDED
Binary file (2.7 kB). View file
 
src/content/__pycache__/about_us_tab.cpython-310.pyc ADDED
Binary file (2.74 kB). View file
 
src/content/__pycache__/contact_tab.cpython-310.pyc ADDED
Binary file (568 Bytes). View file
 
src/content/__pycache__/front_image.cpython-310.pyc ADDED
Binary file (820 Bytes). View file
 
src/content/__pycache__/method_tab.cpython-310.pyc ADDED
Binary file (3.21 kB). View file
 
src/content/__pycache__/results_tab.cpython-310.pyc ADDED
Binary file (3.92 kB). View file
 
src/content/__pycache__/transcription_tab.cpython-310.pyc ADDED
Binary file (2.07 kB). View file
 
src/content/about_tab.py CHANGED
@@ -1,16 +1,26 @@
1
  import gradio as gr
2
 
3
  def about_tab():
4
- with gr.TabItem("ℹ️ **O projekcie**"):
5
- gr.Markdown("## O DubAI")
6
- gr.Markdown("""
7
- DubAI to aplikacja typu end-to-end umożliwiająca:
8
-
9
- - transkrypcję mowy (ASR),
10
- - tłumaczenie na inny język,
11
- - oraz syntezę mowy z zachowaniem brzmienia głosu.
12
 
13
- **Zastosowania:** dubbing gier, AI-asystenci, tworzenie voice-overów.
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
- **Technologie:** Whisper, DeepL, XTTS, Gradio, Python.
16
- """)
 
1
  import gradio as gr
2
 
3
  def about_tab():
4
+ with gr.TabItem("ℹ️ O projekcie"):
5
+ with gr.Column():
6
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎮 Motywacja</div>')
7
+ gr.HTML("""
8
+ <div style="font-size: 18px; font-family: Myriad, sans-serif;">
9
+ Podczas analizy recenzji gier publikowanych na popularnych serwisach, wielokrotnie natrafialiśmy na głosy graczy wyrażających niezadowolenie z braku polskiego dubbingu w produkcjach zagranicznych. Wielu z nich podkreślało, że brak lokalizacji głosowej negatywnie wpływa na immersję i znacznie obniża jakość doświadczenia płynącego z rozgrywki. Zaintrygowani tym problemem postanowiliśmy zgłębić temat. Nasze obserwacje potwierdziły, że główną barierą we wdrażaniu lokalizacji na mniejsze rynki takie jak polski są wysokie koszty oraz długi czas realizacji. W odpowiedzi na tę lukę rynkową podjęliśmy decyzję o stworzeniu systemu do automatycznego generowania dubbingu w języku polskim z wykorzystaniem AI.
10
+ </div>
11
+ """)
12
 
13
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎯 Cel</div>')
14
+ gr.HTML("""
15
+ <div style="font-size: 18px; font-family: Myriad, sans-serif;">
16
+ Celem naszego projektu jest dostarczenie rozwiązania, które znacząco obniży koszty lokalizacji oraz skróci czas jej realizacji, jednocześnie zachowując wysoką jakość audio i naturalność wypowiedzi.
17
+ </div>
18
+ """)
19
+
20
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🛠️ Architektura</div>')
21
+ gr.HTML("""
22
+ <div style="font-size: 18px; font-family: Myriad, sans-serif;">
23
+ Aby osiągnąć nasz cel, opracowaliśmy modularną architekturę systemu umożliwiającego generowanie dubbingu z użyciem nowoczesnych modeli AI. Cały proces został podzielony na trzy główne etapy: przetwarzanie wstępne, tłumaczenie oraz generowanie dźwięku. Każdy z tych komponentów działa niezależnie, co pozwala na łatwą modyfikację lub wymianę modelu na bardziej zaawansowany bez konieczności przebudowy całego potoku przetwarzania.
24
+ </div>
25
+ """)
26
 
 
 
src/content/about_us_tab.py ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+
4
+ def about_us_tab():
5
+ with gr.Tab("👥 O nas"):
6
+ with gr.Column():
7
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">👥 O nas</div>')
8
+
9
+ gr.HTML("""
10
+ <div style="font-size: 18px; font-family: Myriad, sans-serif;">
11
+ Jesteśmy studentami kierunku Sztuczna Inteligencja na Politechnice Wrocławskiej. Projekt DubAI zrealizowaliśmy w ramach zajęć, łącząc naszą pasję do gier komputerowych z chęcią zdobywania nowych umiejętności i pogłębiania wiedzy z zakresu przetwarzania dźwięku i języka naturalnego. Naszym celem było stworzenie narzędzia do generowania dubbingu do gier komputerowych, ze szczególnym uwzględnieniem języka polskiego. Pragniemy dzięki temu zapewnić użytkownikom większą immersję oraz satysfakcję z gry.
12
+ <br><br>
13
+ W skład zespołu wchodzą: Natalia Iwańska, Klaudia Janicka, Wiktor Jeżowski, Kajetan Kołodziejczyk oraz Michał Wiktorowski.
14
+ <br>
15
+ Opiekunami projektu są dr hab. inż. Maciej Piasecki oraz dr inż. Piotr Syga.
16
+ </div>
17
+ """)
18
+
19
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">📩 Kontakt</div>')
20
+
21
+ gr.HTML("""
22
+ <div style="font-size: 18px; font-family: Myriad, sans-serif;">
23
+ <ul>
24
+ <li>
25
+ Natalia Iwańska 📧
26
+ <a href="mailto:262270@student.pwr.edu.pl">262270@student.pwr.edu.pl</a>
27
+ </li>
28
+ <li>
29
+ Klaudia Janicka 📧
30
+ <a href="mailto:262268@student.pwr.edu.pl">262268@student.pwr.edu.pl</a>
31
+ </li>
32
+ <li>
33
+ Wiktor Jeżowski 📧
34
+ <a href="mailto:260426@student.pwr.edu.pl">260426@student.pwr.edu.pl</a>
35
+ </li>
36
+ <li>
37
+ Kajetan Kołodziejczyk 📧
38
+ <a href="mailto:259171@student.pwr.edu.pl">259171@student.pwr.edu.pl</a>
39
+ </li>
40
+ <li>
41
+ Michał Wiktorowski 📧
42
+ <a href="mailto:262330@student.pwr.edu.pl">262330@student.pwr.edu.pl</a>
43
+ </li>
44
+ </ul>
45
+ </div>
46
+ """)
47
+
48
+
src/content/method_tab.py CHANGED
@@ -4,13 +4,13 @@ from src.utils import get_base64_image
4
  def method_tab():
5
  with gr.Tab("⚙️ Metoda"):
6
  with gr.Column(elem_classes="method-tab"):
7
- gr.HTML('<div style="font-size: 40px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">⚙️ Metoda</div>')
8
 
9
  gr.HTML("""
10
  <div style="font-size: 18px; font-family: Myriad, sans-serif;">
11
  Proces rozpoczęto od oczyszczenia nagrań z zakłóceń tła przy użyciu modelu Demucs, który umożliwił skuteczne wydzielenie sygnału mowy. Następnie zastosowano Mossformer2 do separacji mówców, co pozwoliło rozdzielić wypowiedzi różnych osób w nagraniu. Transkrypcja i segmentacja audio zostały przeprowadzone za pomocą modelu Whisper, znanego z wysokiej jakości rozpoznawania mowy. Otrzymane wypowiedzi pogrupowano przy użyciu algorytmu DBSCAN, co ułatwiło identyfikację spójnych segmentów konwersacyjnych.
12
  <br><br>
13
- Do tłumaczenia wykorzystano polski wielojęzyczny model językowy Bielik, który dobrze radzi sobie z przekładem tekstów. Jakość tłumaczeń oceniano przy użyciu metryk COMET, BERTScore i BLEU, zapewniających obiektywną ocenę pod względem zgodności semantycznej i płynności.
14
  <br><br>
15
  Syntezę mowy zrealizowano przy użyciu modelu XTTS-v2, obsługującego 17 języków i umożliwiającego generowanie naturalnego głosu na podstawie jedynie 6-sekundowego nagrania referencyjnego. Został on wybrany ze względu na dobrą jakość dźwięku, szybkość działania oraz lepszą kompatybilność z językiem polskim niż inne dostępne modele. Na końcu przeprowadzono subiektywną ocenę końcowego dźwięku w formie testów odsłuchowych.
16
  <br><br>
@@ -35,26 +35,4 @@ def method_tab():
35
  gr.HTML(schema_html)
36
  gr.HTML('<div style="text-align: center; font-size: 18px; font-family: Myriad, sans-serif;"><strong>Schemat 1.</strong> Przebieg procesu przetwarzania nagrania.</div>')
37
 
38
- gr.HTML('<div style="font-size: 40px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">📊 Wyniki</div>')
39
-
40
- gr.HTML('<div style="font-size: 40px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎵 Nagrania przykładowe</div>')
41
- with gr.Row():
42
- with gr.Column():
43
- gr.Audio("examples/0x000f7780.wav", label="Nagranie 1", type="filepath")
44
- with gr.Column():
45
- gr.Audio("examples/0x000faf94.wav", label="Nagranie 2", type="filepath")
46
- with gr.Row():
47
- with gr.Column():
48
- gr.Audio("examples/0x0006de19.wav", label="Nagranie 3", type="filepath")
49
- with gr.Column():
50
- gr.Audio("examples/0x0008d8e5.wav", label="Nagranie 4", type="filepath")
51
- with gr.Row():
52
- with gr.Column():
53
- gr.Audio("examples/0x0011ce99.wav", label="Nagranie 5", type="filepath")
54
- with gr.Column():
55
- gr.Audio("examples/0x0011cedc.wav", label="Nagranie 6", type="filepath")
56
- with gr.Row():
57
- with gr.Column():
58
- gr.Audio("examples/dialogue_1.wav", label="Dialog 1", type="filepath")
59
- with gr.Column():
60
- gr.Audio("examples/dialogue_9.wav", label="Dialog 2", type="filepath")
 
4
  def method_tab():
5
  with gr.Tab("⚙️ Metoda"):
6
  with gr.Column(elem_classes="method-tab"):
7
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">⚙️ Metoda</div>')
8
 
9
  gr.HTML("""
10
  <div style="font-size: 18px; font-family: Myriad, sans-serif;">
11
  Proces rozpoczęto od oczyszczenia nagrań z zakłóceń tła przy użyciu modelu Demucs, który umożliwił skuteczne wydzielenie sygnału mowy. Następnie zastosowano Mossformer2 do separacji mówców, co pozwoliło rozdzielić wypowiedzi różnych osób w nagraniu. Transkrypcja i segmentacja audio zostały przeprowadzone za pomocą modelu Whisper, znanego z wysokiej jakości rozpoznawania mowy. Otrzymane wypowiedzi pogrupowano przy użyciu algorytmu DBSCAN, co ułatwiło identyfikację spójnych segmentów konwersacyjnych.
12
  <br><br>
13
+ Do tłumaczenia wykorzystano polski wielojęzyczny model językowy Bielik, który efektywnie przekłada teksty zachowując ich znaczenie. Unikalnym aspektem naszego podejścia jest uwzględnianie kontekstu w postaci sąsiadujących fragmentów dialogu — zarówno wypowiedzi poprzedzających, jak i następujących po tłumaczonym fragmencie. Jakość tłumaczeń jest oceniana automatycznie za pomocą metryk takich jak COMET, BERTScore i BLEU, które zapewniają obiektywną ocenę pod kątem zgodności semantycznej oraz płynności tłumaczonego tekstu.
14
  <br><br>
15
  Syntezę mowy zrealizowano przy użyciu modelu XTTS-v2, obsługującego 17 języków i umożliwiającego generowanie naturalnego głosu na podstawie jedynie 6-sekundowego nagrania referencyjnego. Został on wybrany ze względu na dobrą jakość dźwięku, szybkość działania oraz lepszą kompatybilność z językiem polskim niż inne dostępne modele. Na końcu przeprowadzono subiektywną ocenę końcowego dźwięku w formie testów odsłuchowych.
16
  <br><br>
 
35
  gr.HTML(schema_html)
36
  gr.HTML('<div style="text-align: center; font-size: 18px; font-family: Myriad, sans-serif;"><strong>Schemat 1.</strong> Przebieg procesu przetwarzania nagrania.</div>')
37
 
38
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/content/results_tab.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from pathlib import Path
3
+
4
+
5
+ def get_files(dir_name):
6
+ path = Path(__file__).resolve().parents[2] / 'examples' / dir_name
7
+ files = sorted(path.glob("*.wav"))
8
+ return files
9
+
10
+ ORIGINAL = get_files('original')
11
+ GENERATED = get_files('generated')
12
+
13
+ def results_tab():
14
+ with gr.Tab("📊 Wyniki"):
15
+ with gr.Column(elem_classes="results-tab"):
16
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎵 Przykłady dubbingu</div>')
17
+ with gr.Row():
18
+ gr.HTML('<div style="font-size: 20px; font-family: Myriad, sans-serif; font-weight: bold; text-align: center;">Oryginalne nagranie</div>')
19
+ gr.HTML('<div style="font-size: 20px; font-family: Myriad, sans-serif; font-weight: bold; text-align: center;">Wygenerowany dubbing</div>')
20
+ for file1, file2 in zip(ORIGINAL, GENERATED):
21
+ with gr.Row():
22
+ with gr.Column():
23
+ gr.Audio(file1, label='Oryginał', type="filepath")
24
+ with gr.Column():
25
+ gr.Audio(file2, label='Wygenerowany', type="filepath")
26
+
27
+ gr.HTML('<br><br>')
28
+
29
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">Przykłady wpływu kontekstu na tłumaczenie</div>')
30
+ gr.HTML("""
31
+ <div style="display:flex; gap:20px; flex-wrap: wrap; color:#000;">
32
+
33
+ <div style="flex:1; background-color:#f5f5f5; color:#000; border:2px solid black; border-radius:20px; padding:15px; min-width:300px;">
34
+ <h3 style="color:#000;">Przykład 1</h3>
35
+ <b>Dialog:</b><br>
36
+ <div style="background-color:#e0e0e0; border-radius:10px; padding:10px; margin-top:5px; margin-bottom:10px; color:#000;">
37
+ Troll - Ick metal. Mouth stings.<br>
38
+ Lambert - <b style="color:black;">You nuts?!</b><br>
39
+ Geralt - Shut up and follow my lead.
40
+ </div>
41
+ <b style="color:black;">Oryginalne:</b> Zwariowałeś?! ⭐<br>
42
+ <b style="color:black;">Bez kontekstu:</b> Ty orzeszku?! <span>👎</span><br>
43
+ <b style="color:black;">Z kontekstem:</b> <b style="color:black;">Czy ty zwariowałeś?!</b> ✅
44
+ </div>
45
+
46
+ <div style="flex:1; background-color:#f5f5f5; color:#000; border:2px solid black; border-radius:20px; padding:15px; min-width:300px;">
47
+ <h3 style="color:#000;">Przykład 2</h3>
48
+ <b>Dialog:</b><br>
49
+ <div style="background-color:#e0e0e0; border-radius:10px; padding:10px; margin-top:5px; margin-bottom:10px; color:#000;">
50
+ Yennefer - Philippa, your eyesight, only just recovered and magically simulated. Didn’t you say you’d need some time to get accustomed?<br>
51
+ Philippa Eilhart - <b style="color:black;">Did I?</b><br>
52
+ Yennefer - I’d forgotten how irritating she can be. Come, Ciri.
53
+ </div>
54
+ <b style="color:black;">Oryginalne:</b> Tak mówiłam? ⭐<br>
55
+ <b style="color:black;">Bez kontekstu:</b> Czy ja? <span style="color:black;">👎</span><br>
56
+ <b style="color:black;">Z kontekstem:</b> <b style="color:black;">Czy ja tak powiedziałam?</b> ✅
57
+ </div>
58
+ </div>
59
+ """)
60
+
61
+
62
+
src/content/transcription_tab.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  def transcription_tab(full_pipeline):
4
  with gr.Tab("🎙️ Aplikacja"):
5
  with gr.Column(elem_classes="method-tab"):
6
- gr.HTML('<div style="font-size: 40px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎙️ Aplikacja</div>')
7
  gr.HTML("""
8
  <div style="font-size: 18px; font-family: Myriad, sans-serif;">
9
  Jesteś ciekawy, jak Twój głos brzmi w innym języku? Możesz to sprawdzić! W ramach projektu udostępniamy wersję demonstracyjną naszej aplikacji. Wystarczy nagrać swoją wypowiedź w języku polskim, a aplikacja automatycznie przetłumaczy ją na język angielski i wygeneruje syntezę głosu. Wystarczy kliknąć przycisk "Uruchom", aby rozpocząć proces.
 
3
  def transcription_tab(full_pipeline):
4
  with gr.Tab("🎙️ Aplikacja"):
5
  with gr.Column(elem_classes="method-tab"):
6
+ gr.HTML('<div style="font-size: 35px; font-family: Myriad, sans-serif; font-weight: bold; text-align: left;">🎙️ Aplikacja</div>')
7
  gr.HTML("""
8
  <div style="font-size: 18px; font-family: Myriad, sans-serif;">
9
  Jesteś ciekawy, jak Twój głos brzmi w innym języku? Możesz to sprawdzić! W ramach projektu udostępniamy wersję demonstracyjną naszej aplikacji. Wystarczy nagrać swoją wypowiedź w języku polskim, a aplikacja automatycznie przetłumaczy ją na język angielski i wygeneruje syntezę głosu. Wystarczy kliknąć przycisk "Uruchom", aby rozpocząć proces.
src/models/__pycache__/asr.cpython-310.pyc ADDED
Binary file (1.55 kB). View file
 
src/models/__pycache__/pipeline.cpython-310.pyc ADDED
Binary file (756 Bytes). View file
 
src/models/__pycache__/translation.cpython-310.pyc ADDED
Binary file (1.11 kB). View file
 
src/models/tts/__pycache__/xtts.cpython-310.pyc ADDED
Binary file (1.21 kB). View file