Hello all. I am able to programmatically decode speex just fine (playing others' encodings), but my encoding eats the beginning of words. If I encode a word that gradually increases in volume, like "wonderful", I hear "nderful", but if I encode something percussive like "beep" I hear almost all of it. It's as if the modeller does not detect the start of a word. Has anyone seen this before?
<br><br>In case you&#39;re interested here is the init code:<br><br><br>&nbsp;&nbsp;&nbsp; int quality = 3;<br>&nbsp;&nbsp;&nbsp; int off = 0;<br><br>&nbsp;&nbsp;&nbsp; speex_bits_init(&amp;encoderBits);<br>&nbsp;&nbsp;&nbsp; encoder = speex_encoder_init(&amp;speex_nb_mode);<br>&nbsp;&nbsp;&nbsp; speex_encoder_ctl( encoder, SPEEX_GET_SAMPLING_RATE, &amp;sampleRate );
<br>&nbsp;&nbsp;&nbsp; speex_encoder_ctl( encoder, SPEEX_GET_FRAME_SIZE, &amp;frameSize);<br><br>&nbsp;&nbsp;&nbsp; preprocess = speex_preprocess_state_init( frameSize, sampleRate );<br>&nbsp;&nbsp;&nbsp; speex_preprocess_ctl( preprocess, SPEEX_SET_QUALITY, (void*)&amp;quality);
<br><br>&nbsp;&nbsp;&nbsp; speexRecordData = (char*)malloc(frameSize*sizeof(char)*CHANNELS); // 2 channels, input and output<br><br><br>and the encoding code:<br><br><br>&nbsp;&nbsp;&nbsp; speex_bits_reset( &amp;encoderBits );<br>&nbsp;&nbsp;&nbsp; if ( speex_preprocess( preprocess, (short*)recording.data(), 0 ) &amp;&amp;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;speex_encode_int( encoder, (short*)recording.data(), &amp;encoderBits ) )&nbsp;&nbsp;&nbsp; // encode to speex<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int numBytes = speex_bits_write( &amp;encoderBits, speexRecordData, frameSize );<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...
<br><br><br>Thanks in advance for your insight.<br><br><br><br><br>yx<br>