Video microservice
Video microservice je mikroslužba zodpovedná za spracovanie audiovizuálnych záznamov z prednášok, ktoré by sa mali v budúcnosti stať súčasťou univerzitnej knižnice ELVIRA. Hlavná funkcionalita spočíva v extrakcii audia z videozáznamov a jeho následného prepisu do textovej podoby s podporou rôznych jazykov.
Na prácu s videom sme použili Python knižnicu moviepy, pomocou ktorej extrahujeme audio. Extrahované audio je uložené do dočasného súboru vo formáte .mp3, ktorý je po jeho spracovaní odstránený.
Na samotný prepis textu používame model neurónovej siete Whisper large-v3, ktorý je dostupný na platforme Hugging Face. Ide o robustný state-of-the-art model, ktorý podporuje až 99 jazykov a má vysokú schopnosť generalizácie, čo mu umožňuje efektívne fungovať v rôznych doménach a kontextoch. Avšak, architektúra mikroslužby umožňuje integrovať aj iné modely, ktoré sú súčasťou Hugging Face. Model použitý na prepis textu možno nastavovať pomocou environmentálnej premennej, pričom vybraný model musí byť implementovaný v rámci mikroslužby ako trieda vychádzajúca z rozhrania definujúceho modely so všetkými potrebnými metódami.
UML diagram
Vzťahy medzi hlavnými triedami mikroslužby sme znázornili pomocou UML diagramu nižšie. Tento diagram obsahuje nasledujúce elementy:
- ModelInterface - abstraktné rozhranie, ktoré definuje metódu audio_to_text
- Whisper - predstavuje príklad modelu na transkripciu audia, ktorý je implementovaný pomocou rozhrania ModelInterface
- AudioExtractor - obsahuje metódu extract_audio, ktorá spracováva video a extrahuje z neho audio
- AudioProcessor - spracováva audio a používa zvolený model (napr. Whisper) na prepis audia na text
- VideoService - hlavná trieda, ktorá zabezpečuje celý proces: volá AudioExtractor na získanie audia a AudioProcessor na jeho prepis
Sekvenčný diagram
Sekvenčným diagramom sme znázornili postupnosť volaní medzi komponentmi mikroslužby. Poskytuje prehľad o dynamickej interakcii medzi jednotlivými časťami mikroslužby počas jej behu:
- Používateľ poskytne cestu k videozáznamu.
- V rámci main funkcie VideoService inicializuje proces spracovania.
- AudioExtractor extrahuje audio z videozáznamu.
- AudioProcessor získava transkripciu extrahovaného audia využitím príslušného modelu, napr. Whisper.
- Výsledkom procesu je transkripcia audia vo forme textu.