sabato 1 febbraio 2014

VOWELS RECONGNITION USING NEURAL NET

 In the last years the use of vocal recognition systems, and more generally speech recognition system, has captured the interest of many people. With speech recognition we mean the translation of spoken words into text.

In recent years companies like Google and Microsoft showed a lot their interest in this technology: this is strictly related to their investments on handheld systems, like smartphone and tablet. Honestly I think that also in the next years this subject will be trendy: the direction is towards touch-less systems.

In this work I tried to understand how neural nets can be applied, in particular, to vowel recognition. If we think about it, to speak is one of the most important property of humans, but we learn a lot of it when we are child. As you know neural nets try to reproduce human brain behavior: so I thought to apply this technology on a basic (but very complex) human task. My goal is to understand how neural nets are suitable in this field, and moreover what are the strategies to take into account.

As result, goals of this work are to verify if vowels can be recognized only by pronouncing it: if it works, we can try to recognize it in a word.

Moreover, I tried to make things as accessible as possible: just using a browser (in particular Chrome/Safari). I used the web audio API (a new incoming standard related to HTML5) that offer a wide range of instruments. For the neural network side I used a very good library, called brain-js, that worked very well. 

DEMO

In order to use the application, just click this link. If you want run it locally, you have to use a local server (like Apache, or WAMP for window user). You have to put the folder in the www folder, and reach the index from localhost. If you want to test my training set (an Italian one), you can load it from the application. 

SPECIFICATION DOCUMENT 

If you want to continue the reading, download the whole document here

venerdì 18 ottobre 2013

How to set default JVM in Ubuntu

Just type:
 
sudo update-alternatives --config java
 
And choose the right vm..
 
This is it! 

sabato 18 maggio 2013

HDeos Launched on Google Play


HDeos is An android application that allows you to watch full HD videos, without Adobe Flash Player and without advertisements. HDeos offer a resolution switcher as the desktop version of Youtube: in this way, you can enjoy the HD resolution directly from your mobile! You can search directly your preferred HD videoor simply pasting youtube's URL.

    If you want to know more, you can visit the page on google play HDeos

martedì 26 marzo 2013

HDeos - enjoy full HD Youtube video directly from your mobile .. for a lot of devices ( IPhone , IPad , Android..)


Hello world!!
These last two months I worked on an interesting project. You know that the mobile version of youtube, http://m.youtube.com doesn't support a pure HD video streaming; it seems that it doesn't offer a 720 - 1080 switcher like the desktop version. So my question was: why?? I don't know, there are a lot of answer, maybe can be related to hardware capabilities.. ok but 1 years ago!

Now more than the half of mobile user have device with high capabilities, and want to join the real High Definition. So I thought to develop a simple web app that allows you to watch youtube video in high definition, naturally only if youtube provide HD videos.

You can think "Ok, but I need Adobe Flash Player" .. the positive answer is NOT. You can stream your favourite youtube videos without using the (heavy-weight) adobe flash player.

You can test this web app connecting to http://hdeos.altervista.org . You can use directly the entire url of youtube or search your favourite video through the search field, and simply switch to 720 - 1080 if provided. I hope it works, I tested it with android (ICS and JB) and with an iphone 5 and an ipad 2. In the latter two case it seems to support the 1080 playback.

So now connect to HDeos and enjoy it!!!!

CU

sabato 29 dicembre 2012

Category Partition Testing.. in Italian



Il Category Partition Testing ha lo scopo di individuare delle categorie di parametri e di condizioni del sistema che aiutini i tester a svolgere il proprio lavoro (blablabla).
Ma come si procede praticamente? Dalla specifica vengono Identificate informazioni relative le funzioni e il comportamento del sistema stesso: questi sono rispettivamente i parametri e le condizioni del sistema.
Ma cosa sono questi parametri/stati? Delle  particolari categorie di input del SUT (sistema sotto test) in relazione a determinati stati del sistema..
Cosa ci facciamo di questi parametri? Per ciascuno di questi vengono definite le CHOISES, cioè gli input associati a quella categoria.
Le combinazioni tra i diversi input applicabili al sistema formano la test suite.
Siamo Apposto? NO.. la test suite è composta da troppe combinazioni.
-> CERCHIAMO DI RIDURLE.. ma come? Eliminando le combinazioni che sono invalide.. ma  in che MANIERA? Per ogni input relativo le cateogorie indichiamo se gode di alcune proprietà  e/o lo si associa ad una condizione [il tutto indicato tra quadre]. In questo modo una combinazione contenente due opzioni che godono di proprietà/condizioni differenti  (quindi contrastanti) --> possono essere eliminate. 

Now enjoy this song!


venerdì 11 maggio 2012

An Https Rss Desktop Notifier

Hi All. In the prevoius months i wrote a simple application that keep you tuned with your facebook notification. This application is a simple skecth made to verify the functionality of my library, the #cabac library. Is a simple jar that consists only of a system tray icon. If you have time to try it, i really will appreciate your comment. The core of application is a simple translator that convert an rss page in a simple number (number of notification not yet readed by the application). On linux/ubuntu it works fine, but under windows 7 the icon is not highly defined (i'm talking about image). You must only define the rss link (i tested the facebook rss page notification). Let me know if you need help. Test It! https://docs.google.com/open?id=0B9A7lJY7jyEIc0ttY2M3bUljb1E

domenica 15 aprile 2012

Some anticipation of the first application (PT1) - Facebook Desktop Notifier


From two previous post, we understood that a primary goal of our works is INTEGRATE application. Now we would make things more interesting, (as possible). Let's start with a simple example: this first example is far to the reality, but is interesting (also for me) to see the behaviour of the library in a simple real situation

Ok, let's start!

Now we suppose that we want to manage Facebook notifications, through rss format (see http://www.kristi-barrow.com/facebook-rss-feeds-what-is-available/ ; facebook make it able an xml page with some notification,   reachable through a simple secure link). On the other hand, suppose that we have a little client that can manage some kind of notification, but not in RSS format.

This application expects to receives the 'number' of notifications that are not yet been read, , contacting directly facebook. However, facebook doesn't provide this service: it allows only to receive the rss file.

How we can manage this situation? From my point of view, we could integrate these application through a connector :) In an informal way, we can follow these steps: we fetch the rss notifications from facebook, adapt the informations (with the connector) and provide its to the client. Ok, let's start to see how do it!

The first step can be resolved by defining a simple https connection to the specific link (http://www.new.facebook.com/feeds/notifications.php?id=your_facebook_id&viewer=your_facebook_id&key=your_internal_key&format=rss20). This step are solved by the client application

Ok, now we can continue with the second step. In this step we practically define our connector.

This connector must transform the xml file into a big 'Rss' Object. To do this, we can define a translator primitive (we discussed it in the previous post) that consume from the xml file e, through  the transforming logic (that consist of an Rss parser) converts the file into a RSS Object (we can use the rss lib utils).

Finally, this translator write the result of the transformation - a simple number - on a txt file; this file will be read by the client application, that on own will notify the user of this new information

This is the result 
(Simple System Tray Icon)

Nexts posts will explain step by step how obtain things like these :).. Stay tuned