The basic method for describing a database is through the Diphone_Init
command. This function takes a single argument, a list of
pairs of parameter name and value. The parameters are
nameAn atomic name for this database.
group_fileThe filename of a group file, which may itself contain parameters describing itself
typeThe default value is pcm, but for distributed voices
this is always lpc.
index_fileA filename containing the diphone dictionary.
signal_dirA directory (slash terminated) containing the pcm waveform files.
signal_extA dot prefixed extension for the pcm waveform files.
pitch_dirA directory (slash terminated) containing the pitch mark files.
pitch_extA dot prefixed extension for the pitch files
lpc_dirA directory (slash terminated) containing the LPC coefficient files and residual files.
lpc_extA dot prefixed extension for the LPC coefficient files
lpc_typeThe type of LPC file (as supported by the speech tools)
lpc_frame_offsetThe number of frames "missing" from the beginning of the file. Often LPC parameters are offset by one frame.
lpc_res_extA dot prefixed extension for the residual files
lpc_res_typeThe type of the residual files, this is a standard waveform type as supported by the speech tools.
lpc_res_offsetNumber of seconds "missing" from the beginning of the residual file. Some LPC analysis technique do not generate a residual until after one frame.
samp_freqSample frequency of signal files
phonesetPhoneset used, must already be declared.
num_diphonesTotal number of diphones in database. If specified this must be equal or bigger than the number of entries in the index file. If it is not specified the square of the number of phones in the phoneset is used.
sig_bandnumber of sample points around actual diphone to take from file. This should be larger than any windowing used on the signal, and/or up to the pitch marks outside the diphone signal.
alternates_afterList of pairs of phones stating replacements for the second part of diphone when the basic diphone is not found in the diphone database.
alternates_beforeList of pairs of phones stating replacements for the first part of diphone when the basic diphone is not found in the diphone database.
default_diphoneWhen unexpected combinations occur and no appropriate diphone can be found this diphone should be used. This should be specified for all diphone databases that are to be robust. We usually us the silence to silence diphone. No mater how carefully you designed your diphone set, conditions when an unknown diphone occur seem to always happen. If this is not set and a diphone is requested that is not in the database an error occurs and synthesis will stop.
Examples of both general set up, making group files and general use are in
lib/voices/english/rab_diphone/festvox/rab_diphone.scm