import gradio as gr from pathlib import Path from src.utils import get_base64_image def get_files(dir_name): path = Path(__file__).resolve().parents[2] / 'examples' / dir_name files = sorted(path.glob("*.wav")) return files ORIGINAL = get_files('original') GENERATED = get_files('generated') def results_tab(): with gr.Tab("📊 Wyniki"): with gr.Column(elem_classes="results-tab"): gr.HTML('
🎵 Przykłady dubbingu
') gr.HTML("""
Poniżej przedstawiamy efekty naszego rozwiązania — przykładowe pary nagrań oryginalnych i wygenerowanych. Wśród nich znajdują się zarówno nagrania pojedyńczych wypowiedzi, jak i rozbudowane dialogi z muzyką w tle. Poszczególne wypowiedzi można odsłuchać, klikając na przycisk uruchamiający odtwarzacz audio.
""") with gr.Row(): gr.HTML('
Oryginalne nagranie
') gr.HTML('
Wygenerowany dubbing
') for file1, file2 in zip(ORIGINAL, GENERATED): with gr.Row(): with gr.Column(): gr.Audio(file1, label='Oryginał', type="filepath") with gr.Column(): gr.Audio(file2, label='Wygenerowany', type="filepath") gr.HTML('

') # WPŁYW KONTEKSTU NA TŁUMACZENIE gr.HTML('
🈲 Przykłady wpływu kontekstu na tłumaczenie
') gr.HTML("""
Poniżej prezentujemy przykłady tłumaczeń wykonanych bez kontekstu oraz z uwzględnieniem kontekstu wypowiedzi. Zestawienie to ma na celu zilustrowanie, jak istotny wpływ na jakość i poprawność tłumaczenia może mieć kontekst w postaci wypowiedzi poprzedzającej i następującej po tłumaczonym fragmencie. Dzięki temu można zaobserwować różnice w interpretacji znaczenia, doborze słownictwa oraz płynności przekładu w zależności od dostępnych informacji kontekstowych.
""") gr.HTML("""

Przykład 1

Dialog:
Troll — Ick metal. Mouth stings.
Lambert — You nuts?!
Geralt — Shut up and follow my lead.
Oryginalne: Zwariowałeś?! ⭐
Bez kontekstu: Ty orzeszku?!
Z kontekstem: Czy ty zwariowałeś?!

Przykład 2

Dialog:
Yennefer — Philippa, your eyesight, only just recovered and magically simulated. Didn’t you say you’d need some time to get accustomed?
Philippa Eilhart — Did I?
Yennefer — I’d forgotten how irritating she can be. Come, Ciri.
Oryginalne: Tak mówiłam? ⭐
Bez kontekstu: Czy ja?
Z kontekstem: Czy ja tak powiedziałam?

Przykład 3

Dialog:
Chamberlain Emhyr — Bow before His Imperial Majesty, The White Flame Dancing on the Graves of his Foes, Emhyr var Emreis!
Chamberlain Emhyr — Bow.
Emhyr — I thought you bowed before no man.
Oryginalne: Ukłon. ⭐
Bez kontekstu: Łuk.
Z kontekstem: Ukłon.

Przykład 4

Dialog:
Keira Metz — Find him immediately. We’re close to unraveling this, I can feel it.
Keira Metz — What was that? It sounded for a moment like you’d joined the wraiths yourself...
Geralt — Had to fight a pesta.
Oryginalne: Co to było? Brzmiało, jakbyś postanowił dołączyć do drużyny upiorów... ⭐
Bez kontekstu: Co to było? Brzmiało przez chwilę, jakbyś dołączył do cieni sam
Z kontekstem: Co to było? Na chwilę brzmiało to tak, jakbyś sam dołączył do upiorów...
""") gr.HTML('

') # MOS gr.HTML('
📋 Test MOS') gr.HTML("""
Jednym z najważniejszych wyznaczników jakości mowy syntetycznej jest opinia drugiego człowieka. W tym celu przeprowadziliśmy test MOS (ang. Mean Opinion Score), który polega na subiektywnej ocenie jakości dźwięku przez słuchaczy. W badaniu wzięło udział 63 uczestników, którzy mieli za zadanie wysłuchać fragmentów nagrań i ocenić je w skali od 1 do 5, gdzie 1 oznaczało bardzo niską jakość, a 5 bardzo wysoką. Sprawdzona została zarówno naturalność wygenerowanego dźwięku (nMOS), jak i jakość transferu cech mowy (sMOS).

W tabeli przedstawiamy średnie wyniki testów nMOS i sMOS, zarówno dla tłumaczenia z języka angielskiego na polski, jak i odwrotnie. Rezultaty są w obu przypadkach na wysokim poziomie, aczkolwiek nieco gorsze wyniki uzyskano dla syntezy z języka angielskiego na polski. Wynika to głównie ze złożoności fleksyjnej języka polskiego oraz znacznie mniejszego wsparcia modeli dla tego języka. Na wykresach przedstawiono szczegółowy rozkład ocen dla nMOS i sMOS.


EN → PL PL → EN
nMOS 4,02 4,38
sMOS 4,08 4,51
Średnie wyniki testu MOS.
""") gr.HTML(""" """) img_nmos = get_base64_image("assets/nmos.png") img_smos = get_base64_image("assets/smos.png") imgs_with_labels = f"""
nmos
Wyniki testu nMOS.
smos
Wyniki testu sMOS.
""" gr.HTML(imgs_with_labels)