site navigation

Copysynthesize with Mbrola

This is a little tutorial on how to copysynthesize an audio file with Mbrola.
Copysynthesis: synthesize speech by using parameters copied from natural data.
It uses Mbrola (of course), Wavesurfer and an awk-script I've written.
By the way, alternatively to this procedure you might try the speak-plugin.
Also, you might prefer Praat to Wavesurfer, but this tutorial uses wavesurfer. Still, you can still use the script to transform F0- (sample) and labelfiles to Pho-files (sample) if you manage to generate them with Praat (ESPS-xwaves format).

Step 1: start wavesurfer and open a wav-file. Looks like this for me:

Step 2: create a transcription-pane by right-clicking somewhere and following the popup:

Step 3: set the transcription properties to ESPS format by first rightclicking inside the new transcription pane:

and then setting the Label file format to ESPS WAVES:

Step 4: now label (transcribe) the audio by leftclicking in the transcription pane and typing phoneme-labels. Use the phoneme alphabete that your Mbrola voice supports!:

Step 5: Once you've done, open a pitch pane by rightclicking somewhere and follow the popup:

and set the pitch method to ESPS (probably already done) by rightclicking and setting the properties:

Step 6: That was it! Now save everything, you should end up with two files called like your audiofile but with .lab and .f0 extension. Now run the script I've written (runs under bash for me, uses awk, so, if under windows, install cygwin first). It takes the f0-file and the transcription file as arguments and ouputs a pho-file to stdout, you might redirect to a file, e.g.:

./ sample.f0 sample.lab > sample.pho

I've tested this only for German voices, if you run into problems with other languages please tell me. You probably will have to add to the phoneme-lists specifying voiced and unvoiced phonemes inside the script.
The script seems not to work with files longer than about 100 phonemes, so you might split longer files. I don't know why ...


mail: Felix Burkhardt