README.md 5.6 KB
Newer Older
L
liuyibing01 已提交
1 2
# Parakeet

Z
zhaokexin01 已提交
3 4
Parakeet aims to provide a flexible, efficient and state-of-the-art text-to-speech toolkit for the open-source community. It is built on PaddlePaddle Fluid dynamic graph and includes many influential TTS models proposed by [Baidu Research](http://research.baidu.com) and other research groups.  

Z
zhaokexin01 已提交
5 6 7 8
<div align="center">
  <img src="images/logo.png" width=450 /> <br>
</div>

9 10
In particular, it features the latest [WaveFlow] (https://arxiv.org/abs/1912.01219) model proposed by Baidu Research.

Z
zhaokexin01 已提交
11
- WaveFlow can synthesize 22.05 kHz high-fidelity speech around 40x faster than real-time on a Nvidia V100 GPU without engineered inference kernels, which is faster than [WaveGlow] (https://github.com/NVIDIA/waveglow) and serveral orders of magnitude faster than WaveNet.
L
liuyibing01 已提交
12
- WaveFlow is a small-footprint flow-based model for raw audio. It has only 5.9M parameters, which is 15x smalller than WaveGlow (87.9M).
13
- WaveFlow is directly trained with maximum likelihood without probability density distillation and auxiliary losses as used in Parallel WaveNet and ClariNet, which simplifies the training pipeline and reduces the cost of development.
Z
zhaokexin01 已提交
14

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
## Overview

In order to facilitate exploiting the existing TTS models directly and developing the new ones, Parakeet selects typical models and provides their reference implementations in PaddlePaddle. Further more, Parakeet abstracts the TTS pipeline and standardizes the procedure of data preprocessing, common modules sharing, model configuration, and the process of training and synthesis. The models supported here includes Vocoders and end-to-end TTS models:

- Vocoders
  - [WaveFlow: A Compact Flow-based Model for Raw Audio](https://arxiv.org/abs/1912.01219)
  - [ClariNet: Parallel Wave Generation in End-to-End Text-to-Speech](https://arxiv.org/abs/1807.07281)
  - [WaveNet: A Generative Model for Raw Audio](https://arxiv.org/abs/1609.03499)

- TTS models
  - [Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning](https://arxiv.org/abs/1710.07654)
  - [Neural Speech Synthesis with Transformer Network (Transformer TTS)](https://arxiv.org/abs/1809.08895)
  - [FastSpeech: Fast, Robust and Controllable Text to Speech](https://arxiv.org/abs/1905.09263)

And more will be added in the future.

L
liuyibing01 已提交
31
See the [guide](docs/experiment_guide.md) for details about how to build your own model and experiment in Parakeet.
32 33

## Setup
L
liuyibing01 已提交
34

Z
zhaokexin01 已提交
35
Make sure the library `libsndfile1` is installed, e.g., on Ubuntu.
L
liuyibing01 已提交
36 37 38 39

```bash
sudo apt-get install libsndfile1
```
L
liuyibing01 已提交
40

L
liuyibing01 已提交
41
### Install PaddlePaddle
42

43
See [install](https://www.paddlepaddle.org.cn/install/quick) for more details. This repo requires PaddlePaddle 1.7.0 or above.
44 45 46

### Install Parakeet

L
liuyibing01 已提交
47
```bash
48
git clone https://github.com/PaddlePaddle/Parakeet
49 50
cd Parakeet
pip install -e .
L
liuyibing01 已提交
51 52
```

53 54 55
### Install CMUdict for nltk

CMUdict from nltk is used to transform text into phonemes.
56

57 58
```python
import nltk
59
nltk.download("punkt")
60 61
nltk.download("cmudict")
```
62 63


L
liuyibing01 已提交
64

65 66 67

## Examples

68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
Entries to the introduction, and the launch of training and synthsis for different example models:


- [>>> WaveFlow](./examples/waveflow)
- [>>> Clarinet](./examples/clarinet)
- [>>> WaveNet](./examples/wavenet)
- [>>> Deep Voice 3](./examples/deepvoice3)
- [>>> Transformer TTS](./examples/transformer_tts)
- [>>> FastSpeech](./examples/fastspeech)


## Pre-trained models and audio samples

Parakeet also releases some well-trained parameters for the example models, which can be accessed in the following tables. Each column of these tables lists resources for one model, including the url link to the pre-trained model, the dataset that the model is trained on and the total training steps, and several synthesized audio samples based on the pre-trained model.

- Vocoders

<table>
    <thead>
        <tr>
            <th> WaveFlow</th>
            <th><a href="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_ckpt_1.0.zip">ClariNet</a> </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>LJSpeech, 2M</th>
            <th>LJSpeech, 500K</th>
        </tr>
        <tr>
            <th>
            To be added soon
            </th>
            <th>
            <audio id="audio" controls="" preload="none">
L
liuyibing01 已提交
103 104
                <source  src="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_samples_1.0/step_500000_sentence_0.wav">
            </audio> <br>
105
            <audio id="audio" controls="" preload="none">
L
liuyibing01 已提交
106 107
                <source  src="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_samples_1.0/step_500000_sentence_1.wav">
            </audio><br>
108
            <audio id="audio" controls="" preload="none">
L
liuyibing01 已提交
109 110 111 112 113 114 115 116
                <source id="mp3" src="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_samples_1.0/step_500000_sentence_2.wav">
            </audio><br>
            <audio id="audio" controls="" preload="none">
                <source id="mp3" src="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_samples_1.0/step_500000_sentence_3.wav">
            </audio><br>
            <audio id="audio" controls="" preload="none">
                <source id="mp3" src="https://paddlespeech.bj.bcebos.com/Parakeet/clarinet_ljspeech_samples_1.0/step_500000_sentence_4.wav">
            </audio>
117 118 119 120 121
            </th>
        </tr>
    </tbody>
</table>

L
liuyibing01 已提交
122

L
liuyibing01 已提交
123
**Note:** The input mel spectrogams are from validation dataset, which are not seen during training.
124 125 126 127 128

- TTS models

Click each link to download, then one can get the compressed package which contains the pre-trained model and the `yaml` config describing how to train the model.

L
liuyibing01 已提交
129 130 131 132

## Copyright and License

Parakeet is provided under the [Apache-2.0 license](LICENSE).