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)
Simply butt the selected units together with no processing whatsoever.
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
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
mds_diff_wind_samp
pm_align
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 `$CHATR_ROOT/db_utils/make_imcep' and the function
Database Set CoefFileSkeleton
. The variable Database
Set CoefType NUUTALK
must be appropriately set.
TBW.
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
x_pitch
percent_win_dim
pitch_min_delta
pitch_max_delta
pitch_delta
dur_min_delta
dur_max_delta
dur_delta
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.
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.