/* C module to read in the parameter values from the configuration file */ /* */ int GetConfiguration(char *cFile, char *hmmListFile, char *trnFile, float *slopeRate, float *varRate) { FILE *ip; /* configuration file pointer */ char line[MAXSTRLEN]; /* temporary string - current line */ char cType[MAXSTRLEN]; /* temporary string - current tag */ char cStr[MAXSTRLEN]; /* temporary string - current argument */ int cParams = 0; /* parameter counter */ /* Set default values for the slope and variance */ *slopeRate = 0.0; *varRate = 0.0; /* Open the configuration file */ if ((ip = fopen(cFile,"r")) == NULL) { printf("SegVit: can't open configuration file %s\n", cFile); return(RTN_ERROR); } else { printf("\nConfiguration data v2:\n=====================\n"); /* Read next line from configuration file */ while (fgets(line,MAXSTRLEN,ip) != NULL) { cParams++; /* Parse current line of configuration file */ sscanf(line,"%s %s",cType,cStr); /* Check for valid parameter tags */ if (!strncmp(cType,"",9)) { sscanf(cStr,"%s",trnFile); printf(" speechList file = %s\n",trnFile); } else if (!strncmp(cType,"",11)) { sscanf(cStr,"%s",hmmListFile); printf(" Model file list = %s\n",hmmListFile); } else if (!strncmp(cType,"",12)) { sscanf(cStr,"%f",slopeRate); printf(" Slope learning rate = %f\n",*slopeRate); } else if (!strncmp(cType,"",10)) { sscanf(cStr,"%f",varRate); printf(" Variance learning rate = %f\n",*varRate); } /* Otherwise report an error */ else { printf("Illegal configuration line - %s\n", line); cParams--; return(RTN_ERROR); } } /* while */ } /* if */ return(cParams); }