Source-filter synthesis 3. The ba-da continuum

As an example, we are going to create a male [ba]-[da] continuum in six steps. The acoustic difference between [ba] and [da] is the initial F2, which is 500 Hz for [ba], and 2500 Hz for [da].

We use the same PitchTier throughout, to model a falling intonation contour:

Create PitchTier... f0 0.00 0.50
Add point... 0.00 150
Add point... 0.50 100

The first and last 50 milliseconds are voiceless:

To PointProcess
Remove points between... 0.00 0.05
Remove points between... 0.45 0.50

Generate the glottal source signal:

To Sound (phonation)... 44100 0.6 0.05 0.7 0.03 3.0 4.0

During the labial or coronal closure, the sound is almost silent, so we use an IntensityTier that models this:

Create IntensityTier... intens 0.00 0.50
Add point... 0.05 60
Add point... 0.10 80

Generate the source signal:

plus Sound f0
Multiply
Rename... source

The ten sounds are generated in a loop:

for i from 1 to 10
   f2_locus = 500 + (2500/9) * (i - 1) ; variable names start with lower case!
   Create FormantGrid... filter 0.0 0.5 9 800 1000 60 80
   Remove formant points between... 1 0.0 0.5
   Add formant point... 1 0.05 100
   Add bandwidth point... 1 0.05 50
   Add formant point... 2 0.05 f2_locus
   Add bandwidth point... 2 0.05 100
   plus Sound source
   Filter (no scale)
   Rename... bada'i'
   select FormantGrid filter
   Remove
endfor

Clean up:

select Sound source
plus Sound f0
plus IntensityTier intens
plus PointProcess f0
plus PitchTier f0
Remove

In this example, filtering was done without automatic scaling, so that the resulting signals have equal intensities in the areas where they have equal formants. You will probably want to multiply all these signals with the same value in order to bring their amplitudes in a suitable range between -1 and +1 Pascal.

Links to this page


© ppgb, October 12, 2009