### 21.4 Diphone_Init ¶

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

`name`

  An atomic name for this database.

`group_file`

  The filename of a group file, which may itself contain parameters describing itself

`type`

  The default value is `pcm`, but for distributed voices this is always `lpc`.

`index_file`

  A filename containing the diphone dictionary.

`signal_dir`

  A directory (slash terminated) containing the pcm waveform files.

`signal_ext`

  A dot prefixed extension for the pcm waveform files.

`pitch_dir`

  A directory (slash terminated) containing the pitch mark files.

`pitch_ext`

  A dot prefixed extension for the pitch files

`lpc_dir`

  A directory (slash terminated) containing the LPC coefficient files and residual files.

`lpc_ext`

  A dot prefixed extension for the LPC coefficient files

`lpc_type`

  The type of LPC file (as supported by the speech tools)

`lpc_frame_offset`

  The number of frames "missing" from the beginning of the file. Often LPC parameters are offset by one frame.

`lpc_res_ext`

  A dot prefixed extension for the residual files

`lpc_res_type`

  The type of the residual files, this is a standard waveform type as supported by the speech tools.

`lpc_res_offset`

  Number of seconds "missing" from the beginning of the residual file. Some LPC analysis technique do not generate a residual until after one frame.

`samp_freq`

  Sample frequency of signal files

`phoneset`

  Phoneset used, must already be declared.

`num_diphones`

  Total 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_band`

  number 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_after`

  List of pairs of phones stating replacements for the second part of diphone when the basic diphone is not found in the diphone database.

`alternates_before`

  List of pairs of phones stating replacements for the first part of diphone when the basic diphone is not found in the diphone database.

`default_diphone`

  When 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