Charakteristika projektu

Voice Assist

Hlasoví asistenti sú v dnešnej dobe veľmi rozšírení. Vo firmách, ale aj v domácnostiach si našli svoje uplatnenie. Pri vyhľadávaní informácii i vykonávaní rôznorodých činností pri IoT sú veľmi užitočními asistentami.

Naša práca

Naša práca pri hlasových asistentoch je vytvorenie takého hlasového asistenta, ktorý dokáže komunikovať s používateľom v slovenskom jazyku, pričom sa dokáže pomocou doplňovacích otázok učiť a zodpovedať aj na nové otázky/dopyty.

Riešenie

Vytvárame "bota" - asistenta, ktorý sa tak sa stáva plnohodnotným asistentom pri každodennej práci používateľa.

Tím 17 - Micro Speech

Tím pozostáva zo siedmich členov a vedúceho tmu.

Ing. Karol Rástočný, PhD.

  • Vedúci tmu

Ján Čegiň

  • Java (JEE, Spring, Dropwizard, Swagger,..), Scala

Daniel Mišík

  • Java, JEE, Spring

Martin Dzik

  • C#, .NET

Martin Brezáni

  • Java, C++, Neural Networks

Lukáš Madzik

  • Big Data - Kafka, Scala, Java, Spark..

Lukáš Kotuláč

  • Java, Neural Networks

Marek Pizner

  • Java, Neural Networks, Python

Všetci členovia sú študenti STU FIIT.

Progres

Šprint 1 - eM.Bečka

Setup nástrojov

Rozhodnutie o používaných nástrojoch pri tímovom projekte. Rozdelenie úloh pre výskum ohľadom technológii, ktoré sa na projekte použijú. Taktiež sme začali skúmať existujúce technológie, ktoré by nám umožnili prácu pri ďalšom vývoji.

Šprint 2 - Číslo na Kapustíka

Vytvorenie základných modulov

Rozdelenie taskov pre vytvorenie základnych modulov a napojenie na Google Speech API recognition. Prototypovanie WebRTC, Skype API a Skype for Bussiness API. Prepojenie jednotlivých modulov.

Šprint 3 - Ja nie som odborník

Zmena architektúry a vytvorenie základnych modulov 2

Dohodli sme sa productownerom na architektúre - Klient v node.js a react.js napojený na server pomocou websocketu. Server pozostáva z NLP a AI modulu, kde middleware komunikácia ide cez WebRTCServer - P2P discovery server. Samotné moduly na servery budú poprepájané pomocou Kafky.

Šprint 4 - Prehľadávanie do hĺbky s návratom

Dokončenie modulov, finalizácia dokumentácie a príprava bazy znalostí

Kvôli neúspechu z minulého šprintu sme sa rozhodli prenechať dokončenie modulov na tento šprint. Namiesto typescriptu sme sa rozhodli pre React.JS s javascriptom, dokončili sme pre neho metodiky a tiež sfinišovali server. V pláne je aj vytvorenie CI pre klienta aj server. Následne chcem urobiť prieskum TensorFlow a tiež vytvoriť DB štruktúru pre našu bázu znalostí.

Šprint 5 - To be my Valentino

Vytvorenie modulov na logovanie, knowledge base a príprava na neurónové siete.

Aj napriek veľkému úsiliu naša práca v tíme nebola ideálna a museli sme zamakať. Bolo potrebné začať rozoberať neurónové siete a pomali si zistovať, aké konfigurácie by pre nás boli výhodné. Neúspech zaznamenávania hlasu na klientovi znamenal premiestnenie nahrávania a streamovania na Google Speech API na server. Bolo potrebné dokončiť logovacie moduly či modul na logovanie AI činnosti. Takisto sme sa rozhodli vytvoriť základ pre knowledge base.

Šprint 6 - Ladislav Satko - vyhodi ťa hladko!

Spájanie modulov a update dokumentácie

AI modul sme napojili na KB a otestovali celú integráciu. Zhodnotili sme, že musíme vylepšiť jednotlivé moduly - refaktor a odchytávanie chýb. Doplnili sme dokumentáciu pre odovzdanie a následne aj naplánovali prácu pre ďalší intenzívny jednotýždňový šprint.

Šprint 7 - Vandine multilanguálne otázky

Refaktor, úklid a neurónky

Začali sme s neurónkami - jednoduchá klasifikácia, kde skúšame použiť dataset vtipov. Zrefaktorovali sme jednotlivé moduly, použili logovanie, lepší try/catch a zrýchlili sme celý proces. Ďalší šprint sme naplánovali rekurentné neurónky + LSTM a tiež CI pri merge requestoch, vylepšenie klienta a nájsť lepší dataset.

Šprint 8 - Šteiny WebServices

Neurónky, datasety a zálohy

Pokračovali sme s neurónkami, pričom sme sa sústredili na Rekurentné neurónové siete a encoder-decoder. Následne sme sa tiež snažili vytvoriť si vlastný dataset, ktorý by nám mohol byť užitočný pri práci s neurónkami, keďže sme si neboli istý, či budeme mať nejaký dataset k dispozícii. Tiež sme urobili zálohu servera.

Šprint 9 - Metodiky s Butt Spencerom

GUI pre dataset a integrácia CI pre merge requesty

Vytvorili sme GUI nástroj pre prácu s našou databázou, ktorý slúžil ako databázový admin nad týmto datasetom. Tiež sme pofixovali nejaké minor bugy a vytvorili CI pre merge requesty, či prechádzajú testy.

Šprint 10 - Nebudeme to hrotiť

Refaktor a základ chatbotta

Náš klient si prešiel refaktorom ako funkčným tak aj vizuálnym a vyzerá omnoho lepšie. Takisto sme vytvorili základ pre chatbotta, keďže kvôli tomu, že nemáme žiaden dataset k dispozícii, sme sa rozhodli použiť alternatívny spôsob pomocou chatbotta a full text searchu s pomocou NLP.

Šprint 11 - Prosíme Karola na kolenách

Bug fixing a finalizácia

Zlepšili sme Full Text Search, NLP modul, oddelili sme logiku volania API skriptov tak, aby sa dali jednoducho meniť a používať pomocou admina na dataset, ktorý sa predtým vytvoril. Vytvorili sme scenáre beta testovanie a dokončili sme dokumentáciu.

Dokumenty

zapisnice zo stretnutí

Zápisnica Dátum Zapisovateľ Súbor [Odkaz na OneDrive]
1 2017-09-26 Lukáš Madzik
2 2017-09-29 Lukáš Madzik
3 2017-10-06 Ján Čegiň
4 2017-10-13 Daniel Mišík
5 2017-10-20 Lukáš Kotuláč
6 2017-10-27 Martin Brezáni
7 2017-11-03 Martin Dzik
8 2017-11-10 Ján Čegiň
9 2017-11-17 Daniel Mišík
10 2017-11-24 Marek Pizner
11 2017-12-01 Martin Dzik
12 2018-02-08 Ján Čegiň
13 2018-02-13 Martin Dzik
14 2018-02-20 Martin Brezáni
15 2018-02-27 Marek Pizner
16 2018-03-13 Lukáš Madzik
17 2018-03-20 Martin Brezáni
18 2018-04-10 Martin Dzik
19 2018-04-17 Daniel Mišík

Dokumenty

Metodiky a Big Picture

Názov metodiky Tvorca Súbor [Odkaz na OneDrive]
Big Picture Tím 17
Technická dokumentácia Tím 17
Metodika kódovacieho štandartu pre Javascript Daniel Mišík
Metodika pre code review Martin Dzik
Metodika pre issue managment Lukáš Madzik
Metodika pre prácu s dokumentami Lukáš Madzik
Metodika pre prácu s kafkou Lukáš Madzik
Metodika testovania pre Javascript Daniel Mišík
Metodika kódovacieho štandartu pre Python Ján Čegiň
Metodika testovania pre Python Martin Brezáni
Metodika verzovania zdrojového kódu Marek Pizner

Inštalačné príručky

Názov príručky Tvorca Súbor [Odkaz na OneDrive]
AI modul Tím 17
Intent admin Tím 17
Microservice modul Tím 17
NLP modul Tím 17
Inštalácia a naplnenie databázy Tím 17
Inštalácia redis Tím 17
WebRTC klient Tím 17
WebRTC server Tím 17

Kontakt


Slovenská technická univerzita v Bratislave
Fakulta informatiky a informačních technolgií
Ilkovičova 2, 842 16 Bratislava 4