size_t HtkFile::write_next_vector(float *data) { if (!big_endian) { for (size_t i = 0; i < (unsigned int)num_coefs(); i++) { swap4Bytes(&(data[i]),&(data[i])); } } size_t rc = fwrite(data,sizeof(float),num_coefs(),stream); return rc; }
size_t HtkFile::read_next_vector(double *data) { float fdata[num_coefs()]; size_t rc = fread(fdata,sizeof(float), num_coefs(),stream); for (size_t i = 0; i < rc; i++) { if (!big_endian) { swap4Bytes(&(fdata[i]),&(fdata[i])); } data[i] = fdata[i]; } return rc; }
void HtkFile::print_header() { std::cout << " nSamples: " << header.nSamples << std::endl; std::cout << " sampPeriod: " << (header.sampPeriod/10.0) << " us" << std::endl; std::cout << " SampSize: " << header.sampSize << std::endl; std::cout << " parmKind: " << parmKind2str() << std::endl; std::cout << " Num Coefs: " << num_coefs() << std::endl; std::cout << " Machine type: " << (big_endian ? "big" : "little") << " endian." << std::endl; }
size_t HtkFile::read_next_vector(infra::vector &data) { float *fdata; fdata = new float[num_coefs()]; data.resize(num_coefs()); size_t rc = fread(fdata,sizeof(float), num_coefs(),stream); for (size_t i = 0; i < rc; i++) { if (!big_endian) { swap4Bytes(&(fdata[i]),&(fdata[i])); } data[i] = fdata[i]; } delete [] fdata; return rc; }
size_t HtkFile::read_next_vector(float *data) { size_t rc = fread(data,sizeof(float),num_coefs(),stream); if (!big_endian) { for (size_t i = 0; i < rc; i++) { swap4Bytes(&(data[i]),&(data[i])); } } return rc; }