add documentation sections
This commit is contained in:
parent
2b31cd4f21
commit
c2a279c433
|
@ -0,0 +1,31 @@
|
||||||
|
======================
|
||||||
|
Advanced Usage
|
||||||
|
======================
|
||||||
|
|
||||||
|
This sections covers how to extend parakeet by implementing you own models and
|
||||||
|
experiments. Guidelines on implementation are also elaborated.
|
||||||
|
|
||||||
|
Model
|
||||||
|
-------------
|
||||||
|
|
||||||
|
As a common practice with paddlepaddle, models are implemented as subclasse
|
||||||
|
of ``paddle.nn.Layer``. More complicated models, it is recommended to split
|
||||||
|
the model into different components.
|
||||||
|
|
||||||
|
For a encoder-decoder model, it is natural to split it into the encoder and
|
||||||
|
the decoder. For a model composed of several similar layers, it is natural to
|
||||||
|
extract the sublayer as a seperate layer.
|
||||||
|
|
||||||
|
There are two common ways to define a model which consists of several modules.
|
||||||
|
|
||||||
|
#.
|
||||||
|
|
||||||
|
|
||||||
|
Data
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Config
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Experiment
|
||||||
|
--------------
|
|
@ -48,6 +48,7 @@ extensions = [
|
||||||
"sphinx_rtd_theme",
|
"sphinx_rtd_theme",
|
||||||
'sphinx.ext.mathjax',
|
'sphinx.ext.mathjax',
|
||||||
'numpydoc',
|
'numpydoc',
|
||||||
|
'sphinx.ext.autosummary',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
@ -63,8 +64,10 @@ exclude_patterns = []
|
||||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
# a list of builtin themes.
|
# a list of builtin themes.
|
||||||
#
|
#
|
||||||
|
|
||||||
html_theme = "sphinx_rtd_theme"
|
html_theme = "sphinx_rtd_theme"
|
||||||
|
|
||||||
|
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
==============================
|
||||||
|
Design of Parakeet
|
||||||
|
==============================
|
||||||
|
|
|
@ -3,14 +3,43 @@
|
||||||
You can adapt this file completely to your liking, but it should at least
|
You can adapt this file completely to your liking, but it should at least
|
||||||
contain the root `toctree` directive.
|
contain the root `toctree` directive.
|
||||||
|
|
||||||
Welcome to parakeet's documentation!
|
Parakeet
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
|
``parakeet`` is a deep learning based text-to-speech toolkit built upon ``paddlepaddle`` framework. It aims to provide a flexible, efficient and state-of-the-art text-to-speech toolkit for the open-source community. It includes many influential TTS models proposed by `Baidu Research <http://research.baidu.com>`_ and other research groups.
|
||||||
|
|
||||||
|
``parakeet`` mainly consists of components below.
|
||||||
|
|
||||||
|
#. Implementation of models and commonly used neural network layers.
|
||||||
|
#. Dataset abstraction and common data preprocessing pipelines.
|
||||||
|
#. Ready-to-run experiments.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:caption: Getting started
|
||||||
:caption: Contents:
|
:maxdepth: 1
|
||||||
|
|
||||||
|
install
|
||||||
|
tutorials
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:caption: Design of Parakeet
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
advanced
|
||||||
|
design
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:caption: Documentation
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
parakeet.audio
|
||||||
|
parakeet.data
|
||||||
|
parakeet.datasets
|
||||||
|
parakeet.frontend
|
||||||
|
parakeet.modules
|
||||||
|
parakeet.models
|
||||||
|
parakeet.training
|
||||||
|
parakeet.utils
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
==================
|
==================
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
=============
|
||||||
|
Installation
|
||||||
|
=============
|
||||||
|
|
||||||
|
|
||||||
|
Install PaddlePaddle
|
||||||
|
-------------------
|
||||||
|
Parakeet requires PaddlePaddle as its backend. Not that 2.0rc or newer versions
|
||||||
|
of paddle is required.
|
||||||
|
|
||||||
|
Since paddlepaddle has multiple packages depending on the device (cpu or gpu)
|
||||||
|
and the dependency libraries, it is recommended to install a proper package of
|
||||||
|
paddlepaddle with respect to the device and dependency library versons via
|
||||||
|
pip.
|
||||||
|
|
||||||
|
Installing paddlepaddle with conda or build paddlepaddle from source is also
|
||||||
|
supported. Please refer to `PaddlePaddle installation <https://www.paddlepaddle.org.cn/install/quick/)>`_ for more details.
|
||||||
|
|
||||||
|
Example instruction to install paddlepaddle via pip is listed below.
|
||||||
|
|
||||||
|
**PaddlePaddle with gpu**
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
python -m pip install paddlepaddle-gpu==2.0.0rc1.post101 -f https://paddlepaddle.org.cn/whl/stable.html
|
||||||
|
python -m pip install paddlepaddle-gpu==2.0.0rc1.post100 -f https://paddlepaddle.org.cn/whl/stable.html
|
||||||
|
|
||||||
|
|
||||||
|
**PaddlePaddle with cpu**
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
python -m pip install paddlepaddle==2.0.0rc1 -i https://mirror.baidu.com/pypi/simple
|
||||||
|
|
||||||
|
|
||||||
|
Install libsndfile
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Experimemts in parakeet often involve audio and spectrum processing, thus
|
||||||
|
``librosa`` and ``soundfile`` are required. ``soundfile`` requires a extra
|
||||||
|
C library ``libsndfile``, which is not always handled by pip.
|
||||||
|
|
||||||
|
For windows and mac users, ``libsndfile`` is also installed when Installing
|
||||||
|
``soundfile`` via pip, but for linux users, installing ``libsndfile`` via
|
||||||
|
system package manager is required. Example commands for popular distributions
|
||||||
|
are listed below.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
# ubuntu, debian
|
||||||
|
sudo apt-get install libsndfile1
|
||||||
|
|
||||||
|
# centos, fedora,
|
||||||
|
sudo yum install libsndfile
|
||||||
|
|
||||||
|
# openSUSE
|
||||||
|
sudo zypper in libsndfile
|
||||||
|
|
||||||
|
For any problem with installtion of soundfile, please refer to
|
||||||
|
`SoundFile <https://pypi.org/project/SoundFile>`_.
|
||||||
|
|
||||||
|
Insrall Parakeet
|
||||||
|
------------------
|
||||||
|
|
||||||
|
There are two ways to install parakeet according to the purpose of using it.
|
||||||
|
|
||||||
|
#. If you want to run experiments provided by parakeet or add new models and
|
||||||
|
experiments, it is recommended to clone the project from github
|
||||||
|
(`Parakeet <https://github.com/PaddlePaddle/Parakeet>`_), and install it in
|
||||||
|
editable mode.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
git clone https://github.com/PaddlePaddle/Parakeet
|
||||||
|
cd Parakeet
|
||||||
|
pip install -e .
|
||||||
|
|
||||||
|
|
||||||
|
#. If you only need to use the models for inference by parakeet, install from
|
||||||
|
pypi is recommended。
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
pip install paddle-parakeet
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
===========
|
||||||
|
Tutorials
|
||||||
|
===========
|
||||||
|
|
||||||
|
Basic Usage
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Pretrained models are provided in a archive. Extract it to get a folder like this::
|
||||||
|
|
||||||
|
checkpoint_name/
|
||||||
|
├──config.yaml
|
||||||
|
└──step-310000.pdparams
|
||||||
|
|
||||||
|
The ``config.yaml`` stores the config used to train the model, the ``step-N.pdparams`` is the parameter file, where N is the steps it has been trained.
|
||||||
|
|
||||||
|
The example code below shows how to use the models for prediction.
|
||||||
|
|
||||||
|
text to spectrogram
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The code below show how to use a transformer_tts model. After loading the pretrained model, use ``model.predict(sentence)`` to generate spectrogram (in numpy.ndarray format), which can be further used to synthesize waveflow.
|
||||||
|
|
||||||
|
>>> import parakeet
|
||||||
|
>>> from parakeet.frontend import English
|
||||||
|
>>> from parakeet.models import TransformerTTS
|
||||||
|
>>> from pathlib import Path
|
||||||
|
>>> import yacs
|
||||||
|
|
||||||
|
>>> # load the pretrained model
|
||||||
|
>>> frontend = English()
|
||||||
|
>>> checkpoint_dir = Path("transformer_tts_pretrained")
|
||||||
|
>>> config = yacs.config.CfgNode.load_cfg(str(checkpoint_dir / "config.yaml"))
|
||||||
|
>>> checkpoint_path = str(checkpoint_dir / "step-310000")
|
||||||
|
>>> model = TransformerTTS.from_pretrained(
|
||||||
|
>>> frontend, config, checkpoint_path)
|
||||||
|
>>> model.eval()
|
||||||
|
|
||||||
|
>>> # text to spectrogram
|
||||||
|
>>> sentence = "Printing, in the only sense with which we are at present concerned, differs from most if not from all the arts and crafts represented in the Exhibition"
|
||||||
|
>>> outputs = model.predict(sentence, verbose=args.verbose)
|
||||||
|
>>> mel_output = outputs["mel_output"]
|
||||||
|
|
||||||
|
vocoder
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
Like the example above, after loading the pretrained ConditionalWaveFlow model, call ``model.predict(mel)`` to synthesize waveflow (in numpy.ndarray format).
|
||||||
|
|
||||||
|
>>> import soundfile as df
|
||||||
|
>>> from parakeet.models import ConditionalWaveFlow
|
||||||
|
|
||||||
|
>>> # load the pretrained model
|
||||||
|
>>> checkpoint_dir = Path("waveflow_pretrained")
|
||||||
|
>>> config = yacs.config.CfgNode.load_cfg(str(checkpoint_dir / "config.yaml"))
|
||||||
|
>>> checkpoint_path = str(checkpoint_dir / "step-2000000")
|
||||||
|
>>> vocoder = ConditionalWaveFlow.from_pretrained(config, checkpoint_path)
|
||||||
|
>>> vocoder.eval()
|
||||||
|
|
||||||
|
>>> # synthesize
|
||||||
|
>>> audio = vocoder.predict(mel_output)
|
||||||
|
>>> sf.write(audio_path, audio, config.data.sample_rate)
|
||||||
|
|
||||||
|
For more details on how to use the model, please refer the documentation.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,57 +1,63 @@
|
||||||
# 安装
|
=============
|
||||||
|
安装
|
||||||
[TOC]
|
=============
|
||||||
|
|
||||||
|
|
||||||
## 安装 PaddlePaddle
|
安装 PaddlePaddle
|
||||||
|
-------------------
|
||||||
Parakeet 以 PaddlePaddle 作为其后端,因此依赖 PaddlePaddle,值得说明的是 Parakeet 要求 2.0 及以上版本的 PaddlePaddle。你可以通过 pip 安装。如果需要安装支持 gpu 版本的 PaddlePaddle,需要根据环境中的 cuda 和 cudnn 的版本来选择 wheel 包的版本。使用 conda 安装以及源码编译安装的方式请参考 [PaddlePaddle 快速安装](https://www.paddlepaddle.org.cn/install/quick/zh/2.0rc-linux-pip).
|
Parakeet 以 PaddlePaddle 作为其后端,因此依赖 PaddlePaddle,值得说明的是 Parakeet 要求 2.0 及以上版本的 PaddlePaddle。你可以通过 pip 安装。如果需要安装支持 gpu 版本的 PaddlePaddle,需要根据环境中的 cuda 和 cudnn 的版本来选择 wheel 包的版本。使用 conda 安装以及源码编译安装的方式请参考 `PaddlePaddle 快速安装 <https://www.paddlepaddle.org.cn/install/quick/)>`_.
|
||||||
|
|
||||||
**gpu 版 PaddlePaddle**
|
**gpu 版 PaddlePaddle**
|
||||||
|
|
||||||
```bash
|
.. code-block:: bash
|
||||||
python -m pip install paddlepaddle-gpu==2.0.0rc0.post101 -f https://paddlepaddle.org.cn/whl/stable.html
|
|
||||||
python -m pip install paddlepaddle-gpu==2.0.0rc0.post100 -f https://paddlepaddle.org.cn/whl/stable.html
|
python -m pip install paddlepaddle-gpu==2.0.0rc1.post101 -f https://paddlepaddle.org.cn/whl/stable.html
|
||||||
```
|
python -m pip install paddlepaddle-gpu==2.0.0rc1.post100 -f https://paddlepaddle.org.cn/whl/stable.html
|
||||||
|
|
||||||
|
|
||||||
**cpu 版 PaddlePaddle**
|
**cpu 版 PaddlePaddle**
|
||||||
|
|
||||||
```bash
|
.. code-block:: bash
|
||||||
python -m pip install paddlepaddle==2.0.0rc0 -i https://mirror.baidu.com/pypi/simple
|
|
||||||
```
|
|
||||||
|
|
||||||
## 安装 libsndfile
|
python -m pip install paddlepaddle==2.0.0rc1 -i https://mirror.baidu.com/pypi/simple
|
||||||
|
|
||||||
因为 Parakeet 的实验中常常会需要用到和音频处理,以及频谱处理相关的功能,所以我们依赖 librosa 和 soundfile 进行音频处理。而 librosa 和 soundfile 依赖一个 C 的库 libsndfile, 因为这不是 python 的包,对于 windows 用户和 mac 用户,使用 pip 安装 soundfile 的时候,libsndfile 也会被安装。如果遇到问题也可以参考 [SoundFile](https://pypi.org/project/SoundFile).
|
|
||||||
|
安装 libsndfile
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
因为 Parakeet 的实验中常常会需要用到和音频处理,以及频谱处理相关的功能,所以我们依赖 librosa 和 soundfile 进行音频处理。而 librosa 和 soundfile 依赖一个 C 的库 libsndfile, 因为这不是 python 的包,对于 windows 用户和 mac 用户,使用 pip 安装 soundfile 的时候,libsndfile 也会被安装。如果遇到问题也可以参考 `SoundFile <https://pypi.org/project/SoundFile>`_.
|
||||||
|
|
||||||
对于 linux 用户,需要使用系统的包管理器安装这个包,常见发行版上的命令参考如下。
|
对于 linux 用户,需要使用系统的包管理器安装这个包,常见发行版上的命令参考如下。
|
||||||
|
|
||||||
|
|
||||||
```bash
|
.. code-block::
|
||||||
# ubuntu, debian
|
|
||||||
sudo apt-get install libsndfile1
|
|
||||||
|
|
||||||
# centos, fedora,
|
# ubuntu, debian
|
||||||
sudo yum install libsndfile
|
sudo apt-get install libsndfile1
|
||||||
|
|
||||||
# openSUSE
|
# centos, fedora,
|
||||||
sudo zypper in libsndfile
|
sudo yum install libsndfile
|
||||||
```
|
|
||||||
|
|
||||||
## 安装 Parakeet
|
# openSUSE
|
||||||
|
sudo zypper in libsndfile
|
||||||
|
|
||||||
|
|
||||||
|
安装 Parakeet
|
||||||
|
------------------
|
||||||
|
|
||||||
我们提供两种方式来使用 Parakeet.
|
我们提供两种方式来使用 Parakeet.
|
||||||
|
|
||||||
1. 需要运行 Parakeet 自带的实验代码,或者希望进行二次开发的用户,可以先从 github 克隆本工程,cd 仅工程目录,并进行可编辑式安装(不会被复制到 site-packages, 而且对工程的修改会立即生效,不需要重新安装),之后就可以使用了。
|
#. 需要运行 Parakeet 自带的实验代码,或者希望进行二次开发的用户,可以先从 github 克隆本工程,cd 仅工程目录,并进行可编辑式安装(不会被复制到 site-packages, 而且对工程的修改会立即生效,不需要重新安装),之后就可以使用了。
|
||||||
|
|
||||||
```bash
|
.. code-block:: bash
|
||||||
# -e 表示可编辑式安装
|
|
||||||
pip install -e .
|
|
||||||
```
|
|
||||||
|
|
||||||
2. 仅需要使用我们提供的训练好的模型进行预测,那么也可以直接安装 pypi 上的 wheel 包的版本。
|
# -e 表示可编辑式安装
|
||||||
|
pip install -e .
|
||||||
|
|
||||||
|
|
||||||
|
#. 仅需要使用我们提供的训练好的模型进行预测,那么也可以直接安装 pypi 上的 wheel 包的版本。
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
pip install paddle-parakeet
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install paddle-parakeet
|
|
||||||
```
|
|
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
|
@ -1,3 +1,5 @@
|
||||||
|
"""Parakeet's infrastructure for data processing.
|
||||||
|
"""
|
||||||
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
|
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
|
Loading…
Reference in New Issue