Programatorul care dezvolta un tool de search pentru TV

Programatorul care dezvolta un tool de search pentru TV

Il cheama Marius Ionescu si lucreaza din Bucuresti pentru un start-up din Marea Britanie. In foarte putinu-i timp liber, Marius creste Telize, o aplicatie care indexeaza activitatile audio-vizuale ale posturilor TV din Romania. Un fel de Google search pentru TV, asa-i zice si el.

In timpul asta, Marius a ajuns si pe taramul spoturilor comerciale unde a sedimentat niste functionalitati bine venite. Implementate deja sau soon-to-be, ele includ detectia spoturilor si logo-urilor brandurilor din baza de date a aplicatiei sau detectia de reclama mascata. N-ar fi prea dificila nici detectia de persoane.

Odata detectate, Telize asaza informatiile frumos in rapoarte si grafice, gata sa fie interpretate de cunoscatori. 

Totul e inca in faza de development, iar Marius are acum nevoie de cea mai pretioasa resursa din lume (discutabil in unele cercuri) si, anume, feedback-ul. Pe care il primeste bucuros pe mail sau via Trello.

Mai jos, el explica demersurile Telize indeaproape, pentru fratii si surorile lui din programare, dar si mai din avion, pentru noi, restul, care reusim sa apreciem mai degraba ideea si functionalitatea.

 

Ideea unui tool de monitorizare media

Ocupatia mea de zi cu zi este de programator si lucrez ca tech lead intr-un start-up din UK, in domeniul publicitatii online.
Cuvantul publicitate este doar un accident de suprapunere intre cele doua proiecte, ele neavand nimic in comun. 

Nu sunt un consumator aprig al televiziunilor din Romania, insa trebuie sa recunosc ca sunt cateva posturi TV, si mai cu seama cateva emisiuni TV, pe care le mai urmaresc, suficient pentru a-mi da seama ca lucrurile nu sunt limpezi. Consumatorul are acces la putina informatie referitoare la structure programelor si in general la reteta emisiunilor.

Daca ar fi sa fac o comparatie as zice ca e ca si cum ai cumpara produse alimentare din magazin, dar fara sa poti citi lista de ingrediente de pe eticheta.

 

Un Google search pentru TV accesibil

Inca de la inceput am avut mai multe idei despre ce as vrea de la o astfel de platforma. A trebuit insa sa ma decid cu ce anume sa incep. Resursele mele sunt extrem de limitate si numara cateva ore pe saptamana in cel mai fericit caz. De altfel, puteau trece saptamani in care nu reuseam sa progresez.

Am ales ideea de motor de cautare pentru TV pentru ca mi s-a parut cea mai provocatoare din punct de vedere tehnic. Planul era sa indexez continutul audio in text, utilizatorul sa poata cauta informatii dupa cuvinte cheie, iar rezultatul sa fie o lista cu posturile TV, ziua si ora, emisiunea si contextul in care acele cuvinte cheie au fost vorbite.

Desi am reusit sa progresez destul de mult, procesul implica un efort considerabil. Mecanismul de detectie a vorbirii are la baza conceptul de machine learning, iar invatarea sistemului presupune cantitati semnificative de mostre de date, pe care insa nu reusesc sa le procesez la viteza pe care mi-as dori-o.

Rezultatul ar fi unul important si planuiesc sa deschid un API pentru speech to text pentru limba romana.

Exista servicii similare, oferite de Google de exemplu, dar care sunt contra cost. Mai este un proiect local, initiat de o universitate cu profil tehnic din Romania, pe nume SpeeD, dar care nu este accesibil publicului larg.

Abia astept sa revin la aceasta idee si sa imi continui munca acolo pentru ca sunt sigur ca rezultatele ar fi unele pe masura efortului.

 

Cine mai e implicat in proiect alaturi de tine?

Paradoxal, pentru ca nu am timp mult la dispozitie, am preferat sa nu cer ajutor. Este prea devreme. Daca ar intra inca un inginer in proiect, timpul putin pe care il am la dispozitie l-as folosi pentru a ma sincroniza cu el, astfel ca am decis sa lucrez singur deocamdata. In stadiul de prototip senzatia mea este ca progresez mai repede in aceasta formula, cel putin pentru moment.

In zona operationala ma ajuta cineva fara cunostinte tehnice avansate. Responsabilitatea lui consta in provizionarea si clasificarea de mostre, atat pentru sistemul de detectie de reclame, cat si pentru modulul de recunoastere a vorbirii.

 

Tehnologie si flow

Am avut inspiratia sa structurez inca de la inceput intreaga platforma pe module si microservicii.
Majoritatea celor care programeaza inteleg bine la ce ma refer.

Flow-ul are cativa pasi de lucru esentiali:

1. Captura media. Captarea audio-video a devenit o operatiune extrem de flexibila. Am implementat conectori pentru stream-uri live, pentru capturi din placi de TV tuner ori pentru fisiere media incarcate in platforma pur si simplu. Pentru viitor iau in calcul captarea din portaluri de emisie platite.

Multi operatori pun la dispozitie deja abonatilor si varianta de emisie a posturilor TV in format online. Iau in calcul utilizarea acelui stream.

2. Preprocesare audio-video. In acest pas separ continutul audio de continutul video, convertesc in formate usor de ingerat in modulele de analiza, care au pretentii diferite.

3. Detectarea reclamelor prin procedeul de audio fingerprinting. Telize invata spoturile publicitare, inregistreaza intr-o baza de date semnaturile specifice fiecarui clip, iar apoi este capabil sa recunoasca intr-un stream fiecare spot.

Modulul de detectie al reclamelor are nevoie intre 3 si 7 secunde pentru a recunoaste un clip publicitar, iar rata de acuratele este de 98% (conform unor teste empirice efectuate de mine). Invatarea spoturilor are si o componenta manuala pe care am reusit s-o reduc la cateva proceduri extrem de simple.

Practic, cu un singur operator care se implica doar cateva ore pe saptamana, rata de detectie a ajuns la 85%.

4. Detectarea posibilelor reclame. Acestea sunt secvente audio-video identificate dar pentru care nu s-a atins nivelul de confidenta necesar clasificarii.

Spuneam ca sistemul are nevoie de mostre pentru a invata semnaturile pe care le foloseste mai tarziu la detectie. Pentru a inlesni acest proces, am creat un mecanism care preselecteaza chiar din stream-ul audio reclamele pe care nu a reusit sa le clasifice, iar operatorul nu trebuie decat sa le eticheteze corespunzator.

5. Apoi urmeaza indexarea audio. Aici am ales o combinatie dintre HMM (Hidden Markov Model) si machine learning. HMM sta la baza unei metode comune folosita in recunoasterea vorbirii. Eu am folosit in plus o combinatie de modele de machine learning utilizate in alegerea parametrilor optimi pentru antrenarea HMM. Periodic refac dictionarul si modelul lingvistic cu texte noi actuale.

Cautarea in textele indexate nu este inca publica pentru ca modulul se afla inca in faza de crestere a acuratetii de recunoastere a vorbirii. Mi-ar fi placut sa pot folosi deep learning (retele neuronale) insa educatia mea in acest domeniu este saraca, iar cunostintele inca insuficiente pentru Telize.

6. Urmeaza procesarea video in care detectez siglele celor peste 500 de branduri inregistrate in platforma. In acest proces intra si detectia unui set de personalitati politice si publice.

Rezultatul nu este inca disponibil publicului pentru ca se afla inca in faza de dezvoltare si testare.

7. Datele rezultate sunt mutate apoi intr-o baza de date in care sa pot efectua usor agregari si operatii specifice cu usurinta. Din aceasta baza de date generez graficele pe care le puteti vedea pe Telize.ro.

 

Aplicabilitate

In primul rand imi doresc ca Telize sa fie un produs pentru Romania. Am sovait intre telize.io si telize.ro si m-am oprit asupra lui telize.ro.

Apoi am simtit ca lucrurile sunt putin debalansate: exista multa tehnologie si stiinta de partea industriei media, insa putine canale de informare la indemana consumatorilor.

Nu indraznesc sa cred ca pot balansa situatia, insa sper ca pot da cateva idei altora, care au potentialul necesar reabilitarii acestui echilibru.

 

Testare

Testarea este un subiect frumos, dar si provocator in acelasi timp. Intentionez sa elaborez un plan de test si sa angrenez cativa oameni care sa ma ajute in acest sens. Apoi sunt destul de sigur ca voi primi sugestii din partea celor care vor vedea in Telize un canal de informare.

 

Stadiul actual

Telize se afla intr-o forma incipenta. Sunt puse la punct infrastructura, structura codului, o mare parte din cod, interactiunea dintre microservicii si alte detalii necesare unui produs care a depasit doar cu putin stadiul de prototip. Simt ca imi lipseste o indrumare educata din partea cuiva obisnuit cu aceasta industrie.

Este posibil ca nevoile de infrastructura sa creasca, insa deocamdata costurile le pot suporta singur fara probleme.

 

Dezvoltarea serviciului

In primul rand, candva in urmatoarele saptamani, sper sa pot lansa o noua versiune a site-ului si a aplicatiei.  Apoi, incet-incet as vrea sa pot face publice toate serviciile care acum sunt in curs de dezvoltare.

Primul serviciu cred ca va fi cel de detectie a reclamei mascate si al detectiei de persoane.

In ceea ce priveste detectia reclamei mascate, trebuie sa gasesc o definitiei completa a reclamei mascate. Am parghiile tehnologice de detectie, insa felul in care ele sunt aplicate depinde foarte mult de parametrii definitiei.

Detectia de persoane va fi destul de simpla, aceasta problema fiind deja rezolvata din punct de vedere tehnic. Din punct de vedere produs, nu mi-e clar inca cum va arata, insa imi imaginez ca oricine va putea cauta un personaj dupa nume, iar aplicatia va intoarce o colectie de raspunsuri cu postul TV, emisiunea, data si ora aparitiei, insotita cu o fotografie corespunzatoare detectiei.

 

Implicarea comunitatii in rafinarea serviciului

Deocamdata incerc sa construiesc o comunitate, lucru la care nu ma pricep prea bine si inca invat.
Nu imi este clar insa cat poate creste aceasta comunitate si cat de implicata isi doreste ea sa fie.

Oricum ar fi, vad cateva optiuni de implicare. Una dintre ele ar fi sa participe direct la clasificarea reclamelor. Pentru asta sunt constient ca trebuie sa imbunatatesc si mai mult interfata de utilizator, eventual sa pregatesc niste widget-uri ce pot fi incorporate in diferite site-uri. Alte optiuni de implicare ar putea fi furnizarea de continut TV sau clasificarea de personaje.

Insa implicarea esentiala ramane simpla utilizare a platformei si a interpretarii datelor furnizate de ea. Traducerea numerelor si a graficelor in idei si concepte usor de inteles de publicul larg este intotdeauna o provocare in sine.

Crearea de aplicatii adiacente care folosesc datele din Telize ramane o idee care mie mi se pare interesanta. De aceea am pregatit un API prin intermediul caruia oricine poate extrage informatii, in formate diferite.

 

Telize in termeni de business

Fireste ca sunt anumite functionalitati specifice industriei, ce prezinta putin interes pentru public, dar care pot fi apreciate de diferite segmente de companii si specialisti.

O parte din aceste functionalitati pot deveni subiectul unor oferte comerciale, ce ar putea sustine in viitor costurile de operare si infrastructura, costuri pe care deocamdata le acopar personal, motivat fiind de simple expunere catre public a unor informatii elementare.

Aboneaza-te la newsletterul IQads cu cele mai importante articole despre comunicare, marketing si alte domenii creative:
Info


Sectiune



Branded


Related