Speech morphing
STRAIGHT
Tutorial
- Open Matlab with STRAIGHT on it.
- Type MorphingMenu and hit enter. A new window will pop up.
-
Click “Load waveform” on the lefthand side of the box. Browse to the first audio file you want.
-
Click “Analyze”. A new window will pop up.
- Click “F0/F0 structure extraction”. A new window will pop up.
- Click “Calculate”. Wait until the image of a pitch track appears.
- Click “Auto tracking”.
- At the bottom part of this window, there should be a waveform with green boxes. These green boxes need to be aligned with the voiced segments (vowels and voiced consonants) in the waveform. To zoom in, left click on the x-axis. To zoom out, hold shift and left click on the x-axis. Move the green boxes by dragging the edges until they are aligned with the voiced parts. Also make sure there are no extra green boxes. You can get rid of them by dragging the borders together.
- Click “Finish/Upload”. This will close the window with the pitch track and waveform.
-
Click “Aperiodicity extraction” in the window where you clicked “F0/F0 structure extraction”.
-
Click “STRAIGHT spectrum” in that same window.
-
Click “Save STRAIGHT object”. Browse to where you want to save it. I suggest a folder called “matsynth”. Give it a name and save.
-
Hit “Finish/Upload”. This will close this window.
- Click “Load waveform” on the righthand side of the original MorphingMenu window. Browse to the second audio file you want to use. Then repeat steps 4 to 13 with that file.
NOTE 1: If you already have the synthesized file and need to go back to it later, you can do so using “Import” instead of “Load waveform” in the MorphingMenu window.
-
Hit “Play” on either of the two sides to refresh the window.
-
Click “Open anchoring interface”. This will open a new window.
- Click “Calculate distance matrix”. Wait until the image appears on the right.
- Use the small square at the top to zoom in and out (zoom in by left clicking, zoom out by holding shift and left clicking).
-
Add new markers to the line in the larger box on the right by clicking the line. (Remove them by shift + click). You want one marker for the beginning and end of each sound. Use the spectrograms at the left to align the markers, and use F2/F3 as markers for where vowels start and end.
-
Click “Save morphing substrate”. Browse to where you want to save it. I suggest a folder called “matsubstrate”. Give it a name and save it. Then close the distance matrix window.
-
In the original MorphingMenu window, click “Load morphing substrate”. Browse to the file you just saved and load it.
-
Click “Initialize morphing rate”.
-
Click “Edit morphing rate”. A new box will come up.
- In the first of the boxes with lines, move the line all the way down to A.
- Click “Set up morphing rate”. This will take you back to the MorphingMenu window.
-
Click “Save morphing substrate”. Navigate to where you saved the previous substrate, and save this with the same name but with A at the end (e.g. sabash_shabashA).
-
Click “Edit morphing rate” again.
-
This time, move the line all the way up to B.
-
Click “Set up morphing rate” again.
-
Click “Save morphing substrate”. Again, navigate to where you saved the previous substrate, and save this one with a B at the end (e.g. sabash_shabashB).
-
Quit the MorphingMenu. You can now repeat these steps for as many continua as you need to make. Do these steps for all the continua you’re making before continuing to Step 32.
-
From Matlab, open morph.continua.m (in document/matlab).
-
In the first few lines of the script that opens, set the path to
where you saved the substrates and the outpath to where you want the
continua to appear. Also set the number of steps you want. -
Click “Run”. Once it finishes running, all the continua should be
in the folder you specified as the outpath.
NOTE: If you get an error message when you run the morph continua script,
it usually works to go back to the stage where you create the substrate.
Import the two matsynth files as specified in Note 1, then follow the
remaining steps to redo the alignment and the substrates. Then try
re-running the continua script.
Splicing
To come soon!
Courtesy of Avery Ozburn.