⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsphere.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 5 页
字号:
    fprintf(spfp,"------ Field access:\n");    if (sp_h_get_field(sp,"field1",T_STRING,(void *)&str) != 0){	fprintf(spfp,"    sp_h_get_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    lint=1;    free(str);    if (sp_h_get_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_get_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)&real)) != 0){      fprintf(spfp,	    "    sp_h_get_field: valid REAL command returned %d and failed\n",	     rtn);	sp_print_return_status(spfp);    }	       fprintf(spfp,"------ Illegal Field access:\n");    if ((rtn=sp_h_get_field(SPNULL,"field3",T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, SPNULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,CNULL,T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Field NULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);        sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",6,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Bad Type, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)CNULL)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Null value ");	fprintf(spfp,"pointer, returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_INTEGER,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed as ");	fprintf(spfp,"an INTEGER returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_STRING,(void *)&real)) < 100){	fprintf(spfp,		"    sp_h_get_field: Invalid REAL command Accessed as an ");	fprintf(spfp,"STRING returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_STRING,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a STRING failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_REAL,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_REAL,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_INTEGER,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a INTEGER failed\n");	sp_print_return_status(spfp);   }    fprintf(spfp,"------ Verifying 3 header fields\n");    if ((sp->write_spifr->header->fc != 3) ||	(sp->write_spifr->status->file_header->fc != 3)){	fprintf(spfp,"***************************************************\n");	fprintf(spfp,"*  The following header should have three fields  *\n");	fprintf(spfp,"***************************************************\n");	sp_file_dump(sp,spfp);	exit(-1);    }    fprintf(spfp,"------ Illegal Field Deletion:\n");    if ((rtn=sp_h_delete_field(SPNULL,"field1")) < 100){	fprintf(spfp,		"    sp_h_delete_field: Invalid Deletion, SPNULL, failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,CNULL)) < 100){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"Field name NULL, failed\n");	sp_print_return_status(spfp);    }    if (((rtn=sp_h_delete_field(sp,"field84")) == 0) && (rtn >= 100)){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"field already deleted, failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Legal Field Deletion:\n");    if ((rtn=sp_h_delete_field(sp,"field1")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid STRING Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field2")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid INTEGER Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field3")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid REAL Deletion failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Verifying an empty header\n");    if ((sp->write_spifr->header->fc != 0) ||	(sp->write_spifr->status->file_header->fc != 0)){	fprintf(spfp,"***************************************************\n");	fprintf(spfp,"*      The following header should be empty       *\n");	fprintf(spfp,"***************************************************\n");	sp_file_dump(sp,spfp);	exit(-1);    }        sp_close(sp);    system("rm -f testing.wav");    fprintf(spfp,"\n");        fprintf(spfp,"-- Read Mode header operations:\n");    if ((sp=sp_open(EX1_10,"r")) == SPNULL) {	fprintf(spfp,"   sp_open: Valid spopen for read of ");	fprintf(spfp,"file '%s' failed\n",EX1_10);	sp_print_return_status(spfp);	exit(-1);    }    fprintf(spfp,"---- Testing the file header io:\n");    fprintf(spfp,"------ Field creation:\n");    if (sp_h_set_field(SPNULL,"field1",T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null SPFILE pointer failed\n");    if (sp_h_set_field(sp,CNULL,T_STRING,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Null field name failed\n");    if (sp_h_set_field(sp,"field1",4930,(void *)"char string 1") == 0)	fprintf(spfp,"    sp_h_set_field: Invalid field type failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)CNULL) == 0)	fprintf(spfp,"    sp_h_set_field: Null value failed\n");    if (sp_h_set_field(sp,"field1",T_STRING,(void *)"string value1") != 0){	fprintf(spfp,"    sp_h_set_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    lint=1;    if (sp_h_set_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_set_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if (sp_h_set_field(sp,"field3",T_REAL,(void *)&real) != 0){	fprintf(spfp,"    sp_h_set_field: valid REAL command failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Field access:\n");    if (sp_h_get_field(sp,"field1",T_STRING,(void *)&str) != 0){	fprintf(spfp,"    sp_h_get_field: valid STRING command failed\n");	sp_print_return_status(spfp);    }    mtrf_free(str);    lint=1;    if (sp_h_get_field(sp,"field2",T_INTEGER,(void *)&lint) != 0){	fprintf(spfp,"    sp_h_get_field: valid INTEGER command failed\n");	sp_print_return_status(spfp);	exit(-1);    }    real=2.0;    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)&real)) != 0){	fprintf(spfp,"    sp_h_get_field: valid REAL command ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }	       fprintf(spfp,"------ Illegal Field access:\n");    if ((rtn=sp_h_get_field(SPNULL,"field3",T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, SPNULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,CNULL,T_REAL,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Field NULL, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",6,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, Bad Type, ");	fprintf(spfp,"returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_REAL,(void *)CNULL)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command, ");	fprintf(spfp,"Null value pointer, returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_INTEGER,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed ");	fprintf(spfp,"as an INTEGER returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field3",T_STRING,(void *)&real)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid REAL command Accessed as ");	fprintf(spfp,"an STRING returned %d and failed\n",rtn);	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_STRING,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a STRING failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_get_field(sp,"field2",T_REAL,(void *)&lint)) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid INTEGER command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_REAL,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a REAL failed\n");	sp_print_return_status(spfp);    }    if (sp_h_get_field(sp,"field1",T_INTEGER,(void *)&str) < 100){	fprintf(spfp,"    sp_h_get_field: Invalid STRING command accessed ");	fprintf(spfp,"as a INTEGER failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Illegal Field Deletion:\n");    if ((rtn=sp_h_delete_field(SPNULL,"field1")) < 100){     fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, SPNULL, failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,CNULL)) < 100){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"Field name NULL, failed\n");	sp_print_return_status(spfp);    }    if (((rtn=sp_h_delete_field(sp,"field84")) == 0) && (rtn >= 100)){	fprintf(spfp,"    sp_h_delete_field: Invalid Deletion, ");	fprintf(spfp,"field already deleted, failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"------ Legal Field Deletion:\n");    if ((rtn=sp_h_delete_field(sp,"field1")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid STRING Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field2")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid INTEGER Deletion failed\n");	sp_print_return_status(spfp);    }    if ((rtn=sp_h_delete_field(sp,"field3")) != 0){	fprintf(spfp,"    sp_h_delete_field: Valid REAL Deletion failed\n");	sp_print_return_status(spfp);    }    fprintf(spfp,"\n");    sp_close(sp);}/*****************************************************************************/void doc_example_2_test(void){    SP_FILE *sp=SPNULL;    short *waveform;    SP_INTEGER channel_count, sample_n_bytes, sample_count;    int wave_byte_size, total_samples, samp_read;    fprintf(spfp,"-- Documentation Example 2\n");    if ((sp = sp_open(EX4_ULAW,"r")) == SPNULL) {        fprintf(spfp,"Error: Unable to open SPHERE file %s\n",EX4_ULAW);	sp_print_return_status(spfp);	exit(-1);    }    if (sp_set_data_mode(sp, "SE-PCM-2:SBF-01") > 0){	sp_print_return_status(spfp);	sp_close(sp);	exit(-1);    }    if (sp_h_get_field(sp,"channel_count",T_INTEGER,(void *)&channel_count)>0){       fprintf(spfp,"Error: Unable to get the '%s' field\n","channel_count");	sp_close(sp);	exit(-1);    }    if (sp_h_get_field(sp,"sample_n_bytes",		       T_INTEGER,(void *)&sample_n_bytes) > 0){	fprintf(spfp,"Error: Unable to get the '%s' field\n",		"sample_n_bytes");	sp_close(sp);	exit(-1);    }    if (sp_h_get_field(sp,"sample_count",T_INTEGER,(void *)&sample_count) > 0){	fprintf(spfp,"Error: Unable to get the '%s' field\n","sample_count");	sp_close(sp);	exit(-1);    }    total_samples=sample_count * channel_count;    wave_byte_size=sample_n_bytes * total_samples;    fprintf(spfp,"---- Example 2: Expected channel_count=1,      ");    fprintf(spfp,"Actually=%d\n",channel_count);    fprintf(spfp,"---- Example 2: Expected sample_n_bytes=2,     ");    fprintf(spfp,"Actually=%d\n",sample_n_bytes);    fprintf(spfp,"---- Example 2: Expected sample_count=16000,   ");    fprintf(spfp,"Actually=%d\n",sample_count);    fprintf(spfp,"---- Example 2: Expected total_samples=16000,  ");    fprintf(spfp,"Actually=%d\n",total_samples);    fprintf(spfp,"---- Example 2: Expected wave_byte_size=32000, ");    fprintf(spfp,"Actually=%d\n",wave_byte_size);    if ((waveform=(short *)mtrf_malloc(wave_byte_size)) == (short *)0){        fprintf(spfp,"Error: Unable to allocate %d bytes for the waveform\n",                       wave_byte_size);	sp_close(sp);	exit(-1);    }        if ((samp_read=sp_read_data(waveform,sample_n_bytes,total_samples,sp)) !=                     total_samples){        fprintf(spfp,"Error: Unable to read speech waveform, ");	fprintf(spfp,"%d samples read\n",samp_read);	sp_print_return_status(spfp);	sp_close(sp);	mtrf_free((char *)waveform);	exit(-1);    }    mtrf_free((char *)waveform);    sp_close(sp);    fprintf(spfp,"\n");}void doc_example_4_test(void){    SP_FILE *spp;    short *wavbuf;    SP_INTEGER lint;    SP_INTEGER buf_nsamp = 16000;    SP_INTEGER nbyte = 2;    SP_INTEGER srate = 16000;    int stow, i;    int samps_written=0, size=64000, status;    char *name="example4.wav";    double factor;	    fprintf(spfp,"-- Documentation Example 4: File Creation example\n");    fprintf(spfp,"---- filename: %s\n",name);    if ((spp = sp_open(name, "w")) == SPNULL){	fprintf(spfp,"Couldn't open NIST waveform file: %s\n", name);	sp_print_return_status(spfp); 	exit(-1);    }    fprintf(spfp,"---- Setting header fields\n");    lint = size;    if (sp_h_set_field(spp, "sample_count", T_INTEGER,(void *) &lint) != 0){	fprintf(spfp,"Error: unable to set sample_count field\n");	sp_print_return_status(spfp); 	exit(-1);    }    if (sp_h_set_field(spp, "sample_rate", T_INTEGER,(void *) &srate)){	fprintf(spfp,"Error: unable to set sample_rate field\n");	sp_print_return_status(spfp); 	exit(-1);    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -