L’événement

Le MipCube c’est quoi ? Et bien c’est l’un des plus grands salons sinon le plus grand salon mondial de la télévision. Il se déroule chaque année depuis 50 ans en France à Cannes. Différentes compétitions ont été organisées lors de l’événement. Gamific.TV a été retenu pour le MipCube Lab destiné à élire LA startup du moment concernant la télévision. Quant à moi, j’ai été sélectionné pour le hackathon : le TV Hack. L’événement a été co-organisé par une équipe rodée à ce type de compétitions : BeMyApp.

L’événement a été couvert par plusieurs médias dont entre autres par ZDNet, Clubic et par Olivier Ezratti. Normalement des vidéos devraient être disponibles prochainement dont notamment un reportage sur la chaîne de TV France24. Je partagerais ça sur Twitter et Google+ le moment venu !

L'idée

Nous avions à notre disposition beaucoup de chose : Kinect, Leap Motion, Startekit Gadgeteer, Creative interactive gesture camera Intel, Raspberry, Arduino et enfin une TV connectée Samsung (3D même !). J’avais quelques idées en tête puis c’est en rencontrant Christophe Dupont et en discutant avec lui que l’idée s’est précisée. Finalement on a formé rapidement notre binôme pour le hack. Christophe est développeur Android et a pas mal de matériel sous le coude : smartphones, tablette... De mon coté j’ai l’expérience TV et les compétences Web, bref on se complète très bien !

Notre idée est simple : analyser l’humeur des téléspectateurs en temps réel pour permettre une meilleur appréciation de la perception des programmes TV par le public. Typiquement en utilisant une caméra intelligente qui pourrait reconnaître des mouvements (applaudissement, lever les bras...) et les sons (rires, cris de joie...). Avec de telles données, les chaînes TV pourraient adapter leur contenu ou l’attitude de leur présentateur/animateur en temps réel. Il serait également facile de construire un Best-of de l’émission en récupérant les passages les plus marquant.

Notre implémentation

On a rapidement fait le choix d’utiliser la Kinect ainsi qu’une tablette Android. Le principe est le suivant : la TV diffuse une vidéo watermarkée par Civolution. Le watermarking permet grâce au SDK de Civolution de synchronisé la tablette avec le flux live. Dans la réalité, Civolution est déjà utilisé par certaines chaînes de la TNT donc une application réelle est tout à fait réalisable. On va au delà de la simple démonstration dans notre cas. A chaque synchronisation, l’information est envoyé à notre serveur.

Sur le PC connecté à la Kinect, j’ai écris deux scripts en Processing : un pour traiter les images et un second pour traiter le son. Le principe du premier est donc de reconnaître un mouvement de main : l’applaudissement. Pour se faire, j’ai utilisé SimpleOpenNI. Les exemples fournis sont assez pratique mais on se rend vite compte que la Kinect est très sensible : il ne faut pas de surface vitrée derrière soit et éviter les mouvements parasites. Typiquement développer une application Kinect dans un openspace n’est pas forcément adapté. Lorsque le mouvement est détecté, j’effectue une requête POST sur le serveur Node.js que l’on a développé. L’événement est ensuite enregistré dans MongoDB.

Pour traiter les sons, là encore j’ai utiliser un exemple fourni par Processing (LiveSpectrum). Lorsqu’un pic de décibel est détecté sur une certaine plage de fréquence, là encore une requête POST est envoyée au serveur. Il est possible d’aller beaucoup plus loin en faisant de la reconnaissance vocale.

Le serveur Node.js comme je viens de l’évoqué reçoit tout les événements ainsi que les synchronisations avec le flux live. Ainsi il fourni une API pour l’application Android permettant de récupérer la liste des événements ainsi que leur position précise sur le flux vidéo. Ces informations permettent au téléspectateurs de revoir le moment sur lequel il a agit (applaudissement, rire...) et de le partager sur Twitter. Les événements sont également envoyer via Websocket (Socket.io) à la TV Connectée. Celà permet d’afficher un retour direct sur l’écran. Là encore notre solution est très proche de la réalité : on pourrait très bien envoyer ces événements sur une application HbbTV diffusé par la chaîne de TV.

Nous avons également réalisé un tableau de bord, permettant de suivre l’évolution des interactions sur un flux live. Interface simple utilisant Twitter Bootstrap et la bibliothèque Javascript HighCharts. Le superviseur peut à tout moment cliquer sur le passage qu’il souhaite pour le revoir.

Perspectives

L’événement en lui même a été une excellent expérience. Au delà de l’environnement technique et de l’ambiance, il a permis de confirmer encore davantage le besoin pour la télévision de continuer sa transformation et de devenir TV Connectée à 200%. Chez Gamific.TV nous en sommes persuadé et c’est une bonne chose que l’écosystème se dynamise ainsi, avec un tel engouement. Je serais d’ailleurs présent jeudi 18 avril à l’événement NantesJS pour une session live coding Javascript sur TV Connectée. Si vous êtes dans le coin, n’hésitez pas à venir nous voir et en discuter.

Sinon, comme le dit Olivier Ezratti... il va VRAIMENT falloir que je travaille l’anglais. A commencer par l’ouverture d’une version anglaise de ce blog dont le premier billet traitera du hack pour donner un retour aux anglophones.

PS : Sinon bien sûr, un grand merci à l’équipe BeMyApp ainsi qu’au sponsor de l’événement (EVS) qui propose une solution qui méritera d’être utilisé le plus souvent possible : permettre au téléspectateur de choisir la caméra qu’il souhaite (imaginez les applications possibles pour un match de foot, une étape du Tour de France ou encore un concert...!). Bref, c’était un bon moment passé à Cannes avec tout les hackers !