Go to the first, previous, next, last section, table of contents.


Unit Concatenation Methods

If UDB (see section Unit Database Concatenative Synthesizer) is selected as a method of waveform synthesis, once units are selected they must be joined together to produce a continuous waveform. This task is called unit concatenation. There are several methods available to do this, and more are under development. All have strengths and weaknesses, so be prepared to experiment. The default method is called Dumb+.

The concatenation method is selected using the Parameter Concat_Method command. For example

     (Parameter Concat_Method DUMB)

Dumb

Simply butt the selected units together with no processing whatsoever.

DumbPlus

DumbPlus (or DUMB+) offers a slightly more sophisticated method of joining but without any real signal processing. The default joins edges by over-lapping them and finding the minimum distance between a small window of samples. Other possible join positions are at zero crossings or at pitch marks. Options are set using the variable dumbplus_params. If set, this variable should be an a-list of parameter names and values. Parameter names are

strategy
May take the value z_crossings or mds. z_crossings selects `join at the nearest zero crossing', mds (default) selects `minimize difference over a few samples'.
mds_search_window_ms
When using `mds' strategy, size of window (in milliseconds) over which to search for good join. Default is 4.0 mS.
mds_diff_wind_samp
When using `mds' strategy, number of samples to measure difference over. Default is 7 samples.
pm_align
Move edges to nearest pitch mark before joining.

CEPLMA or NUUCEP

Two different names for the same process. Either one specifies that the waveform signal is to be reconstructed from improved cepstrum vectors (as in the original NUUTALK system). The LMA filter allows modification of pitch and duration, thus allowing the signal to match the target pitch and segments to within one pitch frame 5ms. The method is slow and produces rather buzzy output, but it does work reliably. An improved cepstrum file is required in the database before this method will work. The file can be created using the program `db_utils/make_imcep' and the function Database Set CoefFileSkeleton. The variable Database Set CoefType NUUTALK must be appropriately set.

GM_PSOLA

TBW.

PS_PSOLA

A simple implementation of the `time domain pitch synchronous overlap and add' method of joining units as described in Moulines 90. A number of parameters are available for this module and should be set (in the form of an a-list of parameters and values) in the variable ps_params. Parameters are

x_duration
(Default 1.0) A further modification factor for the target duration.
x_pitch
(Default 1.0) A further modification of the overall target pitch.
percent_win_dim
(Default 2.0) size of Hanning window in periods. This must a value which will give reasonable overlap and add characteristics. 3.0 and 4.0 are other possibilities.
pitch_min_delta
(Default 0.0) if the change in pitch divided by the pitch of the selected unit is less that this value then no change occurs.
pitch_max_delta
(Default 1.0) if the change in pitch divided by the pitch of the selected unit is greater that this value then no change occurs.
pitch_delta
(Default 1.0) factor to multiply the actual pitch difference by to get desired pitch difference. A value of 0.5 will only move the pitch fifty percent towards the target. A value of 1.0 will move it all the way and 0.0 will not move it at all.
dur_min_delta
(Default 0.0) if the change in duration divided by the duration of the selected unit less that this value then no change occurs.
dur_max_delta
(Default 1.0) if the change in pitch divided by the duration of the selected unit is greater that this value then no change occurs.
dur_delta
(Default 1.0) factor to multiply the actual duration difference by to get desired pitch difference. A value of 0.5 will only move the duration fifty percent towards the target. A value of 1.0 will move it all the way and 0.0 will not move it at all.

Null

This concatenation method creates an empty wave irrespective of the units selected. The resulting wave is smooth and has no clicks or pops in it, though it is not easy to recognize the meaning of the synthesized utterance from this output. It is also our fastest concatenation method. This option was very useful while debugging the unit selection algorithm.

PSOLA

The original PSOLA module is probably due for deletion. It is too slow, contains too many bugs, and now no longer supports preloaded pitch marks.


Go to the first, previous, next, last section, table of contents.