<div class="gmail_quote"><font class="Apple-style-span" face="arial, helvetica, sans-serif">Hi</font></div><div class="gmail_quote"><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_quote">

<span class="Apple-style-span" style="border-collapse: collapse; "><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">I am working upon the </font><b><font class="Apple-style-span" face="arial, helvetica, sans-serif">search filter of vlc</font></b><font class="Apple-style-span" face="arial, helvetica, sans-serif"> and phonetically improvise upon it's search results and looking to take it forward as a</font><b><font class="Apple-style-span" face="arial, helvetica, sans-serif"> GSoC project</font></b><font class="Apple-style-span" face="arial, helvetica, sans-serif">. </font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><b><u><font class="Apple-style-span" face="arial, helvetica, sans-serif">Why this feature is important for VLC?</font></u></b></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">The present search feature in VLC  does a strict string match to provide results. But the meta data that we are searching for might have a phonetically different spelling than the input query of the user since it is based on how users pronounce and spell that query in English character set and not the <b>standard spelling</b>. Moreover, languages other than English face spelling standardization issues and different people spell the same words in different ways (which are same phonetically). Moreover, quite a few words be it in song meta data or otherwise are named entities which can't find a match even after a look up in the dictionary.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">So it is necessary to improvise upon the user experience on this issue by implementing a phonetic search feature which would search for phonetic matching words on the fly (not from dictionary or somewhere which would also be memory and resource expensive).</font></div>

<div><b><u><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></u></b></div><div><b><u><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></u></b></div><div><b><u><font class="Apple-style-span" face="arial, helvetica, sans-serif">How I plan to proceed?</font></u></b></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">I plan to customize the soundex algorithm for all languages where each language could have a different phonetic equivalent class of rules (Generally around 20 rules for most languages).  I would keep the approach layered so that support for multiple languages could be easily contributed and more languages could be added by others.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">Moreover, since it is important that once a base set of rules are defined by someone, the rules could themselves be added/evolve based on the user input and usage.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">For instance, if many users(above a threshold set by us) insert some search string for which no wanted search result is retrieved, we could track what he finally selects and then accordingly append/modify our set of phonetic rules based on the phonetic mismatch amongst the  query inserted and result wanted according to our set of rules. Using this, the<b> rule sets it could evolve itself when we collect usage statistics from users based on their experience. </b>This feature would add a new dimension to the search functionality and would surely stand out.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">Initially I plan to code this for few Indian languages like Hindi, Marathi etc. and define a simple way (probably a gui on concept based on <a href="http://images.google.com/imagelabeler/">GoogleImageLabeler</a>) in which rules for different languages can be directly added and then people knowing those languages could contribute.</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><b><font class="Apple-style-span" face="arial, helvetica, sans-serif">Samples:</font></b></div><div><ul><li><font class="Apple-style-span" face="arial, helvetica, sans-serif">Some cases with English songs,</font></li>

<ul><li><font class="Apple-style-span" face="arial, helvetica, sans-serif">I want to search search "Nelly Furtado" but spell it as "Neilly Furtado". Similarly for "Christina" -> "Cristina" => No results :(</font></li>

<li><font class="Apple-style-span" face="arial, helvetica, sans-serif">Similarly for track name: "Cemeteries Of London" -> "Cemetries Of London" or "Lonely" -> "Lonly"</font></li>

</ul><li><font class="Apple-style-span" face="arial, helvetica, sans-serif">In English at least, we can expect/assume that people insert the right spellings  for discionary words atleast. But the situation worsens with other languages.</font></li>

<li><font class="Apple-style-span" face="arial, helvetica, sans-serif">In case of Hindi songs, if I search for a song which has word "pyar" or "naiyya" but I spell the word as "pyaar" or ''nayya", presently no result would be returned since this is not in the playlist.</font></li>

</ul></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">Moreover, now that it is being planned to include the <a href="http://mailman.videolan.org/pipermail/vlc-devel/2009-August/065079.html">SQLite Module</a>, the index of metadata from songs in the library will be readily accessible to capitalize upon this.</font></div>

<h1><span class="Apple-style-span" style="font-weight: normal; "><b><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-size: small;"><u>Salient points:</u></span></font></b></span></h1>

<h1><span class="Apple-style-span" style="font-weight: normal; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><span class="Apple-style-span" style="font-size: small;">This won't be memory extensive as well since the words are not retrieved from memory but are generated on the fly based on the given set of rules which will be fixed for a particular instance. </span></font></span></h1>

<div><b><u><font class="Apple-style-span" face="arial, helvetica, sans-serif">What I have done till now:</font></u></b></div><div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif">As of now, I am having some fun working around with VLC's codebase. I had coded the algorithm part of the search filter in Java as a part our college technical festival. I would re-code it in C for VLC considering more optimizations wherever possible along with provision of an intuitive interface for contribution of other language rules.</font></span></div>

<div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></span></div><div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><i>Attached is the image of some changes I have done to the </i><i>vlc</i><i> interface </i><i>gui</i><i> for including this functionality. When the "Enable phonetic search" button is clicked, I plan to  enable the phonetic search. I could provide the patch if someone wants but right now the search functionality hasn't yet been modified for the original implementation. Just tweaked the search a bit for testing sake.</i></font></span></div>

<div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></span></div><div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif">Please shoot your suggestions/opinions/concerns on what you feel about this feature.</font></span></div>

<div><span class="Apple-style-span" style="border-collapse: separate; "><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></span></div></span></div><div class="gmail_quote"><div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">-- </font></div>

<div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">Regards<br>Dhiraj Lohiya<br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">3rd year, B.E.(Hons.) Computer Science</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif">BITS Pilani</font></div></div><div><div></div><div class="h5"><div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div>

<div><br></div></div></div></div></div>