MagPhase Vocoder: Speech analysis/synthesis system for TTS and related applications.
Switch branches/tags
Nothing to show
Clone or download

README.md

MagPhase Vocoder

Speech analysis/synthesis system for TTS and related applications.

This software is based on the method described in the paper:

F. Espic, C. Valentini-Botinhao, and S. King, “Direct Modelling of Magnitude and Phase Spectra for Statistical Parametric Speech Synthesis,” in Proc. Interspeech, Stockholm, Sweden, August, 2017.

@ Author: Felipe Espic

More information at http://www.felipeespic.com/magphase/

I. New in Version 2.0 (April 2018)

  • Constant frame-rate support.
  • Improved sound quality.
  • Two types of post-filter available.
  • Selectable number of coefficients for phase features (real and imag).
  • Selectable number of coefficients for the magnitude feature (mag).

II. Description

This is a speech waveform analysis/synthesis system used in Statistical Parametric Speech Synthesis (SPSS).

The analysis module extracts four feature streams describing magnitude spectra, phase spectra, and F0. These features can be used to train a regression model (e.g., DNN, LSTM, HMM. etc.) so then, predicted values can be generated. The synthesis module takes these features at the input to generate the final synthesised waveform.

Key points:

  • Avoids estimation steps as far as possible (no aperiodicities, spectral envelope, or harmonics estimation, etc.)
  • Robust extraction and modelling of phase spectra (Conventional vocoders just create artificial phase at the output).
  • No phase unwrapping required.
  • Uses fast operations during synthesis (e.g., FFT, PSOLA).
  • Remarkably reduces typical "buzziness" and "phasiness".
  • Many other applications and improvements not explored yet.

III. License:

See the LICENCE file for details.

IV. Requirements:

  • OS: Linux (MacOSx coming soon)
  • Python 2.7
  • Python packages: numpy, scipy, soundfile, matplotlib

V. Install:

  1. Install Pyhton 2.7 and the packages required using the package manager of your distro or by using the command pip (recomended). e.g.,
pip install numpy scipy soundfile matplotlib
  1. Download MagPhase: git clone https://github.com/CSTR-Edinburgh/magphase.git

  2. Download and compile SPTK and REAPER by:

cd magphase/tools
./download_and_compile_tools.sh

This will compile and configure SPTK and REAPER automatically for you...and that's it!

VI. Usage:

Just go to /demos, read the instructions inside the demo scripts, which are very discriptive. They should run out of the box by running python <demo_script>.

We recomend that you play firstly with demo_copy_synthesis_lossless.py , and then demo_copy_synthesis_low_dim.py They both perform analysis/synthesis routines.

Then, you can modify the demo scripts to suit your needs.

NOTE: Just remember to run the scripts from their locations.

VII. Using MagPhase with the Merlin toolkit:

We provide two demos distributed with the Merlin's official distribution. These show examples of the of Merlin with MagPhase integration:

VIII. Colaboration:

We need help to improve this software. You can colaborate by:

  • Building TTS voices using Merlin and MagPhase and compare with other vocoders, e.g., WORLD. Then, please tell us your results. We have tested MagPhase only with a few voices and it's needed to cover a wider range. We have recently fixed some bugs that have came out thanks to people reporting their results using new data.

  • Implementing native variable frame rate support in Merlin. MagPhase works in a variable frame rate fashion (pitch synchronous).