allora... ecco il codice. Sto utilizzando il SystemC che è una libreria scritta in C++
codice:
void Htk_format_sc::WriteHTKFeature ()
{
short i=0;
float Swp[NUM_CEP]; // Vettore di appoggio
float Swp2;
PORTA_P_Mfcc Cep;
while ( true )
{
// lettura dalla fifo dei dati
Cep = p_in_Mfcc.read();
// Si esegue riordinano i coefficienti cepstrali
// infatti C0 deve essere Cep[12]
Swp2 = Cep.Mfcc[0];
Swap32((long *)&Swp2);
Swp[NUM_CEP-1]=Swp2;
for (i = 0; i < NUM_CEP - 1; i++)
{
Swp2 = Cep.Mfcc[i+1];
Swap32((long *)&Swp2);
Swp[i]=Swp2;
}
fwrite (Swp, sizeof (float), NUM_CEP, pf_out);
OutHeader.nSamples++; // Incremento del numero di blocchi
}
}
dove ovviamente la funzione Swap32 è quella che ho postato per prima!!
Grazie
Marco