<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0717-5000</journal-id>
<journal-title><![CDATA[CLEI Electronic Journal]]></journal-title>
<abbrev-journal-title><![CDATA[CLEIej]]></abbrev-journal-title>
<issn>0717-5000</issn>
<publisher>
<publisher-name><![CDATA[Centro Latinoamericano de Estudios en Informática]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0717-50002011000300005</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Revisiting the design and implementation of GAVIS: J-GAVIS]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Bozzo]]></surname>
<given-names><![CDATA[Manuel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Gutiérrez]]></surname>
<given-names><![CDATA[Martín]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Bozzo]]></surname>
<given-names><![CDATA[Tomás]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Diego Portales Escuela de Ingeniería Informática y Telecomunicaciones ]]></institution>
<addr-line><![CDATA[Santiago ]]></addr-line>
<country>Chile</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional de Educación a Distancia Escuela Técnica Superior de Ingeniería Informática ]]></institution>
<addr-line><![CDATA[Madrid ]]></addr-line>
<country>Spain</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2011</year>
</pub-date>
<volume>14</volume>
<numero>3</numero>
<fpage>5</fpage>
<lpage>5</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_arttext&amp;pid=S0717-50002011000300005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_abstract&amp;pid=S0717-50002011000300005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.edu.uy/scielo.php?script=sci_pdf&amp;pid=S0717-50002011000300005&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[Abstract GAVIS (Genetic Algorithm based Voice Imitation System), (1), is a system whose purpose is to find a set of effects to imitate voice signals. The system is based on Genetic Algorithms and Fourier Transforms. Although GAVIS proves to be effective, some deficiencies were found, and amongst them was the execution speed of the system. It is to improve such deficiencies that a new version of the system was designed and implemented. In this paper, we present the foundations for GAVIS&#8217; construction and a new and improved design and implementation of GAVIS (J-GAVIS) and describe its new features.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[Heuristics]]></kwd>
<kwd lng="en"><![CDATA[Voice Imitation]]></kwd>
<kwd lng="en"><![CDATA[Genetic Algorithms]]></kwd>
<kwd lng="en"><![CDATA[Fourier Transform]]></kwd>
<kwd lng="en"><![CDATA[Speech Processing]]></kwd>
<kwd lng="es"><![CDATA[Heurísticas]]></kwd>
<kwd lng="es"><![CDATA[Imitación de voz]]></kwd>
<kwd lng="es"><![CDATA[Algoritmos Genéticos]]></kwd>
<kwd lng="es"><![CDATA[Transformada de Fourier]]></kwd>
<kwd lng="es"><![CDATA[Procesamiento de voz]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div class="maketitle">    <b><font face="Verdana" size="4">Revisiting the design and implementation of GAVIS: J-GAVIS</font></b>    <div class="author"> <font face="Verdana" size="2"> <span class="cmbx-12">Manuel Bozzo</span>     <br>               <span class="cmr-12">Universidad Diego Portales,</span>     <br> <span class="cmr-12">Escuela de Ingenier&iacute;a Inform&aacute;tica y Telecomunicaciones,</span>     <br>                     <span class="cmr-12">Santiago, Chile</span>     <br>      <span class="cmti-12"><a href="mailto:manuel.bozzo@gmail.com">manuel.bozzo@gmail.com</a> </span><br class="and"> <span class="cmbx-12">Mart&iacute;n Guti&eacute;rrez</span>     <br>               <span class="cmr-12">Universidad Diego Portales,</span>     <br> <span class="cmr-12">Escuela de Ingenier&iacute;a Inform&aacute;tica y Telecomunicaciones,</span>     <br>                     <span class="cmr-12">Santiago, Chile</span>     <br>       <span class="cmti-12"><a href="mailto:martin.gutierrez@mail.udp.cl">martin.gutierrez@mail.udp.cl </a></span><br class="and"> <span class="cmbx-12">Tom&aacute;s Bozzo</span>     ]]></body>
<body><![CDATA[<br>     <span class="cmr-12">Universidad Nacional de Educaci&oacute;n a Distancia,</span>     <br>   <span class="cmr-12">Escuela T&eacute;cnica Superior de Ingenier&iacute;a Inform&aacute;tica,</span>     <br>                      <span class="cmr-12">Madrid, Spain</span>     <br>                 <span class="cmti-12"><a href="mailto:tomas.bozzo@gmail.com">tomas.bozzo@gmail.com</a></span></font></div> <font face="Verdana" size="2">     <br>  </font>      <div class="date"></div>     </div>          <div class="abstract">     <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     ]]></body>
<body><![CDATA[<div class="minipage">     <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><span class="cmbx-10">Abstract</span></font></p> </div>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">GAVIS (Genetic Algorithm based Voice Imitation System), <span class="cite">[<a href="#c1">1</a>]</span><a name="c1."></a>, is a system whose purpose is to find a set of effects to imitate voice signals. The system is based on Genetic Algorithms and Fourier Transforms. Although GAVIS proves to be effective, some deficiencies were found, and amongst them was the execution speed of the system. It is to improve such deficiencies that a new version of the system was designed and implemented. In this paper, we present the foundations for GAVIS&rsquo; construction and a new and improved design and implementation of GAVIS (J-GAVIS) and describe its new features.&nbsp;</font></p>     <p><font face="Verdana" size="2">GAVIS (Genetic Algorithm based Voice Imitation System) es un sistema cuyo prop&oacute;sito es de encontrar un conjunto de efectos de sonido para lograr imitaci&oacute;n de se&ntilde;ales de voz. El sistema est&aacute; basado en Algoritmos Gen&eacute;ticos y Transformadas de Fourier. Si bien la versi&oacute;n original de GAVIS era efectiva, se encontraron algunas deficiencias. Una de ellas era la velocidad de ejecuci&oacute;n del sistema. Se dise&ntilde;&oacute; e implement&oacute; una nueva versi&oacute;n del sistema para mejorar las deficiencias encontradas en la versi&oacute;n anterior. En este art&iacute;culo, se presentan los fundamentos de la construcci&oacute;n de GAVIS, el dise&ntilde;o e implementaci&oacute;n mejoradas de la nueva versi&oacute;n (J-GAVIS) y se describen adem&aacute;s las nuevas caracter&iacute;sticas presentes en J-GAVIS.</font></p> </div> </div>  </div>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2"><span class="cmbx-10">Keywords: </span>Heuristics, Voice Imitation, Genetic Algorithms, Fourier Transform, Speech Processing.&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">Keywords: Heur&iacute;sticas, Imitaci&oacute;n de voz, Algoritmos Gen&eacute;ticos, Transformada de Fourier, Procesamiento de voz.&nbsp;</font></p>     <p>   <font face="Verdana" size="2">Received: 2011-03-30 Revised: 2011-10-06 Accepted: 2011-10-06 </font>     </p>     <p><font face="Verdana" size="2"><span class="titlemark">1   </span> <a id="x1-10001"></a>Introduction</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">Speech recognition and speech processing are subjects that are actively researched nowadays and that are intimately related to the use of voice signals. These topics yield several problems. One of them is the imitation of a target voice by means of audio effects and constitutes the main focus of this article, specifically, finding the mentioned effects that transform a phoneme emitted by a source voice into the same phoneme emitted by a target voice.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Solving the problem has several practical applications, for example: It can be used to dub films as to turn the voice of the dubbing actor into the voice of the original actor. It can also be used in advertising, if the voice of a specific person is needed but this person is unavailable. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Voice signals were used for several calculations and the Discrete Fourier Transform (from now on known as DFT) was key in offering a representation to manipulate easily such signals. Actually, most of the operations applied on a signal were done through the DFT. <br class="newline">      <br> </font> </p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">Presently, there are systems capable of solving this problem. Therefore, our proposal aims to improve the quality of the results obtained by said existing systems <span class="cite">[<a href="#c2">2</a>]</span>,<a name="c2."></a> <span class="cite">[<a href="#c1">1</a>]</span>.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Multidimensionality of the problem and high variety of solutions in the search space led to the selection of Genetic Algorithms to perform the task. Also, the fact that the expected result is known and that a solution can always be accurately assessed reinforces this choice. Some non-conventional elements which will be discussed have also been added to the Genetic Algorithm as to further aid in the search.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The problem of transforming a voice signal into another has a trivial solution. Nonetheless, finding a set of effects which can approximate the DFT of two or more input signals to their respective output signal DFTs is not an easy task.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The work here presented consists in a description of the implementation of a model that uses heuristic search methods to find the audio effects needed for the aforementioned transformation and its subsequent improvement.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">In section 2, a brief overview of Genetic Algorithms will be given. Section 3 will describe some relevant notions on Audio Signals and DFTs. Section 4 describes the design and implementation of the original GAVIS. Section 5 will discuss the deficiencies found in GAVIS and the necessity of a new version along with the new system&rsquo;s design and the implementation of all its relevant features. In section 6, results will be presented, analyzed and compared to the results of the previous version. Finally, we conclude in section 7 and sketch current and future work.&nbsp;</font></p>     <p>    </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">2   </span> <a id="x1-20002"></a>Genetic Algorithms</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">Genetic algorithms are a heuristic search technique mainly used for optimizing solutions (i.e. Combinatorial Optimization) to a problem <span class="cite">[<a href="#c3">3</a>]</span>, <span class="cite">[<a href="#c4">4</a>]</span><a name="c3."></a><a name="c4."></a>. It is strongly based on species evolution. The idea behind the operation of the algorithm is that of the use of several initial solutions and evolving them by evaluating their overall quality and applying genetic operators to make them gradually improve. Although this type of algorithms is good at approximating optimal solutions, it never guarantees to find the optimal solution.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Generally, solutions are coded as arrays of values (<span class="cmti-10">chromosomes</span>) composed by features of such solutions. Each feature (<span class="cmti-10">gene</span>) may be represented as binary numbers or as another data type. This constitutes the valid language for the <span class="cmti-10">phenotype </span>or <span class="cmti-10">individual</span>, which is an embodiment of a particular potential solution for the problem to be solved.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">A brief description for each element involved in the algorithm will be given.&nbsp;</font></p>     <p>     </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.1   </span> <a id="x1-30002.1"></a>Phenotype</font></p>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2">The phenotype is the representation of an individual solution within the search space. It serves as a model for potential solutions to the problem. It may also be referred to as <span class="cmti-10">individual</span>.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.2   </span> <a id="x1-40002.2"></a>Chromosome</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">A chromosome is an encoding for the phenotype. It is typically a string, although it might have other forms such as graphs, matrices or any data structure depending on the problem to be solved.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.3   </span> <a id="x1-50002.3"></a>Population</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">Pool of individuals used for evolving. As a result of the change in the solutions of the pool, the population itself naturally changes. Each step (iteration) in this process is called <span class="cmti-10">generation</span>, and constitutes an epoch or a snapshot of the population at a certain time in the execution.&nbsp;</font></p>     <p>    </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">2.4   </span> <a id="x1-60002.4"></a>Fitness</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">The fitness function evaluates the quality of a given individual. It is commonly used to test the stopping criterion and to pair the individuals in the population who will undergo crossover.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.5   </span> <a id="x1-70002.5"></a>Crossover</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">It is a genetic operator that combines individuals and produces offspring solutions that preserve several features of the original individuals.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.6   </span> <a id="x1-80002.6"></a>Mutation</font></p>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2">It is another genetic operator that applies a spontaneous change to a given offspring solution. The main goal of this operator is to maintain a minimum of diversity for exhaustive exploration of the search space.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.7   </span> <a id="x1-90002.7"></a>Natural Selection</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">The natural selection criterion is the one for eliminating unfit individuals along the execution of the algorithm. The implementation of this operation usually holds a close relationship with the fitness function, but may also be defined in a different manner.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">2.8   </span> <a id="x1-100002.8"></a>Termination criterion</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">A criterion that must be met to end the execution of the algorithm. Generally, this criterion might be associated to the quality of the best solution, convergence of the population, fixed number of iterations or a combination of the mentioned criteria. <br class="newline">      <br> </font> </p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">Some parameters are needed for the Genetic Algorithm to be fully defined such as Population size, Crossover probability <img src="/img/revistas/cleiej/v14n3/3a050x.png" alt="Pc  " class="math">, Mutation probability <img src="/img/revistas/cleiej/v14n3/3a051x.png" alt="Pm  " class="math"> among others. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">A psuedocode for a Genetic Algorithm is as follows: <br class="newline">      <br> </font> </p>     <p>      </p> <ol class="enumerate1">       <li class="enumerate" id="x1-10002x1"><font face="Verdana" size="2">Initial population creation (usually random)      </font>       </li>       <li class="enumerate" id="x1-10004x2"><font face="Verdana" size="2">Evaluation of each individual in the population      </font>      </li>       <li class="enumerate" id="x1-10006x3"><font face="Verdana" size="2">While the termination criterion is not met      </font>               <ol class="enumerate2">           <li class="enumerate" id="x1-10008x1"><font face="Verdana" size="2">Apply crossover with probability <img src="/img/revistas/cleiej/v14n3/3a052x.png" alt="Pc  " class="math"> to a certain subset of the population          </font>          </li>           <li class="enumerate" id="x1-10010x2"><font face="Verdana" size="2">Apply mutation with probability <img src="/img/revistas/cleiej/v14n3/3a053x.png" alt="Pm  " class="math"> to each generated offspring solution          </font>          </li>           <li class="enumerate" id="x1-10012x3"><font face="Verdana" size="2">Evaluation of each individual in the population          </font>          </li>           <li class="enumerate" id="x1-10014x4"><font face="Verdana" size="2">Verify natural selection criterion on all the individuals in the population and apply elimination          when needed </font>          </li>           <li class="enumerate" id="x1-10016x5"><font face="Verdana" size="2">Repopulate with new individuals if needed to meet population size</font></li>         </ol>       </li>       <li class="enumerate" id="x1-10018x4"><font face="Verdana" size="2">Return the best solution found</font></li>     </ol>  <font face="Verdana" size="2">      <br> </font>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">3   </span> <a id="x1-110003"></a>DFTs and Voice Signals</font></p>  <font face="Verdana" size="2">      ]]></body>
<body><![CDATA[<br> </font>     <p><font face="Verdana" size="2">A DFT is a tool that allows the visualization of a signal in the frequency domain <span class="cite">[<a href="#c5">5</a>]</span>, <span class="cite">[<a href="#c6">6</a>]</span>, <span class="cite">[<a href="#c7">7</a>]</span><a name="c5."></a><a name="c6."></a><a name="c7."></a>, and it is defined as: </font> </p>     <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a054x.png" alt="     &sum; fk =   Nn-=10 sne- 2&pi;Nikn    n = 0,...,N - 1.  " class="math"></font></p> </div>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">where: <br class="newline">       </font>       </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a055x.png" alt="N  " class="math"> is the number of samples of the signal.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a056x.png" alt="fk  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a057x.png" alt="kth  " class="math"> component of the array that represents the DFT.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a058x.png" alt="sn  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a059x.png" alt=" th n  " class="math"> component of the input signal expressed in the time domain. <br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">It must be noted that each <img src="/img/revistas/cleiej/v14n3/3a0510x.png" alt="f  k  " class="math"> and each <img src="/img/revistas/cleiej/v14n3/3a0511x.png" alt="s  n  " class="math"> is a complex number. The reason for using a DFT is that the alterations made on an array represent a sound effect if the array is a DFT. If the array represented a signal in the time domain, said alterations would result in meaningless distortion and misplacement of the sound waves, which is not a useful reconfiguration of the signal. <br class="newline">      <br> </font> </p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">4   </span> <a id="x1-120004"></a>The original GAVIS - Design and Implementation</font></p>   <font face="Verdana" size="2">       <br> </font>     <p><font face="Verdana" size="2">The system was originally designed to find a set of sound effects needed to convert one voice into another. It was found that the core of the problem is that of an array converter. The idea of the system is to find a set of changes such that when they are applied to source values, a good approximation of the target values is obtained. These changes use sections of the array. Basically, a random section of the array is chosen and then the values in that section are added to the values in another area of the array. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">More specifically, the mentioned changes are based on three concepts: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Initial section</span>: Has start and end index that define a portion of the array.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Destination section</span>: Is defined by a starting index where the <span class="cmti-10">initial section </span>will be added. This area is      selected randomly, but it must fit within the boundaries of the array. The following image shows how      the <span class="cmti-10">initial section </span>is added to the <span class="cmti-10">destination section</span>: <br class="newline">           <br>      </font>         <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f1.jpg" alt="PIC"> <br class="newline">             </font>             </p>   </li>   <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Coefficients</span>: The <span class="cmti-10">initial section</span>, <span class="cmti-10">destination section </span>and/or the values that will be added are multiplied      by a certain factor. <br class="newline">   </font>   </li>     ]]></body>
<body><![CDATA[</ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">These changes are actually also sound effects that generate some transformation when they are applied to the DFT of a sound signal. It is to be noted that any number of said effects may be used on the DFT of any signal. This is done by processing each transformation sequentially, which means that each effect makes its own changes on the DFT of a signal that has already undergone changes due to the processing of all previous effects. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">In this version of the system, an individual is partly composed by an array of chromosomes. Each chromosome contains several parameters that describe a sound effect as it was proposed. This poses a problem, in the sense that all the values are linked and a change in one of them may produce an invalid chromosome. The corresponding mutation operator addresses this problem, and it will be described later in this section. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The chromosome&rsquo;s parameters will be briefly named and explained: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Left limit</span>: It is a random integer value between the initial and final indices of the array.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Right limit</span>: It is generated in the same way than <span class="cmti-10">left limit</span>, but if its value is lower than <span class="cmti-10">left limit</span>&rsquo;s,      they are swapped. Both <span class="cmti-10">left limit </span>and <span class="cmti-10">right limit </span>are the boundaries of the <span class="cmti-10">initial section</span>.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Target</span>: Is a randomly generated integer value that will act as the starting point for the <span class="cmti-10">destination</span>      <span class="cmti-10">section</span>. </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Initial section coefficient</span>: The factor by which the <span class="cmti-10">initial section </span>is multiplied.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Destination section coefficient</span>: Coefficient that multiplies the <span class="cmti-10">destination section</span>.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Added section coefficient</span>: The <span class="cmti-10">initial section </span>is stored in an auxiliary array, this array is then multiplied      by the <span class="cmti-10">added section coefficient </span>and furthermore added to the <span class="cmti-10">destination section</span>. To generate all three      mentioned coefficients, the first step is to generate a random boolean value to determine whether the      coefficient should be a number between 0 and 1 or whether it should be a number between 1 and a      given maximum coefficient value. Next step is to generate another random boolean value that will      decide if the overall value of the coefficient will be multiplied by -1 or not. <br class="newline">      </font>   </li>     </ul>   <font face="Verdana" size="2">       <br> </font>     <p>   <font face="Verdana" size="2">The reasons behind the steps used to generate the coefficients in the chromosome, are that negative coefficients may be needed, and to avoid a bias in the population by having a greater chance of obtaining a coefficient that multiplies than one that divides. <br class="newline">      ]]></body>
<body><![CDATA[<br> </font> </p>     <p>   <font face="Verdana" size="2">Other than the chromosomes, an individual has variables that store the fitness and age. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">In order to obtain the fitness of an individual, the effects in the chromosomes are sequentially applied to the DFT of the source signal and then a Euclidean distance <img src="/img/revistas/cleiej/v14n3/3a0512x.png" alt="d  " class="math"> is calculated between the resulting array and the array that represents the DFT of the target signal. This process is summarized in the following equation: </font> </p>     <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0513x.png" alt="    &sum;n d =   i=1 |xi - yi| " class="math"></font></p> </div>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">where: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0514x.png" alt="d  " class="math"> is the Euclidean distance      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0515x.png" alt="n  " class="math"> is the number of chromosomes assigned to the individual      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0516x.png" alt="xi  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a0517x.png" alt="ith  " class="math"> component of the array <img src="/img/revistas/cleiej/v14n3/3a0518x.png" alt="x  " class="math">, being <img src="/img/revistas/cleiej/v14n3/3a0519x.png" alt="x  " class="math"> the original array with all the effects applied to      it </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0520x.png" alt="yi  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a0521x.png" alt="ith  " class="math"> component of the array <img src="/img/revistas/cleiej/v14n3/3a0522x.png" alt="y  " class="math">, being <img src="/img/revistas/cleiej/v14n3/3a0523x.png" alt="y  " class="math"> the target array <br class="newline">      </font>   </li>     ]]></body>
<body><![CDATA[</ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">A feature to be noted is the use of a lifespan (age) variable for individuals. This lifespan is measured in terms of iterations of the main algorithm. The variable is used to eliminate &ldquo;old&rdquo; individuals, being the purpose to restrict excessive dissemination of a good individual&rsquo;s characteristics to avoid premature convergence. When an individual &ldquo;dies&rdquo; from age, it is replaced by a new randomly generated individual. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The two main genetic operators, crossover and mutation, are present in this implementation of the system and are defined as follows: <br class="newline">       </font>       </p> <ol class="enumerate1">       <li class="enumerate" id="x1-12002x1"><font face="Verdana" size="2">Crossover: Selects the individuals to be combined and generates a single new individual. The offspring      individual inherits a chromosome <img src="/img/revistas/cleiej/v14n3/3a0524x.png" alt="i  " class="math"> from one of its parent individuals. The source of the chromosome      is decided by a boolean random number. It is important to note that the location of the inherited      chromosome is the same in the offspring individual. Figure 1 shows the process on a couple of random      arrays. <br class="newline">           <br>      </font>         <p></p>     <hr class="figure">         <div class="figure"><font face="Verdana" size="2"><a id="x1-12003r1"></a>       </font>         <div class="center">     <font face="Verdana" size="2">         <br>     </font>         ]]></body>
<body><![CDATA[<p>     </p>         <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f2.jpg" alt="PIC">         <br>     </font>  </p>         <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;1: </span><span class="content"><span class="cmsl-9">This figure shows the mechanics of the cross-over operator.</span></span></font></div>     <font face="Verdana" size="2">         <br>      </font>      </div>        <font face="Verdana" size="2">           <br>       </font>         <p></p>     </div>     <hr class="endfigure">      <font face="Verdana" size="2">          <br>      </font>         <p><font face="Verdana" size="2">The phenotypes are initially sorted by their fitness value. Then, for each phenotype in the population a      companion is chosen using a &ldquo;crossover distance&rdquo; which is described by the following equations:     </font>      </p>     <table class="equation">       <tbody>         <tr>           <td>                  <center class="math-display">      <font face="Verdana" size="2">      <img src="/img/revistas/cleiej/v14n3/3a0525x.png" alt="      -1 x = F   (p|&mu;,&sigma;) = {x : F(x|&mu;,&sigma;) = p}      " class="math-display"><a id="x1-12004r1"></a></font></center>           </td>           <td class="equation-label"><font face="Verdana" size="2">(1)</font></td>         </tr>       </tbody>     </table>       <font face="Verdana" size="2">           <br>      </font>         ]]></body>
<body><![CDATA[<p>      </p>     <table class="equation">       <tbody>         <tr>           <td>                 <center class="math-display">      <font face="Verdana" size="2">      <img src="/img/revistas/cleiej/v14n3/3a0526x.png" alt="                1   &int; x  -(t-&mu;)2- p = F(x|&mu;,&sigma;) = &sigma;&radic;2-&pi;    e 2&sigma;2  dt                      -&infin;      " class="math-display"><a id="x1-12005r2"></a></font></center>           </td>           <td class="equation-label"><font face="Verdana" size="2">(2)</font></td>         </tr>       </tbody>     </table>       <font face="Verdana" size="2">           <br>      </font>         <p>      </p>         <p><font face="Verdana" size="2">where (<a href="#x1-12004r1">1</a>) represents a normal inverse cumulative distribution function, and (<a href="#c2">2</a>) denotes <img src="/img/revistas/cleiej/v14n3/3a0527x.png" alt="p  " class="math">. <img src="/img/revistas/cleiej/v14n3/3a0528x.png" alt="Pc  " class="math"> is 1 under this      implementation. <br class="newline">             </font>             </p>   </li>   <li class="enumerate" id="x1-12007x2"><font face="Verdana" size="2">Mutation: Applies a random transformation on one or more of the parameters of a given chromosome. If the      transformation affects <span class="cmti-10">left limit </span>and/or <span class="cmti-10">right limit</span>, <span class="cmti-10">target </span>must be recalculated. The values produced by the      transformation are obtained in the same manner that the initial values of the individual were generated. In      this case, the mutation&rsquo;s objective is to un-link the parameters inside a chromosome and to diversify the      population. Mutation is activated with probability <img src="/img/revistas/cleiej/v14n3/3a0529x.png" alt="Pm  " class="math"> when offspring is spawned from crossover.      <br class="newline">   </font>   </li>     </ol>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">Due to crossover, each iteration doubles the size of the population. Therefore, to maintain a fixed population size, the offspring is evaluated, then the population is sorted again by its fitness and the worst half of the population is discarded. This operation constitutes Natural Selection simulation for the implementation. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Also, this implementation stops when a certain number of iterations was completed. It stores a copy of the best individual found across all generations. <br class="newline">      <br> </font> </p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">This version of the system was implemented in Matlab<img src="/img/revistas/cleiej/v14n3/3a0530x.png" alt="R&#9675; " class="math"> R2010b <span class="cite"><a href="#c8">[8</a>]</span><a name="c8."></a>.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">5   </span> <a id="x1-130005"></a>The new version: J-GAVIS</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">Having completed the implementation and testing on GAVIS, some defects were found: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2">The system&rsquo;s execution speed was really slow.      </font>       </li>       <li class="itemize"><font face="Verdana" size="2">Convergence took a very long time.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Although the obtained solution was good, better solutions could be obtained. <br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">We sought to address these deficiencies by the following means: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2">Changing the programming language.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Redefining some of the elements in the system. <br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">The change in the programming language was of great aid. We chose Java as the new language for implementation due to its portability and ready-to-use functionalities. Another factor which favored the election of Java as the new language was its comparative speed of execution compared to Matlab. In the next section, some comparative results between both versions will be shown. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">As far as the redefinition of elements in the algorithm, we could identify a couple of key elements which needed to be redesigned. In this section, we shall describe and explain both of the elements which were redesigned. <br class="newline">      <br> </font> </p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">5.1   </span> <a id="x1-140005.1"></a>Changes</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">First of all, we redesigned the representation of a change in the signal. This was due to the fact that a change had to be more versatile than a section of the array. We found that transporting sections of the array made the combination spectrum way too wide since the search needed to find the adequate size of the section and also the adequate section. Therefore, the new structure of a change is as follows: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Initial index</span>: Refers to a specific value in the array at a certain index. This value ranges from <img src="/img/revistas/cleiej/v14n3/3a0531x.png" alt="0  " class="math"> to      <img src="/img/revistas/cleiej/v14n3/3a0532x.png" alt="array  " class="math"> <img src="/img/revistas/cleiej/v14n3/3a0533x.png" alt="length  " class="math">.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Offset</span>: Defines a distance from the <span class="cmti-10">initial index</span>. It must be noted that <span class="cmti-10">offset </span>may have values in the      range <img src="/img/revistas/cleiej/v14n3/3a0534x.png" alt="{- array  " class="math"> <img src="/img/revistas/cleiej/v14n3/3a0535x.png" alt="length  " class="math">, <img src="/img/revistas/cleiej/v14n3/3a0536x.png" alt="+ array  " class="math"> <img src="/img/revistas/cleiej/v14n3/3a0537x.png" alt="length} " class="math">.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Destination index</span>: It is the number where <span class="cmti-10">initial index </span>will be transported as to be added. The value      is determined by <span class="cmti-10">initial index </span>+ <span class="cmti-10">offset</span>. This value may be outside of the array&rsquo;s boundaries.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><span class="cmti-10">Gain</span>: The value that will be added is multiplied by this coefficient. <br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">The following figure shows the process in which a change is made on an array under the new implementation: <br class="newline">      <br> </font> </p>     <p>   </p> <hr class="figure">     <div class="figure">       <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f3.jpg" alt="PIC">    <br>  </font>  </p> </div>   <font face="Verdana" size="2">       <br> </font>     ]]></body>
<body><![CDATA[<p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   <font face="Verdana" size="2">As in the previous version of the system, the changes are actually also sound effects that generate some transformation when they are applied to the DFT of a sound signal. Also, the application of the changes is still cumulative. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The new version of the changes were created in order to lower the number of operations performed by a gene within each individual. This new approach achieves a more fine-grained evolution on each individual and yields a &ldquo;high definition&rdquo; individual. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">This choice allows a greater freedom when crossover is executed since the new individuals have more elements than in the original version, leading to a greater number of possible crossover points.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">An individual under the new implementation here presented is still defined as being partly composed by an array of chromosomes. However, it was greatly simplified from the previous version. <br class="newline">      <br> </font> </p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">As in the former version of the system, an individual has variables that store the fitness and an age. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">It is to be noted that under this implementation of the system, the mutation operator is now irrelevant due to the number of new genes that enter the population by means of the process mentioned above. </font>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">5.2   </span> <a id="x1-150005.2"></a>Fitness function</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">The original fitness function of an individual was modified to penalize changes that occur outside of the boundaries of the array. Nonetheless, the main concept of the function was preserved and still refers to a total Euclidean distance <img src="/img/revistas/cleiej/v14n3/3a0538x.png" alt="d  " class="math"> between the array with the effects already applied on it and the array representing the DFT of the target signal. The following equation shows how the value is calculated: </font> </p>     <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p> <table class="equation">   <tbody>     <tr>       <td>       <center class="math-display">       <font face="Verdana" size="2">       <img src="/img/revistas/cleiej/v14n3/3a0539x.png" alt="      0            n            2n d =  &sum;    f *|x |+ &sum;  |x - y|+  &sum;   f *|x |     i= -n-1    i   i=1  i   i  i=n+1     i" class="math-display"><a id="x1-15001r3"></a></font></center>       </td>       <td class="equation-label"><font face="Verdana" size="2">(3)</font></td>     </tr>   </tbody> </table>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p> </p> </div>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">where: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0540x.png" alt="d  " class="math"> is the Euclidean distance      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0541x.png" alt="n  " class="math"> is the number of chromosomes assigned to the individual      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0542x.png" alt="xi  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a0543x.png" alt="ith  " class="math"> component of the array <img src="/img/revistas/cleiej/v14n3/3a0544x.png" alt="x  " class="math">, being <img src="/img/revistas/cleiej/v14n3/3a0545x.png" alt="x  " class="math"> the original array with all the effects applied to      it </font>       </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0546x.png" alt="yi  " class="math"> is the <img src="/img/revistas/cleiej/v14n3/3a0547x.png" alt="ith  " class="math"> component of the array <img src="/img/revistas/cleiej/v14n3/3a0548x.png" alt="y  " class="math">, being <img src="/img/revistas/cleiej/v14n3/3a0549x.png" alt="y  " class="math"> the target array      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0550x.png" alt="f  " class="math"> is a scalar factor used as a coefficient for penalty <br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">It may be observed in (<a href="#c3">3)</a> that <img src="/img/revistas/cleiej/v14n3/3a0551x.png" alt="i  " class="math"> may have values lower than 1 and greater than <img src="/img/revistas/cleiej/v14n3/3a0552x.png" alt="n  " class="math">. The reason for using the values outside the boundaries of the array is for the algorithm to learn proper values for the <span class="cmti-10">offset </span>parameter and to randomly nullify certain changes. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The Natural Selection simulation model was preserved from the previous version. Nonetheless, some alternatives were tested before making this choice: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2">Eliminating a uniformly distributed group of individuals.      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Maintaining only the offspring individuals (crossover was different and two new solutions were spawned      instead of one).</font></li>     </ul>  <font face="Verdana" size="2">      <br> </font>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">Neither of these alternatives proved to be better than eliminating the worst half of the population. Also it is to be emphasized that the age helped to keep the diversity in the population across all iterations since it forces new individuals to replace old ones.&nbsp;</font></p>     <p>    </p>     <p><font face="Verdana" size="2"><span class="titlemark">6   </span> <a id="x1-160006"></a>Results</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">Several results were obtained from tests executed on the system. The instances of the tests all included two input arrays and two destination arrays. Each execution used the following parameters: <br class="newline">       </font>       </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2">Signal length: 15 samples      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Number of chromosomes per individual: 300      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Population size: 1000      </font>      </li>       <li class="itemize"><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a0553x.png" alt="P  m  " class="math">: 0.5 </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Probability of changing a parameter of a chromosome: 0.05      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Individual lifespan: 5 generations      </font>      </li>       <li class="itemize"><font face="Verdana" size="2">Iterations: 1500<br class="newline">      </font>   </li>     </ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">These tests were performed on both the previous and the current implementation with the same parameters to make the comparison as fair as possible. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The results of the tests are shown in Figures <a href="#x1-16001r2">2</a> (for GAVIS) and <a href="#x1-16002r3">3</a> (for J-GAVIS).&nbsp;</font></p>     ]]></body>
<body><![CDATA[<p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16001r2"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05t1.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;2: </span><span class="content"><span class="cmsl-9">Execution results for GAVIS. </span></span>   </font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     ]]></body>
<body><![CDATA[<p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16002r3"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05t2.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;3: </span><span class="content"><span class="cmsl-9">Execution results for J-GAVIS. </span></span>   </font></div> <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   <font face="Verdana" size="2">These results show that J-GAVIS&rsquo; performance is clearly superior to that of GAVIS.&nbsp;</font></p>     <p>   <font face="Verdana" size="2">These improvements can be explained due to the following reasons: </font>      </p> <ul class="itemize1">       <li class="itemize"><font face="Verdana" size="2">The better results in quality of the solution may be explained by the new structure of the changes that are      being used in the new implementation. As mentioned previously, the changes now target single element in the      array, instead of a full section of the array. By operating in this manner, greater precision is achieved since      changing a single element in the array yields a lower impact variation whereas using a whole section of the      array for the change has a higher impact. Hence, two positive effects may be observed when using the new      embodiment of the changes: </font>               <ol class="enumerate1">           <li class="enumerate" id="x1-16004x1"><font face="Verdana" size="2">More subtle transformations are achieved by using only one of the components of the array. The          solutions that are obtained are more fine-grained. </font>          </li>           <li class="enumerate" id="x1-16006x2"><font face="Verdana" size="2">Using a section of an array to implement transformations has the risk of changing a vicinity of          the component which needed to be improved. Potentially, this vicinity had high quality but was          being overwritten or modified by the incoming section. Using a single component of the array to          represent the change eliminates this &ldquo;collateral damage&rdquo;.</font></li>         </ol>       </li>       <li class="itemize"><font face="Verdana" size="2">Improvement in speed can be observed in the performance charts shown in this section. We explain this      improvement due to the fact that MATLAB is natively an interpreted language, which makes it execute slower      than Java which is not. Another of the reasons why J-GAVIS executed faster than the original      GAVIS, is that we found a deficiency in the evaluation process in GAVIS, happening twice in      the case of certain individuals, since under the original implementation it was not possible to      know when an individual had been freshly evaluated or not. We also found that eliminating the      mutation operator (it was not necessary under the new version) did help to make the speed      faster.</font></li>     </ul>  <font face="Verdana" size="2">      <br> </font>     <p>   <font face="Verdana" size="2">Figures <a href="#x1-16007r4">4</a> and <a href="#x1-16008r5">5</a> show the two output arrays for GAVIS and the found solutions. Figures <a href="#x1-16009r6">6</a> and <a href="#x1-16010r7">7</a> show the two output arrays for J-GAVIS and the respective solutions. In Figures <a href="#x1-16007r4">4</a> and <a href="#x1-16008r5">5</a>, the dotted lines represent each transformation of the respective original arrays using the effect described by the best individual found at each test. The solid line in the same Figures denotes the target array. For figures <a href="#x1-16009r6">6</a> and <a href="#x1-16010r7">7</a> each color line represents a test and the cyan colored line represents the target signal. <br class="newline">      ]]></body>
<body><![CDATA[<br> </font> </p>     <p>   <font face="Verdana" size="2">Again, it may be noted that the results obtained for J-GAVIS are of greater quality than those obtained by GAVIS. <br class="newline">      <br> </font> </p>     <p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16007r4"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f4.jpg" alt="PIC">     <br>  </font>  </p>     ]]></body>
<body><![CDATA[<div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;4: </span><span class="content"><span class="cmsl-9">Output array 1 (GAVIS). </span></span>   </font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16008r5"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f5.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;5: </span><span class="content"><span class="cmsl-9">Output array 2 (GAVIS). </span></span>   </font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16009r6"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f6.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;6: </span><span class="content"><span class="cmsl-9">Output array 1 (J-GAVIS). </span></span>   </font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   </p> <hr class="figure">     ]]></body>
<body><![CDATA[<div class="figure">  <font face="Verdana" size="2">  <a id="x1-16010r7"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f7.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;7: </span><span class="content"><span class="cmsl-9">Output array 2 (J-GAVIS). </span></span>   </font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       <br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     ]]></body>
<body><![CDATA[<br> </font>     <p>   </p> <hr class="figure">     <div class="figure">  <font face="Verdana" size="2">  <a id="x1-16011r8"></a>  </font>      <div class="center"> <font face="Verdana" size="2">     <br> </font>     <p> </p>     <p><font face="Verdana" size="2"><img src="/img/revistas/cleiej/v14n3/3a05f8.jpg" alt="PIC">     <br>  </font>  </p>     <div class="caption"><font face="Verdana" size="2"><span class="id">Figure&nbsp;8: </span><span class="content"><span class="cmsl-9">Fitness values per generation. The X-Axis represents the generation number and the Y-Axis represents</span> <span class="cmsl-9">the distance value. </span></span></font></div> <font face="Verdana" size="2">     <br>  </font>  </div>   <font face="Verdana" size="2">       ]]></body>
<body><![CDATA[<br> </font>     <p>   </p> </div> <hr class="endfigure"> <font face="Verdana" size="2">     <br> </font>     <p>   <font face="Verdana" size="2">In figure <a href="#x1-16011r8">8</a> the dotted line symbolizes the average of the distance for all the population at each generation. The solid line in the same Figure shows the evaluation (distance) of the best individual at each generation. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">It may be observed that for the first generations of the execution, the distance diminishes in a greater ratio than at later generations. Also, the difference between the fitness of the best individual and the average fitness of the population is also greater toward early generations. This pattern was present in both GAVIS and J-GAVIS.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">It must be noted that at certain generations, the fitness of the best individual is worse than that of the best individual at a previous generation. This is due to the fact that a better individual did not spawn from the current generation and that the former best individual died of age. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">The average fitness of the population has a tendency to improve over all generations. This implies that all the population gradually lowers its distance. This tendency was observed in both implementations of the system. </font>    </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana" size="2"><span class="titlemark">7   </span> <a id="x1-170007"></a>Conclusions, current and future work</font></p>  <font face="Verdana" size="2">      <br> </font>     <p><font face="Verdana" size="2">In this work, it has been empirically shown that it is possible to obtain a set of effects such that when it is applied to multiple source signal DFT arrays, the result approximates the corresponding target signal DFT arrays. Based on these results, a conclusion that may be inferred is that using multiple samples of source and target voices, it is possible to find a set of effects which can transform the sound of one voice to another specific one. <br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Another conclusion which may be drawn is that heuristic methods are a good choice to tackle the problem. This is because the search space for this problem is very large and heuristic methods are a convenient alternative to explore search spaces of this type due to their evaluation capability. Another important feature is that these methods can generate good candidate solutions in order to find an approximation close enough to the optimal solution.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Current work is being done on the system to test other heuristic methods. A preliminary version based on Ant Colony Optimization <span class="cite">[<a href="#c9">9</a>]</span><a name="c9."></a> has already been tested and the results are promising from an efficiency standpoint, but the correct execution requires the setting of many parameters. The use of other heuristic methods to solve this problem is also envisaged as future work. Nonetheless, genetic algorithms seem to work better than other heuristic methods so far.<br class="newline">      <br> </font> </p>     <p>   <font face="Verdana" size="2">Different fitness functions and mechanics for genetic operators continue to be explored and tested. It was found that the inclusion of these new features constantly improves the performance of the algorithm and quality of the found solutions. To continue to improve the system, a version in C is planned to be released and changes in the crossover operator, chromosome representation and fitness function are being actively researched. <br class="newline">      <br> </font> </p>     ]]></body>
<body><![CDATA[<p>   <font face="Verdana" size="2">Another feature which could be implemented as future work is the use of statistics in the system to automatically vary <img src="/img/revistas/cleiej/v14n3/3a0554x.png" alt="P  c  " class="math"> and <img src="/img/revistas/cleiej/v14n3/3a0555x.png" alt="P  m  " class="math"> depending on the population state of an instance of the problem being solved.&nbsp;</font></p>     <p>     </p>     <p><font face="Verdana" size="2"><a id="x1-180007"></a>References</font></p>  <font face="Verdana" size="2">      <br> </font>     <p>    </p>     <div class="thebibliography">         <p><font face="Verdana" size="2"><span class="biblabel"><a name="c1"></a>  [<a href="#c1.">1</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>M.&nbsp;Bozzo, M.&nbsp;Guti&eacute;rrez, and T.&nbsp;Bozzo, &ldquo;Genetic algorithm based voice imitation system,&rdquo; in <span class="cmti-10">Proceedings of the JCCC XXIX International Conference</span>, 2010. </font>    </p>          <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"><a name="c2"></a>  [<a href="#c2.">2</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>Av voice changer. [Online]. Available:  <a href="%20http:/www.audio4fun.com/">http://www.audio4fun.com/</a> </font>    <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"><a name="c3"></a>  [<a href="#c3.">3</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>J.&nbsp;Holland, <span class="cmti-10">Adaptation in Natural and Artificial Systems</span>.   The MIT Press, 1992.     </font>    </p>          ]]></body>
<body><![CDATA[<!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"><a name="c4"></a>  [<a href="#c4.">4</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>M.&nbsp;Mitchell, <span class="cmti-10">An Introduction to Genetic Algorithms</span>.   The MIT Press, 1998.     </font>    </p>          <p><font face="Verdana" size="2"><span class="biblabel"><a name="c5"></a>  [<a href="#c5.">5</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>J.&nbsp;Cooley and J.&nbsp;Tukey, &ldquo;An algorithm for machine computation of complex fourier series,&rdquo; <span class="cmti-10">Math.</span>    <span class="cmti-10">Comp.</span>, pp. 297&ndash;301, 1965. </font>    </p>          <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"><a name="c6"></a>  [<a href="#c6.">6</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>G.&nbsp;Folland, <span class="cmti-10">Fourier analysis and its applications</span>.   Thomson Brooks/Cole, 1992.     </font>    </p>          <p><font face="Verdana" size="2"><span class="biblabel"><a name="c7"></a>  [<a href="#c7.">7</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>G.&nbsp;Marchuk, &ldquo;Methods of numerical mathematics,&rdquo; <span class="cmti-10">Journal of Applied Mathematics and Mechanics</span>,    1975. </font>    </p>          <!-- ref --><p><font face="Verdana" size="2"><span class="biblabel"><a name="c8"></a>  [<a href="#c8.">8</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>MathWorks. Documentation center matlab r2010b. 2010.     </font>    </p>          <p><font face="Verdana" size="2"><span class="biblabel"><a name="c9"></a>[<a href="#c9.">9</a>]<span class="bibsp">&nbsp;&nbsp;&nbsp;</span></span>M.&nbsp;Dorigo, V.&nbsp;Maniezzo, and A.&nbsp;Colorni, &ldquo;The ant system: Optimization by a colony of cooperating    agents,&rdquo; <span class="cmti-10">IEEE Transactions on Systems, Man, and Cybernetics part B</span>, vol.&nbsp;26, no.&nbsp;1, pp. 1&ndash;13, 1996. </font> </p>     </div>            ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bozzo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Gutiérrez]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Bozzo]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Genetic algorithm based voice imitation system]]></article-title>
<source><![CDATA[Proceedings of the JCCC XXIX International Conference]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<source><![CDATA[Av voice changer]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Holland]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Adaptation in Natural and Artificial Systems]]></source>
<year>1992</year>
<publisher-name><![CDATA[The MIT Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mitchell]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[An Introduction to Genetic Algorithms]]></source>
<year>1998</year>
<publisher-name><![CDATA[The MIT Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Cooley]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Tukey]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An algorithm for machine computation of complex fourier series]]></article-title>
<source><![CDATA[Math. Comp]]></source>
<year>1965</year>
<page-range>297-301</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Folland]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Fourier analysis and its applications]]></source>
<year>1992</year>
<publisher-name><![CDATA[Thomson Brooks/Cole]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Marchuk]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Methods of numerical mathematics]]></article-title>
<source><![CDATA[Journal of Applied Mathematics and Mechanics]]></source>
<year>1975</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<source><![CDATA[MathWorks: Documentation center matlab r2010b]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dorigo]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Maniezzo]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[Colorni]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The ant system: Optimization by a colony of cooperating agents]]></article-title>
<source><![CDATA[IEEE Transactions on Systems, Man, and Cybernetics part B]]></source>
<year>1996</year>
<volume>26</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>1-13</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
