Example #1
0
/* close file */
static boolean
close_files()
{
  size = sizeof(SP16) * speechlen;

  if (writing_file) {
    if (use_raw) {
      if (close(fd) != 0) {
	perror("adinrec");
	return FALSE;
      }
    } else {
      if (wrwav_close(fp) == FALSE) {
	fprintf(stderr, "adinrec: failed to close file\n");
	return FALSE;
      }
    }
    printf("%s: %d samples (%.2f sec.) [%6d (%5.2fs) - %6d (%5.2fs)]\n", 
	   outpath, speechlen, 
	   (float)speechlen / (float)sfreq,
	   trigger_sample, (float)trigger_sample / (float)sfreq, 
	   trigger_sample + speechlen, (float)(trigger_sample + speechlen) / (float)sfreq);
    
    writing_file = FALSE;
  }

  return TRUE;
}  
Example #2
0
//認識結果の一部を waveで保存する.
void JuliusPlus::WaveCutter(Recog *recog,int all_frame,int startfream,int endfream,const std::string& filename) const
{
	if (startfream == 0 && endfream == 0)
	{//all
		endfream = this->WaveFileData.size();
	}
	else
	{
		if (endfream < startfream)
		{
			return ;
		}
	}
	int allsize = this->WaveFileData.size();
	int of_fream = allsize / all_frame;
	startfream *= of_fream;
	endfream *= of_fream;
	//recog->jconf->input.framesize;

	FILE *recfile_fp = wrwav_open( (char*) filename.c_str(), recog->jconf->input.sfreq);
	if(recfile_fp)
	{
		wrwav_data(recfile_fp,(SP16*) ((&this->WaveFileData[0]) + startfream), endfream - startfream);
		wrwav_close(recfile_fp);
	}
}
Example #3
0
/* close file */
static void
close_file()
{
  size = sizeof(SP16) * speechlen;
  if (use_raw) {
    if (fd >= 0) {
      if (close(fd) != 0) {
	perror("adinrec");
      }
    }
  } else {
    if (fp != NULL) {
      if (wrwav_close(fp) == FALSE) {
	j_printerr("adinrec: failed to close file\n");
      }
    }
  }
  fprintf(stderr, "\n%d samples (%d bytes, %.2f sec.) recorded\n", speechlen, size, (float)speechlen / (float)sfreq);
}