<div>
<p>Hi Xavier and all,<br>   I am a student of Tongji University. Recently I am focus on Voice Conversion research and find CLAM is my best choice to pilot HNM. But I find that CLAM uses a few extern libs. That makes me hard to rebuild CLAM on windows, and the released Windows version always crash in my laptop. So I am now going to implement HNM in C code step by step, and reference on CLAM. I have readed your thesis and know that you have implemented a matlab prototype. If that matlab prototype can be released out, it will be excellent even in matlab's ".p" type.
<br>    Now let's back to the shadiness code.</p>
<p>1. <br>In "SpectrualAnalysis.cxx", line 136, <br>in.GetAudioChunk(0,in.GetSize()-1 ,mAudioFrame,true );<br>If the endIndex is non-inclusive, the why in.GetSize()-1? Is that because the windows length is odd and throw the last sample?
</p>
<p>nBytesToCopy=(endIndex-beginIndex+1)*sizeof(double); <br>It is my modification, not a different version of CLAM.</p>
<p>2.<br>In the papers of Xavier et al ( there are two Xavier, opps ), the window length is pitch-synchronized, but CLAM code seems not do that.</p>
<p>3.<br>I want to do Voice Conversion. Could anyone help me to generate some Analysis -> Transform -> Synthesis example output?<br>"Elvis.wav" is too special. Two of my samples are in the following URL.<br>
<a href="http://neediss.googlepages.com/female.wav">http://neediss.googlepages.com/female.wav</a><br><a href="http://neediss.googlepages.com/aboutit.wav">http://neediss.googlepages.com/aboutit.wav</a></p>
<p>4.<br>Does anyone has console version of SMS? How can I get it?</p>
<p>5.<br>Congratulation on the win of ACM MM06 Open Souce Award.</p><br><br>////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div>
<div><span class="gmail_quote">2006/7/19, Xavier Amatriain <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:xamat@iua.upf.edu" target="_blank">xamat@iua.upf.edu</a>>:</span> 
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hi Gu,<br><br>Nice way to introduce yourself to the list, with a bug in the guts of<br>CLAM :)<br><br>This code is rather obscure, I have problems  guessing it myself, but as 
<br>far as I can<br>tell there is no such bug.<br><br>The issue is that the last index is non-inclusive. So if you  have<br>beginIndex=0 and endIndex=10<br>it means that you want to copy from 0 to 9, but not 10 (I know we should 
<br>look for a better name<br>for the argument).<br><br>You say that in your code you have:<br><br>nBytesToCopy=(endIndex-beginIndex+1)*sizeof(double);<br><br>but in my local file I see:<br><br>nBytesToCopy=(endIndex-beginIndex)*sizeof(double); 
<br><br>Maybe you have a different version of CLAM?<br><br>In any case, thanks for the feedback and we will look further into it.<br><br>Neediss Gu wrote:<br>> line 163:<br>> //////////////////////////<br>> if(endIndex>=GetSize()) 
<br>>  {<br>>   TSize ending=endIndex-GetSize();<br>>   memset(chunk.GetBuffer().GetPtr()+GetSize()-beginIndex<br>> ,0,ending*sizeof(TData));<br>>   endIndex=GetSize();<br>>  }<br>><br>> nBytesToCopy=(endIndex-beginIndex+1)*sizeof(double); 
<br>> //////////////////////////<br>> Maybe it should be changed to the following<br>><br>> if(endIndex>=GetSize())<br>>  {<br>>   TSize ending=endIndex-GetSize()+1;<br>>   memset(chunk.GetBuffer().GetPtr()+GetSize()-beginIndex 
<br>> +offset,0,ending*sizeof(TData));<br>>   endIndex=GetSize();<br>>  }<br>><br>> and  : size=endIndex-beginIndex; -> size=endIndex-beginIndex+1.<br>><br>> --<br>> Gu Renmin (Charles Neediss)<br>
> Image, Graph, Video, Speech, Audio, ...<br>> CS Dept. of Tongji University, Shanghai, China<br>> Cell:   +(86) 13816064123<br>> Work hard, work smart!!!<br>><br><br></blockquote></div><br><br clear="all">
<br>-- <br>Gu Renmin (Charles Neediss)<br>Image, Graph, Video, Speech, Audio, ...<br>CS Dept. of Tongji University, Shanghai, China<br>Cell:   +(086) 013816064123<br>Work hard, work smart!!!<br>