Producing the output sound file




Download 1,09 Mb.
bet52/62
Sana21.03.2017
Hajmi1,09 Mb.
#917
1   ...   48   49   50   51   52   53   54   55   ...   62
4.3.3 Producing the output sound file

Hindiengine will first get the token name and token type from tokens database. Once the token name is obtained, it is used as a key to retrieve the sound file from the voice database. The following code shows the whole process:

//Fill the key to retrieve content from the database

sprintf(tokenbuffer,"%d",index);

tokenskey.dptr = tokenbuffer;

tokenskey.dsize = strlen(tokenbuffer);

tokenscontent = (*pgdbm_fetch)(dbftokens,tokenskey);
//Get the token and the type from tokenscontent.

token = strtok(tokenscontent.dptr,"|");

ttype1 = strtok(NULL,"|");

ttype = atoi(ttype1);


//This code finds the length of the voice file and copies the header of //the wav file into an variable Header which will later be added to the //output sound file. In wav files 4 bytes after 40 bytes gives the size //of the file.

voicekey.dptr = token;

voicekey.dsize = strlen(token);

voicecontent = (*pgdbm_fetch)(dbfvoice,voicekey);

memcpy(Header,&voicecontent.dptr[0],40);

len = (voicecontent.dsize-44);


//This code copies the remaining wav file (except the first 44 bytes of //the header) into a temporary character array called data and it will //be concatenated to the output sound file later.

memcpy(data,&voicecontent.dptr[44],len);

This completes the description of model 3.


Download 1,09 Mb.
1   ...   48   49   50   51   52   53   54   55   ...   62




Download 1,09 Mb.