mirror of
https://github.com/wassname/TTS.git
synced 2026-10-27 12:30:27 +08:00
Merge branch 'dev'
This commit is contained in:
commit
e2d9b0e27c
21 files changed
+1707
-963
No files matched your search
@@ -2,4 +2,4 @@
|
||||
source ../tmp/venv/bin/activate
|
||||
# python extract_features.py --data_path ${DATA_ROOT}/shared/data/keithito/LJSpeech-1.1/ --cache_path ~/tts_cache/ --config config.json --num_proc 12 --dataset ljspeech --meta_file metadata.csv --val_split 1000 --process_audio true
|
||||
# python train.py --config_path config.json --data_path ~/tts_cache/ --debug true
|
||||
python train.py --config_path config.json --data_path ${DATA_ROOT}/shared/data/Blizzard/Nancy/ --debug true
|
||||
python train.py --config_path config.json --data_path ${DATA_ROOT}/shared/data/Blizzard/Nancy/ --debug true
|
||||
@@ -75,7 +75,8 @@ Example datasets, we successfully applied TTS, are linked below.
|
||||
|
||||
- [LJ Speech](https://keithito.com/LJ-Speech-Dataset/)
|
||||
- [Nancy](http://www.cstr.ed.ac.uk/projects/blizzard/2011/lessac_blizzard2011/)
|
||||
- [TWEB](http://https://www.kaggle.com/bryanpark/the-world-english-bible-speech-dataset)\
|
||||
- [TWEB](http://https://www.kaggle.com/bryanpark/the-world-english-bible-speech-dataset)
|
||||
- [M-AI-Labs](http://www.caito.de/2019/01/the-m-ailabs-speech-dataset/)
|
||||
|
||||
## Training and Fine-tuning LJ-Speech
|
||||
[Click Here](https://gist.github.com/erogol/97516ad65b44dbddb8cd694953187c5b) for hands-on **Notebook example**, training LJSpeech.
|
||||
@@ -107,11 +108,7 @@ In case of any error or intercepted execution, if there is no checkpoint yet und
|
||||
You can also enjoy Tensorboard, if you point the Tensorboard argument```--logdir``` to the experiment folder.
|
||||
|
||||
## Testing
|
||||
Best way to test your pre-trained network is to use Notebooks under ```notebooks``` folder.
|
||||
|
||||
## Logging
|
||||
# TODO
|
||||
TTS enables intense logging on Tensorboard.
|
||||
Best way to test your network is to use Notebooks under ```notebooks``` folder.
|
||||
|
||||
## What is new with TTS
|
||||
If you train TTS with LJSpeech dataset, you start to hear reasonable results after 12.5K iterations with batch size 32. This is the fastest training with character-based methods up to our knowledge. Out implementation is also quite robust against long sentences.
|
||||
@@ -121,8 +118,11 @@ If you train TTS with LJSpeech dataset, you start to hear reasonable results aft
|
||||
- Weight decay ([ref](http://www.fast.ai/2018/07/02/adam-weight-decay/)). After a certain point of the training, you might observe the model over-fitting. That is, the model is able to pronounce words probably better but the quality of the speech quality gets lower and sometimes attention alignment gets disoriented.
|
||||
- Stop token prediction with an additional module. The original Tacotron model does not propose a stop token to stop the decoding process. Therefore, you need to use heuristic measures to stop the decoder. Here, we prefer to use additional layers at the end to decide when to stop.
|
||||
- Applying sigmoid to the model outputs. Since the output values are expected to be in the range [0, 1], we apply sigmoid to make things easier to approximate the expected output distribution.
|
||||
- Phoneme based training is enabled for easier learning and robust pronunciation. It also makes easier to adapt TTS to the most languages without worrying about language specific characters.
|
||||
- Configurable attention windowing at inference-time for robust alignment. It enforces network to only consider a certain window of encoder steps per iteration.
|
||||
- Detailed Tensorboard stats for activation, weight and gradient values per layer. It is useful to detect defects and compare networks.
|
||||
|
||||
One common question is to ask why we don't use Tacotron2 architecture. According to our ablation experiments, nothing, except Location Sensitive Attention, improves the performance, given the big increase in the model size.
|
||||
One common question is to ask why we don't use Tacotron2 architecture. According to our ablation experiments, nothing, except Location Sensitive Attention, improves the performance, given the increase in the model size.
|
||||
|
||||
Please feel free to offer new changes and pull things off. We are happy to discuss and make things better.
|
||||
|
||||
|
||||
+31
-25
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_name": "TTS-dev-tweb",
|
||||
"model_description": "Higher dropout rate for stopnet and disabled custom initialization, pull current mel prediction to stopnet.",
|
||||
"model_name": "queue",
|
||||
"model_description": "Queue memory and change lower r incrementatlly",
|
||||
|
||||
"audio":{
|
||||
"audio_processor": "audio", // to use dictate different audio processors, if available.
|
||||
@@ -10,7 +10,7 @@
|
||||
"sample_rate": 22050, // wav sample-rate. If different than the original data, it is resampled.
|
||||
"frame_length_ms": 50, // stft window length in ms.
|
||||
"frame_shift_ms": 12.5, // stft window hop-lengh in ms.
|
||||
"preemphasis": 0.97, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis.
|
||||
"preemphasis": 0.98, // pre-emphasis to reduce spec noise and make it more structured. If 0.0, no -pre-emphasis.
|
||||
"min_level_db": -100, // normalization range
|
||||
"ref_level_db": 20, // reference level db, theoretically 20db is the sound of air.
|
||||
"power": 1.5, // value to sharpen wav signals after GL algorithm.
|
||||
@@ -25,30 +25,36 @@
|
||||
"do_trim_silence": true // enable trimming of slience of audio as you load it. LJspeech (false), TWEB (false), Nancy (true)
|
||||
},
|
||||
|
||||
"embedding_size": 256,
|
||||
"text_cleaner": "english_cleaners",
|
||||
"epochs": 1000,
|
||||
"lr": 0.001,
|
||||
"lr_decay": false,
|
||||
"warmup_steps": 4000,
|
||||
"embedding_size": 256, // Character embedding vector length. You don't need to change it in general.
|
||||
"text_cleaner": "phoneme_cleaners",
|
||||
"epochs": 1000, // total number of epochs to train.
|
||||
"lr": 0.0001, // Initial learning rate. If Noam decay is active, maximum learning rate.
|
||||
"lr_decay": false, // if true, Noam learning rate decaying is applied through training.
|
||||
"loss_weight": 0.0, // loss weight to emphasize lower frequencies. Lower frequencies are in general more important for speech signals.
|
||||
"warmup_steps": 4000, // Noam decay steps to increase the learning rate from 0 to "lr"
|
||||
"windowing": false, // Enables attention windowing. Used only in eval mode.
|
||||
"memory_size": 5, // memory queue size used to queue network predictions to feed autoregressive connection. Useful if r < 5.
|
||||
|
||||
"batch_size": 20,
|
||||
"eval_batch_size":32,
|
||||
"r": 5,
|
||||
"wd": 0.000001,
|
||||
"checkpoint": true,
|
||||
"save_step": 5000,
|
||||
"print_step": 10,
|
||||
"tb_model_param_stats": true, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging.
|
||||
"batch_size": 32, // Batch size for training. Lower values than 32 might cause hard to learn attention.
|
||||
"eval_batch_size":32,
|
||||
"r": 2, // Number of frames to predict for step.
|
||||
"wd": 0.00001, // Weight decay weight.
|
||||
"checkpoint": true, // If true, it saves checkpoints per "save_step"
|
||||
"save_step": 5000, // Number of training steps expected to save traning stats and checkpoints.
|
||||
"print_step": 50, // Number of steps to log traning on console.
|
||||
"tb_model_param_stats": false, // true, plots param stats per layer on tensorboard. Might be memory consuming, but good for debugging.
|
||||
|
||||
"run_eval": true,
|
||||
"data_path": "../../Data/LJSpeech-1.1/", // can overwritten from command argument
|
||||
"meta_file_train": "transcript_train.txt", // metafile for training dataloader.
|
||||
"meta_file_val": "transcript_val.txt", // metafile for evaluation dataloader.
|
||||
"dataset": "tweb", // one of TTS.dataset.preprocessors depending on your target dataset. Use "tts_cache" for pre-computed dataset by extract_features.py
|
||||
"min_seq_len": 0, // minimum text length to use in training
|
||||
"max_seq_len": 300, // maximum text length
|
||||
"output_path": "/media/erogol/data_ssd/Data/models/tweb_models/", // output path for all training outputs.
|
||||
"data_path": "/media/erogol/data_ssd/Data/LJSpeech-1.1", // DATASET-RELATED: can overwritten from command argument
|
||||
"meta_file_train": "metadata_train.csv", // DATASET-RELATED: metafile for training dataloader.
|
||||
"meta_file_val": "metadata_val.csv", // DATASET-RELATED: metafile for evaluation dataloader.
|
||||
"dataset": "ljspeech", // DATASET-RELATED: one of TTS.dataset.preprocessors depending on your target dataset. Use "tts_cache" for pre-computed dataset by extract_features.py
|
||||
"min_seq_len": 0, // DATASET-RELATED: minimum text length to use in training
|
||||
"max_seq_len": 300, // DATASET-RELATED: maximum text length
|
||||
"output_path": "/media/erogol/data_ssd/Data/models/ljspeech_models/", // DATASET-RELATED: output path for all training outputs.
|
||||
"num_loader_workers": 8, // number of training data loader processes. Don't set it too big. 4-8 are good values.
|
||||
"num_val_loader_workers": 4 // number of evaluation data loader processes.
|
||||
"num_val_loader_workers": 4, // number of evaluation data loader processes.
|
||||
"phoneme_cache_path": "ljspeech_us_phonemes", // phoneme computation is slow, therefore, it caches results in the given folder.
|
||||
"use_phonemes": true, // use phonemes instead of raw characters. It is suggested for better pronounciation.
|
||||
"phoneme_language": "en-us" // depending on your target language, pick one from https://github.com/bootphon/phonemizer#languages
|
||||
}
|
||||
+42
-11
@@ -6,7 +6,7 @@ import torch
|
||||
import random
|
||||
from torch.utils.data import Dataset
|
||||
|
||||
from utils.text import text_to_sequence
|
||||
from utils.text import text_to_sequence, phoneme_to_sequence
|
||||
from utils.data import (prepare_data, pad_per_step, prepare_tensor,
|
||||
prepare_stop_target)
|
||||
|
||||
@@ -22,7 +22,10 @@ class MyDataset(Dataset):
|
||||
batch_group_size=0,
|
||||
min_seq_len=0,
|
||||
max_seq_len=float("inf"),
|
||||
cached=False):
|
||||
cached=False,
|
||||
use_phonemes=True,
|
||||
phoneme_cache_path=None,
|
||||
phoneme_language="en-us"):
|
||||
"""
|
||||
Args:
|
||||
root_path (str): root path for the data folder.
|
||||
@@ -40,6 +43,10 @@ class MyDataset(Dataset):
|
||||
max_seq_len (int): (float("inf")) maximum sequence length.
|
||||
cached (bool): (false) true if the given data path is created
|
||||
by extract_features.py.
|
||||
use_phonemes (bool): (true) if true, text converted to phonemes.
|
||||
phoneme_cache_path (str): path to cache phoneme features.
|
||||
phoneme_language (str): one the languages from
|
||||
https://github.com/bootphon/phonemizer#languages
|
||||
"""
|
||||
self.root_path = root_path
|
||||
self.batch_group_size = batch_group_size
|
||||
@@ -51,8 +58,16 @@ class MyDataset(Dataset):
|
||||
self.max_seq_len = max_seq_len
|
||||
self.ap = ap
|
||||
self.cached = cached
|
||||
self.use_phonemes = use_phonemes
|
||||
self.phoneme_cache_path = phoneme_cache_path
|
||||
self.phoneme_language = phoneme_language
|
||||
if not os.path.isdir(phoneme_cache_path):
|
||||
os.makedirs(phoneme_cache_path)
|
||||
print(" > DataLoader initialization")
|
||||
print(" | > Data path: {}".format(root_path))
|
||||
print(" | > Use phonemes: {}".format(self.use_phonemes))
|
||||
if use_phonemes:
|
||||
print(" | > phoneme language: {}".format(phoneme_language))
|
||||
print(" | > Cached dataset: {}".format(self.cached))
|
||||
print(" | > Number of instances : {}".format(len(self.items)))
|
||||
|
||||
@@ -69,27 +84,42 @@ class MyDataset(Dataset):
|
||||
data = np.load(filename).astype('float32')
|
||||
return data
|
||||
|
||||
def load_phoneme_sequence(self, wav_file, text):
|
||||
file_name = os.path.basename(wav_file).split('.')[0]
|
||||
tmp_path = os.path.join(self.phoneme_cache_path, file_name+'_phoneme.npy')
|
||||
if os.path.isfile(tmp_path):
|
||||
text = np.load(tmp_path)
|
||||
else:
|
||||
text = np.asarray(
|
||||
phoneme_to_sequence(text, [self.cleaners], language=self.phoneme_language), dtype=np.int32)
|
||||
np.save(tmp_path, text)
|
||||
return text
|
||||
|
||||
def load_data(self, idx):
|
||||
if self.cached:
|
||||
wav_name = self.items[idx][1]
|
||||
mel_name = self.items[idx][2]
|
||||
linear_name = self.items[idx][3]
|
||||
text = self.items[idx][0]
|
||||
text = np.asarray(
|
||||
text_to_sequence(text, [self.cleaners]), dtype=np.int32)
|
||||
|
||||
if wav_name.split('.')[-1] == 'npy':
|
||||
wav = self.load_np(wav_name)
|
||||
else:
|
||||
wav = np.asarray(self.load_wav(wav_name), dtype=np.float32)
|
||||
mel = self.load_np(mel_name)
|
||||
linear = self.load_np(linear_name)
|
||||
sample = {'text': text, 'wav': wav, 'item_idx': self.items[idx][1], 'mel':mel, 'linear': linear}
|
||||
else:
|
||||
text, wav_file = self.items[idx]
|
||||
wav = np.asarray(self.load_wav(wav_file), dtype=np.float32)
|
||||
mel = None
|
||||
linear = None
|
||||
|
||||
if self.use_phonemes:
|
||||
text = self.load_phoneme_sequence(wav_file, text)
|
||||
else:
|
||||
text = np.asarray(
|
||||
text_to_sequence(text, [self.cleaners]), dtype=np.int32)
|
||||
wav = np.asarray(self.load_wav(wav_file), dtype=np.float32)
|
||||
sample = {'text': text, 'wav': wav, 'item_idx': self.items[idx][1]}
|
||||
sample = {'text': text, 'wav': wav, 'item_idx': self.items[idx][1], 'mel':mel, 'linear': linear}
|
||||
return sample
|
||||
|
||||
def sort_items(self):
|
||||
@@ -148,12 +178,13 @@ class MyDataset(Dataset):
|
||||
text_lenghts = np.array([len(x) for x in text])
|
||||
max_text_len = np.max(text_lenghts)
|
||||
|
||||
if self.cached:
|
||||
mel = [d['mel'] for d in batch]
|
||||
linear = [d['linear'] for d in batch]
|
||||
else:
|
||||
# if specs are not computed, compute them.
|
||||
if batch[0]['mel'] is None and batch[0]['linear'] is None:
|
||||
mel = [self.ap.melspectrogram(w).astype('float32') for w in wav]
|
||||
linear = [self.ap.spectrogram(w).astype('float32') for w in wav]
|
||||
else:
|
||||
mel = [d['mel'] for d in batch]
|
||||
linear = [d['linear'] for d in batch]
|
||||
mel_lengths = [m.shape[1] + 1 for m in mel] # +1 for zero-frame
|
||||
|
||||
# compute 'stop token' targets
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
import os
|
||||
import numpy as np
|
||||
import collections
|
||||
import librosa
|
||||
import torch
|
||||
from torch.utils.data import Dataset
|
||||
|
||||
from TTS.utils.text import text_to_sequence
|
||||
from TTS.utils.audio import AudioProcessor
|
||||
from TTS.utils.data import (prepare_data, pad_per_step, prepare_tensor,
|
||||
prepare_stop_target)
|
||||
|
||||
|
||||
class TWEBDataset(Dataset):
|
||||
def __init__(self,
|
||||
csv_file,
|
||||
root_dir,
|
||||
outputs_per_step,
|
||||
sample_rate,
|
||||
text_cleaner,
|
||||
num_mels,
|
||||
min_level_db,
|
||||
frame_shift_ms,
|
||||
frame_length_ms,
|
||||
preemphasis,
|
||||
ref_level_db,
|
||||
num_freq,
|
||||
power,
|
||||
min_seq_len=0):
|
||||
|
||||
with open(csv_file, "r") as f:
|
||||
self.frames = [line.split('\t') for line in f]
|
||||
self.root_dir = root_dir
|
||||
self.outputs_per_step = outputs_per_step
|
||||
self.sample_rate = sample_rate
|
||||
self.cleaners = text_cleaner
|
||||
self.min_seq_len = min_seq_len
|
||||
self.ap = AudioProcessor(sample_rate, num_mels, min_level_db,
|
||||
frame_shift_ms, frame_length_ms, preemphasis,
|
||||
ref_level_db, num_freq, power)
|
||||
print(" > Reading TWEB from - {}".format(root_dir))
|
||||
print(" | > Number of instances : {}".format(len(self.frames)))
|
||||
self._sort_frames()
|
||||
|
||||
def load_wav(self, filename):
|
||||
try:
|
||||
audio = librosa.core.load(filename, sr=self.sample_rate)
|
||||
return audio
|
||||
except RuntimeError as e:
|
||||
print(" !! Cannot read file : {}".format(filename))
|
||||
|
||||
def _sort_frames(self):
|
||||
r"""Sort sequences in ascending order"""
|
||||
lengths = np.array([len(ins[1]) for ins in self.frames])
|
||||
|
||||
print(" | > Max length sequence {}".format(np.max(lengths)))
|
||||
print(" | > Min length sequence {}".format(np.min(lengths)))
|
||||
print(" | > Avg length sequence {}".format(np.mean(lengths)))
|
||||
|
||||
idxs = np.argsort(lengths)
|
||||
new_frames = []
|
||||
ignored = []
|
||||
for i, idx in enumerate(idxs):
|
||||
length = lengths[idx]
|
||||
if length < self.min_seq_len:
|
||||
ignored.append(idx)
|
||||
else:
|
||||
new_frames.append(self.frames[idx])
|
||||
print(" | > {} instances are ignored by min_seq_len ({})".format(
|
||||
len(ignored), self.min_seq_len))
|
||||
self.frames = new_frames
|
||||
|
||||
def __len__(self):
|
||||
return len(self.frames)
|
||||
|
||||
def __getitem__(self, idx):
|
||||
wav_name = os.path.join(self.root_dir, self.frames[idx][0]) + '.wav'
|
||||
text = self.frames[idx][1]
|
||||
text = np.asarray(
|
||||
text_to_sequence(text, [self.cleaners]), dtype=np.int32)
|
||||
wav = np.asarray(self.load_wav(wav_name)[0], dtype=np.float32)
|
||||
sample = {'text': text, 'wav': wav, 'item_idx': self.frames[idx][0]}
|
||||
return sample
|
||||
|
||||
def collate_fn(self, batch):
|
||||
r"""
|
||||
Perform preprocessing and create a final data batch:
|
||||
1. PAD sequences with the longest sequence in the batch
|
||||
2. Convert Audio signal to Spectrograms.
|
||||
3. PAD sequences that can be divided by r.
|
||||
4. Convert Numpy to Torch tensors.
|
||||
"""
|
||||
|
||||
# Puts each data field into a tensor with outer dimension batch size
|
||||
if isinstance(batch[0], collections.Mapping):
|
||||
keys = list()
|
||||
|
||||
wav = [d['wav'] for d in batch]
|
||||
item_idxs = [d['item_idx'] for d in batch]
|
||||
text = [d['text'] for d in batch]
|
||||
|
||||
text_lenghts = np.array([len(x) for x in text])
|
||||
max_text_len = np.max(text_lenghts)
|
||||
|
||||
linear = [self.ap.spectrogram(w).astype('float32') for w in wav]
|
||||
mel = [self.ap.melspectrogram(w).astype('float32') for w in wav]
|
||||
mel_lengths = [m.shape[1] + 1 for m in mel] # +1 for zero-frame
|
||||
|
||||
# compute 'stop token' targets
|
||||
stop_targets = [
|
||||
np.array([0.] * (mel_len - 1)) for mel_len in mel_lengths
|
||||
]
|
||||
|
||||
# PAD stop targets
|
||||
stop_targets = prepare_stop_target(stop_targets,
|
||||
self.outputs_per_step)
|
||||
|
||||
# PAD sequences with largest length of the batch
|
||||
text = prepare_data(text).astype(np.int32)
|
||||
wav = prepare_data(wav)
|
||||
|
||||
# PAD features with largest length + a zero frame
|
||||
linear = prepare_tensor(linear, self.outputs_per_step)
|
||||
mel = prepare_tensor(mel, self.outputs_per_step)
|
||||
assert mel.shape[2] == linear.shape[2]
|
||||
timesteps = mel.shape[2]
|
||||
|
||||
# B x T x D
|
||||
linear = linear.transpose(0, 2, 1)
|
||||
mel = mel.transpose(0, 2, 1)
|
||||
|
||||
# convert things to pytorch
|
||||
text_lenghts = torch.LongTensor(text_lenghts)
|
||||
text = torch.LongTensor(text)
|
||||
linear = torch.FloatTensor(linear)
|
||||
mel = torch.FloatTensor(mel)
|
||||
mel_lengths = torch.LongTensor(mel_lengths)
|
||||
stop_targets = torch.FloatTensor(stop_targets)
|
||||
|
||||
return text, text_lenghts, linear, mel, mel_lengths, stop_targets, item_idxs[
|
||||
0]
|
||||
|
||||
raise TypeError(("batch must contain tensors, numbers, dicts or lists;\
|
||||
found {}".format(type(batch[0]))))
|
||||
@@ -42,6 +42,28 @@ def tweb(root_path, meta_file):
|
||||
# return {'text': texts, 'wavs': wavs}
|
||||
|
||||
|
||||
def mailabs(root_path, meta_files):
|
||||
"""Normalizes M-AI-Labs meta data files to TTS format"""
|
||||
folders = [os.path.dirname(f.strip()) for f in meta_files.split(",")]
|
||||
meta_files = [f.strip() for f in meta_files.split(",")]
|
||||
items = []
|
||||
for idx, meta_file in enumerate(meta_files):
|
||||
print(" | > {}".format(meta_file))
|
||||
folder = folders[idx]
|
||||
txt_file = os.path.join(root_path, meta_file)
|
||||
with open(txt_file, 'r') as ttf:
|
||||
for line in ttf:
|
||||
cols = line.split('|')
|
||||
wav_file = os.path.join(root_path, folder, 'wavs', cols[0]+'.wav')
|
||||
if os.path.isfile(wav_file):
|
||||
text = cols[1]
|
||||
items.append([text, wav_file])
|
||||
else:
|
||||
continue
|
||||
random.shuffle(items)
|
||||
return items
|
||||
|
||||
|
||||
def ljspeech(root_path, meta_file):
|
||||
"""Normalizes the Nancy meta data file to TTS format"""
|
||||
txt_file = os.path.join(root_path, meta_file)
|
||||
|
||||
+19
-1
@@ -100,7 +100,7 @@ class LocationSensitiveAttention(nn.Module):
|
||||
|
||||
|
||||
class AttentionRNNCell(nn.Module):
|
||||
def __init__(self, out_dim, rnn_dim, annot_dim, memory_dim, align_model):
|
||||
def __init__(self, out_dim, rnn_dim, annot_dim, memory_dim, align_model, windowing=False):
|
||||
r"""
|
||||
General Attention RNN wrapper
|
||||
|
||||
@@ -110,10 +110,17 @@ class AttentionRNNCell(nn.Module):
|
||||
annot_dim (int): annotation vector feature dimension.
|
||||
memory_dim (int): memory vector (decoder output) feature dimension.
|
||||
align_model (str): 'b' for Bahdanau, 'ls' Location Sensitive alignment.
|
||||
windowing (bool): attention windowing forcing monotonic attention.
|
||||
It is only active in eval mode.
|
||||
"""
|
||||
super(AttentionRNNCell, self).__init__()
|
||||
self.align_model = align_model
|
||||
self.rnn_cell = nn.GRUCell(annot_dim + memory_dim, rnn_dim)
|
||||
self.windowing = windowing
|
||||
if self.windowing:
|
||||
self.win_back = 3
|
||||
self.win_front = 6
|
||||
self.win_idx = None
|
||||
# pick bahdanau or location sensitive attention
|
||||
if align_model == 'b':
|
||||
self.alignment_model = BahdanauAttention(annot_dim, rnn_dim,
|
||||
@@ -138,6 +145,7 @@ class AttentionRNNCell(nn.Module):
|
||||
"""
|
||||
if t == 0:
|
||||
self.alignment_model.reset()
|
||||
self.win_idx = 0
|
||||
# Feed it to RNN
|
||||
# s_i = f(y_{i-1}, c_{i}, s_{i-1})
|
||||
rnn_output = self.rnn_cell(torch.cat((memory, context), -1), rnn_state)
|
||||
@@ -151,6 +159,16 @@ class AttentionRNNCell(nn.Module):
|
||||
if mask is not None:
|
||||
mask = mask.view(memory.size(0), -1)
|
||||
alignment.masked_fill_(1 - mask, -float("inf"))
|
||||
# Windowing
|
||||
if not self.training and self.windowing:
|
||||
back_win = self.win_idx - self.win_back
|
||||
front_win = self.win_idx + self.win_front
|
||||
if back_win > 0:
|
||||
alignment[:, :back_win] = -float("inf")
|
||||
if front_win < memory.shape[1]:
|
||||
alignment[:, front_win:] = -float("inf")
|
||||
# Update the window
|
||||
self.win_idx = torch.argmax(alignment,1).long()[0].item()
|
||||
# Normalize context weight
|
||||
# alignment = F.softmax(alignment, dim=-1)
|
||||
# alignment = 5 * alignment
|
||||
|
||||
+53
-33
@@ -22,14 +22,13 @@ class Prenet(nn.Module):
|
||||
for (in_size, out_size) in zip(in_features, out_features)
|
||||
])
|
||||
self.relu = nn.ReLU()
|
||||
self.dropout = nn.Dropout(0.1)
|
||||
self.dropout = nn.Dropout(0.5)
|
||||
# self.init_layers()
|
||||
|
||||
def init_layers(self):
|
||||
for layer in self.layers:
|
||||
torch.nn.init.xavier_uniform_(
|
||||
layer.weight,
|
||||
gain=torch.nn.init.calculate_gain('relu'))
|
||||
layer.weight, gain=torch.nn.init.calculate_gain('relu'))
|
||||
|
||||
def forward(self, inputs):
|
||||
for linear in self.layers:
|
||||
@@ -88,8 +87,7 @@ class BatchNormConv1d(nn.Module):
|
||||
else:
|
||||
raise RuntimeError('Unknown activation function')
|
||||
torch.nn.init.xavier_uniform_(
|
||||
self.conv1d.weight,
|
||||
gain=torch.nn.init.calculate_gain(w_gain))
|
||||
self.conv1d.weight, gain=torch.nn.init.calculate_gain(w_gain))
|
||||
|
||||
def forward(self, x):
|
||||
x = self.padder(x)
|
||||
@@ -113,11 +111,9 @@ class Highway(nn.Module):
|
||||
|
||||
def init_layers(self):
|
||||
torch.nn.init.xavier_uniform_(
|
||||
self.H.weight,
|
||||
gain=torch.nn.init.calculate_gain('relu'))
|
||||
self.H.weight, gain=torch.nn.init.calculate_gain('relu'))
|
||||
torch.nn.init.xavier_uniform_(
|
||||
self.T.weight,
|
||||
gain=torch.nn.init.calculate_gain('sigmoid'))
|
||||
self.T.weight, gain=torch.nn.init.calculate_gain('sigmoid'))
|
||||
|
||||
def forward(self, inputs):
|
||||
H = self.relu(self.H(inputs))
|
||||
@@ -302,23 +298,26 @@ class Decoder(nn.Module):
|
||||
in_features (int): input vector (encoder output) sample size.
|
||||
memory_dim (int): memory vector (prev. time-step output) sample size.
|
||||
r (int): number of outputs per time step.
|
||||
memory_size (int): size of the past window. if <= 0 memory_size = r
|
||||
"""
|
||||
|
||||
def __init__(self, in_features, memory_dim, r):
|
||||
def __init__(self, in_features, memory_dim, r, memory_size, attn_windowing):
|
||||
super(Decoder, self).__init__()
|
||||
self.r = r
|
||||
self.in_features = in_features
|
||||
self.max_decoder_steps = 500
|
||||
self.memory_size = memory_size if memory_size > 0 else r
|
||||
self.memory_dim = memory_dim
|
||||
# memory -> |Prenet| -> processed_memory
|
||||
self.prenet = Prenet(memory_dim * r, out_features=[256, 128])
|
||||
self.prenet = Prenet(memory_dim * self.memory_size, out_features=[256, 128])
|
||||
# processed_inputs, processed_memory -> |Attention| -> Attention, attention, RNN_State
|
||||
self.attention_rnn = AttentionRNNCell(
|
||||
out_dim=128,
|
||||
rnn_dim=256,
|
||||
annot_dim=in_features,
|
||||
memory_dim=128,
|
||||
align_model='ls')
|
||||
align_model='ls',
|
||||
windowing=attn_windowing)
|
||||
# (processed_memory | attention context) -> |Linear| -> decoder_RNN_input
|
||||
self.project_to_decoder_in = nn.Linear(256 + in_features, 256)
|
||||
# decoder_RNN_input -> |RNN| -> RNN_state
|
||||
@@ -326,6 +325,10 @@ class Decoder(nn.Module):
|
||||
[nn.GRUCell(256, 256) for _ in range(2)])
|
||||
# RNN_state -> |Linear| -> mel_spec
|
||||
self.proj_to_mel = nn.Linear(256, memory_dim * r)
|
||||
# learn init values instead of zero init.
|
||||
self.attention_rnn_init = nn.Embedding(1, 256)
|
||||
self.memory_init = nn.Embedding(1, self.memory_size * memory_dim)
|
||||
self.decoder_rnn_inits = nn.Embedding(2, 256)
|
||||
self.stopnet = StopNet(256 + memory_dim * r)
|
||||
# self.init_layers()
|
||||
|
||||
@@ -338,6 +341,9 @@ class Decoder(nn.Module):
|
||||
gain=torch.nn.init.calculate_gain('linear'))
|
||||
|
||||
def _reshape_memory(self, memory):
|
||||
"""
|
||||
Reshape the spectrograms for given 'r'
|
||||
"""
|
||||
B = memory.shape[0]
|
||||
# Grouping multiple frames if necessary
|
||||
if memory.size(-1) == self.memory_dim:
|
||||
@@ -347,6 +353,28 @@ class Decoder(nn.Module):
|
||||
memory = memory.transpose(0, 1)
|
||||
return memory
|
||||
|
||||
def _init_states(self, inputs):
|
||||
"""
|
||||
Initialization of decoder states
|
||||
"""
|
||||
B = inputs.size(0)
|
||||
T = inputs.size(1)
|
||||
# go frame as zeros matrix
|
||||
initial_memory = self.memory_init(inputs.data.new_zeros(B).long())
|
||||
|
||||
# decoder states
|
||||
attention_rnn_hidden = self.attention_rnn_init(inputs.data.new_zeros(B).long())
|
||||
decoder_rnn_hiddens = [
|
||||
self.decoder_rnn_inits(inputs.data.new_tensor([idx]*B).long())
|
||||
for idx in range(len(self.decoder_rnns))
|
||||
]
|
||||
current_context_vec = inputs.data.new(B, self.in_features).zero_()
|
||||
# attention states
|
||||
attention = inputs.data.new(B, T).zero_()
|
||||
attention_cum = inputs.data.new(B, T).zero_()
|
||||
return (initial_memory, attention_rnn_hidden, decoder_rnn_hiddens,
|
||||
current_context_vec, attention, attention_cum)
|
||||
|
||||
def forward(self, inputs, memory=None, mask=None):
|
||||
"""
|
||||
Decoder forward step.
|
||||
@@ -365,36 +393,28 @@ class Decoder(nn.Module):
|
||||
- inputs: batch x time x encoder_out_dim
|
||||
- memory: batch x #mel_specs x mel_spec_dim
|
||||
"""
|
||||
B = inputs.size(0)
|
||||
T = inputs.size(1)
|
||||
# Run greedy decoding if memory is None
|
||||
greedy = not self.training
|
||||
if memory is not None:
|
||||
memory = self._reshape_memory(memory)
|
||||
T_decoder = memory.size(0)
|
||||
# go frame as zeros matrix
|
||||
initial_memory = inputs.data.new(B, self.memory_dim * self.r).zero_()
|
||||
# decoder states
|
||||
attention_rnn_hidden = inputs.data.new(B, 256).zero_()
|
||||
decoder_rnn_hiddens = [
|
||||
inputs.data.new(B, 256).zero_()
|
||||
for _ in range(len(self.decoder_rnns))
|
||||
]
|
||||
current_context_vec = inputs.data.new(B, self.in_features).zero_()
|
||||
# attention states
|
||||
attention = inputs.data.new(B, T).zero_()
|
||||
attention_cum = inputs.data.new(B, T).zero_()
|
||||
outputs = []
|
||||
attentions = []
|
||||
stop_tokens = []
|
||||
t = 0
|
||||
memory_input = initial_memory
|
||||
memory_input, attention_rnn_hidden, decoder_rnn_hiddens,\
|
||||
current_context_vec, attention, attention_cum = self._init_states(inputs)
|
||||
while True:
|
||||
if t > 0:
|
||||
if memory is None:
|
||||
memory_input = outputs[-1]
|
||||
new_memory = outputs[-1]
|
||||
else:
|
||||
memory_input = memory[t - 1]
|
||||
new_memory = memory[t - 1]
|
||||
# Queuing if memory size defined else use previous prediction only.
|
||||
if self.memory_size > 0:
|
||||
memory_input = torch.cat([memory_input[:, self.r * self.memory_dim:].clone(), new_memory], dim=-1)
|
||||
else:
|
||||
memory_input = new_memory
|
||||
# Prenet
|
||||
processed_memory = self.prenet(memory_input)
|
||||
# Attention RNN
|
||||
@@ -412,7 +432,7 @@ class Decoder(nn.Module):
|
||||
for idx in range(len(self.decoder_rnns)):
|
||||
decoder_rnn_hiddens[idx] = self.decoder_rnns[idx](
|
||||
decoder_input, decoder_rnn_hiddens[idx])
|
||||
# Residual connectinon
|
||||
# Residual connection
|
||||
decoder_input = decoder_rnn_hiddens[idx] + decoder_input
|
||||
decoder_output = decoder_input
|
||||
del decoder_input
|
||||
@@ -433,7 +453,8 @@ class Decoder(nn.Module):
|
||||
if t >= T_decoder:
|
||||
break
|
||||
else:
|
||||
if t > inputs.shape[1] / 4 and stop_token > 0.6:
|
||||
if t > inputs.shape[1] / 4 and (stop_token > 0.6 or
|
||||
attention[:, -1].item() > 0.6):
|
||||
break
|
||||
elif t > self.max_decoder_steps:
|
||||
print(" | > Decoder stopped with 'max_decoder_steps")
|
||||
@@ -459,8 +480,7 @@ class StopNet(nn.Module):
|
||||
self.linear = nn.Linear(in_features, 1)
|
||||
self.sigmoid = nn.Sigmoid()
|
||||
torch.nn.init.xavier_uniform_(
|
||||
self.linear.weight,
|
||||
gain=torch.nn.init.calculate_gain('linear'))
|
||||
self.linear.weight, gain=torch.nn.init.calculate_gain('linear'))
|
||||
|
||||
def forward(self, inputs):
|
||||
outputs = self.dropout(inputs)
|
||||
|
||||
+8
-5
@@ -1,27 +1,30 @@
|
||||
# coding: utf-8
|
||||
import torch
|
||||
from torch import nn
|
||||
from utils.text.symbols import symbols
|
||||
from math import sqrt
|
||||
from layers.tacotron import Prenet, Encoder, Decoder, PostCBHG
|
||||
|
||||
|
||||
class Tacotron(nn.Module):
|
||||
def __init__(self,
|
||||
num_chars,
|
||||
embedding_dim=256,
|
||||
linear_dim=1025,
|
||||
mel_dim=80,
|
||||
r=5,
|
||||
padding_idx=None):
|
||||
padding_idx=None,
|
||||
memory_size=5,
|
||||
attn_windowing=False):
|
||||
super(Tacotron, self).__init__()
|
||||
self.r = r
|
||||
self.mel_dim = mel_dim
|
||||
self.linear_dim = linear_dim
|
||||
self.embedding = nn.Embedding(
|
||||
len(symbols), embedding_dim, padding_idx=padding_idx)
|
||||
print(" | > Number of characters : {}".format(len(symbols)))
|
||||
num_chars, embedding_dim, padding_idx=padding_idx)
|
||||
print(" | > Number of characters : {}".format(num_chars))
|
||||
self.embedding.weight.data.normal_(0, 0.3)
|
||||
self.encoder = Encoder(embedding_dim)
|
||||
self.decoder = Decoder(256, mel_dim, r)
|
||||
self.decoder = Decoder(256, mel_dim, r, memory_size, attn_windowing)
|
||||
self.postnet = PostCBHG(mel_dim)
|
||||
self.last_linear = nn.Sequential(
|
||||
nn.Linear(self.postnet.cbhg.gru_features * 2, linear_dim),
|
||||
|
||||
+586
-709
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,780 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/erogol/projects\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"cd /home/erogol/projects/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"/home/erogol/miniconda3/lib/python3.7/site-packages/matplotlib/__init__.py:1405: UserWarning: \n",
|
||||
"This call to matplotlib.use() has no effect because the backend has already\n",
|
||||
"been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n",
|
||||
"or matplotlib.backends is imported for the first time.\n",
|
||||
"\n",
|
||||
" warnings.warn(_use_error_msg)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%matplotlib inline\n",
|
||||
"from TTS.utils.audio import AudioProcessor\n",
|
||||
"from TTS.utils.visual import plot_spectrogram\n",
|
||||
"from TTS.utils.generic_utils import load_config\n",
|
||||
"import IPython.display as ipd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"config_path = \"/media/erogol/data_ssd/Data/models/tr/TTS-phoneme-January-14-2019_06+52PM-4ad64a7/config.json\"\n",
|
||||
"data_path = \"/media/erogol/data_ssd/Data/TR/wavs/\"\n",
|
||||
"CONFIG = load_config(config_path)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Setup Audio Processor\n",
|
||||
"Play with the AP parameters until you find a good fit with the synthesis speech below. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 67,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > Setting up Audio Processor...\n",
|
||||
" | > fft size: 2048, hop length: 275, win length: 1102\n",
|
||||
" | > Audio Processor attributes.\n",
|
||||
" | > bits:None\n",
|
||||
" | > sample_rate:22050\n",
|
||||
" | > num_mels:80\n",
|
||||
" | > min_level_db:-100\n",
|
||||
" | > frame_shift_ms:12.5\n",
|
||||
" | > frame_length_ms:50\n",
|
||||
" | > ref_level_db:40\n",
|
||||
" | > num_freq:1025\n",
|
||||
" | > power:1.1\n",
|
||||
" | > preemphasis:0.99\n",
|
||||
" | > griffin_lim_iters:30\n",
|
||||
" | > signal_norm:True\n",
|
||||
" | > symmetric_norm:False\n",
|
||||
" | > mel_fmin:0\n",
|
||||
" | > mel_fmax:None\n",
|
||||
" | > max_norm:1.0\n",
|
||||
" | > clip_norm:True\n",
|
||||
" | > do_trim_silence:True\n",
|
||||
" | > n_fft:2048\n",
|
||||
" | > hop_length:275\n",
|
||||
" | > win_length:1102\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"audio={\n",
|
||||
" 'audio_processor': 'audio',\n",
|
||||
" 'num_mels': 80, # In general, you don'tneed to change it \n",
|
||||
" 'num_freq': 1025, # In general, you don'tneed to change it \n",
|
||||
" 'sample_rate': 22050, # It depends to the sample rate of the dataset.\n",
|
||||
" 'frame_length_ms': 50, # In general, you don'tneed to change it \n",
|
||||
" 'frame_shift_ms': 12.5, # In general, you don'tneed to change it \n",
|
||||
" 'preemphasis': 0.99, # In general, 0 gives better voice recovery but makes traning harder. If your model does not train, try 0.97 - 0.99.\n",
|
||||
" 'min_level_db': -100,\n",
|
||||
" 'ref_level_db': 40, # It is the base DB, higher until you remove the background noise in the spectrogram and then lower until you hear a better speech below.\n",
|
||||
" 'power': 1.1, # Change this value and listen the synthesized voice. 1.2 - 1.5 are some resonable values.\n",
|
||||
" 'griffin_lim_iters': 30, # It does not give any imporvement for values > 60\n",
|
||||
" 'signal_norm': True, # This is more about your model. It does not give any change for the synthsis performance.\n",
|
||||
" 'symmetric_norm': False, # Same as above\n",
|
||||
" 'max_norm': 1, # Same as above\n",
|
||||
" 'clip_norm': True, # Same as above\n",
|
||||
" 'mel_fmin': None, # You can play with this and check mel-spectrogram based voice synthesis below.\n",
|
||||
" 'mel_fmax': None, # You can play with this and check mel-spectrogram based voice synthesis below.\n",
|
||||
" 'do_trim_silence': True} # If you dataset has some silience at the beginning or end, this trims it. Check the AP.load_wav() below,if it causes any difference for the loaded audio file.\n",
|
||||
"\n",
|
||||
"AP = AudioProcessor(**audio);"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Check audio loading "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 71,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 71,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"wav = AP.load_wav(data_path + \"5_5uIl38UFVh0.wav\")\n",
|
||||
"ipd.Audio(data=wav, rate=AP.sample_rate) "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Generate Mel-Spectrogram and Re-synthesis with GL"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 69,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Max: 0.6203846939023735\n",
|
||||
"Min: 0.0\n",
|
||||
"Mean: 0.23149373486123542\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 69,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7f2e6c3a7908>"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"mel = AP.melspectrogram(wav)\n",
|
||||
"print(\"Max:\", mel.max())\n",
|
||||
"print(\"Min:\", mel.min())\n",
|
||||
"print(\"Mean:\", mel.mean())\n",
|
||||
"plot_spectrogram(mel.T, AP);\n",
|
||||
"\n",
|
||||
"wav_gen = AP.inv_mel_spectrogram(mel)\n",
|
||||
"ipd.Audio(wav_gen, rate=AP.sample_rate)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Generate Linear-Spectrogram and Re-synthesis with GL"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 72,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Max: 0.8925319\n",
|
||||
"Min: 0.0\n",
|
||||
"Mean: 0.41698578\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 72,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7f2e5e591ac8>"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"spec = AP.spectrogram(wav)\n",
|
||||
"print(\"Max:\", spec.max())\n",
|
||||
"print(\"Min:\", spec.min())\n",
|
||||
"print(\"Mean:\", spec.mean())\n",
|
||||
"plot_spectrogram(spec.T, AP);\n",
|
||||
"\n",
|
||||
"wav_gen = AP.inv_spectrogram(spec)\n",
|
||||
"ipd.Audio(wav_gen, rate=AP.sample_rate)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Compare values for a certain parameter\n",
|
||||
"\n",
|
||||
"Optimize your parameters by comparing different values per parameter at a time."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 54,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > Setting up Audio Processor...\n",
|
||||
" | > fft size: 2048, hop length: 275, win length: 1102\n",
|
||||
" | > Audio Processor attributes.\n",
|
||||
" | > bits:None\n",
|
||||
" | > sample_rate:22050\n",
|
||||
" | > num_mels:80\n",
|
||||
" | > min_level_db:-100\n",
|
||||
" | > frame_shift_ms:12.5\n",
|
||||
" | > frame_length_ms:50\n",
|
||||
" | > ref_level_db:40\n",
|
||||
" | > num_freq:1025\n",
|
||||
" | > power:1.1\n",
|
||||
" | > preemphasis:0.99\n",
|
||||
" | > griffin_lim_iters:30\n",
|
||||
" | > signal_norm:True\n",
|
||||
" | > symmetric_norm:False\n",
|
||||
" | > mel_fmin:0\n",
|
||||
" | > mel_fmax:None\n",
|
||||
" | > max_norm:1.0\n",
|
||||
" | > clip_norm:True\n",
|
||||
" | > do_trim_silence:True\n",
|
||||
" | > n_fft:2048\n",
|
||||
" | > hop_length:275\n",
|
||||
" | > win_length:1102\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"audio={\n",
|
||||
" 'audio_processor': 'audio',\n",
|
||||
" 'num_mels': 80, # In general, you don'tneed to change it \n",
|
||||
" 'num_freq': 1025, # In general, you don'tneed to change it \n",
|
||||
" 'sample_rate': 22050, # It depends to the sample rate of the dataset.\n",
|
||||
" 'frame_length_ms': 50, # In general, you don'tneed to change it \n",
|
||||
" 'frame_shift_ms': 12.5, # In general, you don'tneed to change it \n",
|
||||
" 'preemphasis': 0.99, # In general, 0 gives better voice recovery but makes traning harder. If your model does not train, try 0.97 - 0.99.\n",
|
||||
" 'min_level_db': -100,\n",
|
||||
" 'ref_level_db': 40, # It is the base DB, higher until you remove the background noise in the spectrogram and then lower until you hear a better speech below.\n",
|
||||
" 'power': 1.1, # Change this value and listen the synthesized voice. 1.2 - 1.5 are some resonable values.\n",
|
||||
" 'griffin_lim_iters': 30, # It does not give any imporvement for values > 60\n",
|
||||
" 'signal_norm': True, # This is more about your model. It does not give any change for the synthsis performance.\n",
|
||||
" 'symmetric_norm': False, # Same as above\n",
|
||||
" 'max_norm': 1, # Same as above\n",
|
||||
" 'clip_norm': True, # Same as above\n",
|
||||
" 'mel_fmin': None, # You can play with this and check mel-spectrogram based voice synthesis below.\n",
|
||||
" 'mel_fmax': None, # You can play with this and check mel-spectrogram based voice synthesis below.\n",
|
||||
" 'do_trim_silence': True} # If you dataset has some silience at the beginning or end, this trims it. Check the AP.load_wav() below,if it causes any difference for the loaded audio file.\n",
|
||||
"\n",
|
||||
"AP = AudioProcessor(**audio);"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 55,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from librosa import display\n",
|
||||
"from matplotlib import pylab as plt\n",
|
||||
"import IPython\n",
|
||||
"plt.rcParams['figure.figsize'] = (20.0, 16.0)\n",
|
||||
"\n",
|
||||
"def compare_values(attribute, values, file):\n",
|
||||
" \"\"\"\n",
|
||||
" attributes (str): the names of the attribute you like to test.\n",
|
||||
" values (list): list of values to compare.\n",
|
||||
" file (str): file name to perform the tests.\n",
|
||||
" \"\"\"\n",
|
||||
" wavs = []\n",
|
||||
" for idx, val in enumerate(values):\n",
|
||||
" set_val_cmd = \"AP.{}={}\".format(attribute, val)\n",
|
||||
" exec(set_val_cmd)\n",
|
||||
" wav = AP.load_wav(data_path + file)\n",
|
||||
" spec = AP.spectrogram(wav)\n",
|
||||
" spec_norm = AP._denormalize(spec.T)\n",
|
||||
" plt.subplot(len(values), 2, 2*idx + 1)\n",
|
||||
" plt.imshow(spec_norm.T, aspect=\"auto\", origin=\"lower\")\n",
|
||||
" # plt.colorbar()\n",
|
||||
" plt.tight_layout()\n",
|
||||
" wav_gen = AP.inv_spectrogram(spec)\n",
|
||||
" wavs.append(wav_gen)\n",
|
||||
" plt.subplot(len(values), 2, 2*idx + 2)\n",
|
||||
" display.waveplot(wav, alpha=0.5)\n",
|
||||
" display.waveplot(wav_gen, alpha=0.25)\n",
|
||||
" plt.title(\"{}={}\".format(attribute, val))\n",
|
||||
" plt.tight_layout()\n",
|
||||
" \n",
|
||||
" wav = AP.load_wav(data_path + file)\n",
|
||||
" print(\" > Ground-truth\")\n",
|
||||
" IPython.display.display(IPython.display.Audio(wav, rate=AP.sample_rate))\n",
|
||||
" \n",
|
||||
" for idx, wav_gen in enumerate(wavs):\n",
|
||||
" val = values[idx]\n",
|
||||
" print(\" > {} = {}\".format(attribute, val))\n",
|
||||
" IPython.display.display(IPython.display.Audio(wav_gen, rate=AP.sample_rate))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 56,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > Ground-truth\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > preemphasis = 0\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > preemphasis = 0.97\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > preemphasis = 0.98\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > preemphasis = 0.99\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAABZgAAAR4CAYAAACLnrPyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAIABJREFUeJzsvWmwZdd1Hrb2nYc3T939Xs8TpgbQBAESJEWKGiyZlGzG5UQelMTKJE+JKomSsqxYUSLLtqqcqpRddBRLKlmDy7JsJ7Fk2dZgqUhRIwkOIAUQQGPoud/83n13Hnd+rLXO+i7OBRpotoAGuL6qxrs49wz77LP3Pnd/69vfCjFGcjgcDofD4XA4HA6Hw+FwOBwOh+PNIvN2F8DhcDgcDofD4XA4HA6Hw+FwOBzvTDjB7HA4HA6Hw+FwOBwOh8PhcDgcjjuCE8wOh8PhcDgcDofD4XA4HA6Hw+G4IzjB7HA4HA6Hw+FwOBwOh8PhcDgcjjuCE8wOh8PhcDgcDofD4XA4HA6Hw+G4IzjB7HA4HA6Hw+FwOBwOh8PhcDgcjjuCE8wOh8PhcDgcDofD4XA43vUIIZwMIcQQQu4un/f/DiH80N08p8PhcLyT4ASzw+FwOBwOh8PhcDgcDscdIsb4V2KMf/tunS+EsBBC+P9CCM0QwpUQwl+8W+d2OByOPw7c1aidw+FwOBwOh8PhcDgcDocihJCLMQ7e7nK8w/CPiKhHRIeI6CIR/dsQwtMxxmfe3mI5HA7HZLiC2eFwOBwOh8PhcDgcDsebQgjhcgjhb4YQng0h7IUQ/kkIoRRC+GgI4XoI4W+EENaJ6J/I/t8ZQvhSCGE/hPB7IYRH4FyrIYT/J4SwFUJ4JYTwffDd/xZC+JchhH8aQqiHEL4SQjgv194MIVwLIXwb7P+pEMLfCyF8NoRQCyH8Ughh4VXF/+4QwtUQwnYI4X+BY98XQvh9KeOtEMInQwgF+S6EEP5PuWYthPDlEMIF+e5nQgg/Kp+XQgi/IufYDSF8JoTwhrmXEEKViP4sEf1QjLERY/wdIvplIvrP3vjTcTgcjrcWTjA7HA6Hw+FwOBwOh8PhuBN8NxF9OxGdIaLzRPS3ZPthIlogohNE9L0hhMeI6KeJ6C8T0SIR/WMi+uUQQlHI139DRE8T0RoRfQsR/fchhG+H6/wpIvp5Iponoi8S0a8R8xlrRPQjcj7Ef05E/yURrRLRgIj+4au+/wYiuk+u9b+GEB6Q7UMi+h+IaImIPiDf/zX57tuI6CNyn3NE9OeIaGdCnXw/EV0nomViBfIPElEkIgLiedK/X5HjzxPRMMb4ApzzaSJ6aMK1HA6H456AE8wOh8PhcDgcDofD4XA47gSfjDFeizHuEtHfIaK/INtHRPTDMcZujLFNRP8NEf3jGOMfxhiHMcafJaIuET1JRE8Q0XKM8UdijL0Y48tE9JNE9OfhOp+JMf6aWG38S2Ly9sdijH0i+udEdDKEMAf7/3yM8Y9ijE0i+iEi+q4QQha+/99jjO0Y49PE5O2jREQxxs/HGP8gxjiIMV4mJq6/UY7pE9E0Ed1PRCHG+NUY460JddInoiNEdCLG2I8xfibGGOX83xljnHuNf98px08RUe1V56zJtR0Oh+OehBPMDofD4XA4HA6Hw+FwOO4E1+DzFWLFMBHRVoyxA9+dIKLvR8UuER2T/U8Q0eqrvvtBYvWvYgM+t4loO8Y4hP8nYmL2tcqVJ1YlK9bhc0uPFeuNXwkhrIcQDojo7+pxMcbfIqJPEvsjb4QQfiKEMDOhTv4+Eb1IRL8eQng5hPADE/Z5PTSI6NXnnSGi+ps8j8PhcLxlcILZ4XA4HA6Hw+FwOBwOx53gGHw+TkQ35XN81X7XiOjvvEqxW4kx/oJ898qrvpuOMX78LparT0Tbb+C4Hyei54joXIxxhpjoDvpljPEfxhjfS2xXcZ6I/udXnyDGWI8xfn+M8TSxtcf/GEL4FiKiEMK/DyE0XuPfv5dTvEBEuRDCOTjto0TkCf4cDsc9CyeYHQ6Hw+FwOBwOh8PhcNwJ/noI4agk0ftBIvrF19jvJ4nor4QQ3i/J8qohhO8IIUwT0WeJ6ECSApZDCNkQwoUQwhNfQ7n+0xDCgyGECrFH878CxfPrYZqIDoioEUK4n4j+qn4RQnhCyp8noiYRdYg9m8cgyQzPhhCCnGuo+8UYPxZjnHqNfx+TfZpE9P8S0Y9IPX2IiD5B7EHtcDgc9yScYHY4HA6Hw+FwOBwOh8NxJ/hnRPTrRPSy/PvRSTvFGJ8i9mH+JBHtEVtIfI98NyRW+l4koleIlcY/RUSzX0O5fp6IfobYCqNERN/3Bo/7n4joLxLbUfwkjRPmM7Jtj9h2Y4eI/o8J5zhHRP+B2Ori94no/4oxfupNlv+vEVGZiDaJ6BeI6K/GGF3B7HA47lkE8Zp3OBwOh8PhcDgcDofD4XhDCCFcJqL/Osb4H97usiBCCJ8ion8aY/ypt7ssDofD8fUCVzA7HA6Hw+FwOBwOh8PhcDgcDofjjuAEs8PhcDgcDofD4XA4HA6Hw+FwOO4IbpHhcDgcDofD4XA4HA6Hw+FwOByOO4IrmB0Oh8PhcDgcDofD4XA4HA6Hw3FHyL3dBXg95IvVWKwsEBFRZjDijY227RAC/ykWkk0xI9uGI9vW7f0xl9Tx9YqQz8P/hPQOo9H4XyIi2S2OYPWArySYiJCxGFjEOnwHA+9Jgfem39/2fnX8y2ZtW84+J2MhNjNpe6E/gGPSr4HY7rz+te8GpspSJus3mR6XC8fsUCoSEdEob/cWoO/o55iF/ifbwmCYbIp6z3erryXlxgq+O6e+l5C8Xye0W6zLmJXv4TGEPte/v4Md9xLwvX3Q39yOMS6/jcW5q1haWoonT558u4vhcDgcDofD4XgX4fOf//wb+s18TxPMxco8Xfym7+PPO30iIsp85ovJ99llvr/+/UftIJnjZj5t+9EE3u+djky1SkREsdtNtsXB4LV2vyNk5+eJ6FUEfoeJp+F+zXZUouXrhCTNzs0mn8P0dPI5VkryAephZ4839frJplG9Lgdbw8zOzxER0XBv724X955EBupN6yPkoZ31hZDCJnWP9uNMiZ97qFaSbcOd3dR+2UUOlhGQu8ODA/4A95apcN8eNZvJtiAkcCgWbT9ph3GmmmyLRSNOQtfanB2UJglHFa73TBPGkis35AMQuUpEA6E9rHH5s1NWhjA7w+eFOhi1Wryf1gER9R88wd/lrUyll7eIiGhw+aoVOXD9Di7eb8fO2H1mO0zEZ3pAJuf4nMUrO8k2PWemUk6V62uBjpNSWCKa/PzfScg+eD75HLXNAIHfn+c6zH/+UrKt9vGHiGg8oDH9EvftzKVryTas87v9znI43ghyS4eSz7966x9deRuLctdx8uRJeuqpp97uYjgcDofD4XA43kUIIbyh38z3NMEcIlHQ+afOcc+fse9FFdVdAFJFRH/Vh+6zE23yZH+4tfXHVta3AnjvscykUHa/kWwbXLmWOoYyQgaNhunvJiBTMZIsUTYCwaxqyWwwUkhJ0eyhFTsWiO/kPECyJsQaQInbMTL2LhBAk6CkIJGRxAHVn9NCmAEJHDrd1LbeUSPMlFgZloCAOycK/K6pUUu35JnBfdL220Msa6AirNqEG9X/g1dkHHmDwQMkiYMqGoGQVNIUgxa52TW+xEHdTnT6uBTQ6nr4VSOz7iVkjnDdjWas7+SkHw2uXU+2Jaq5shGcuRlue6MFI9wzNakjJHKlv4wRcueYoO2uwHUb1qbiLJPREepQ1cLFGxYg6s3zfsXnLtv1Lp7j8+0aya31jyRxplwaKx8RUVa2hekpK6v2Y1AeK7E8KoBKXdpF7pgFDfvHFvk+l6zNNI5Y3WSkSgJUzfQ1fje07rMxqTQrxP2Xnk22KWGPgTodM5E0nzheyXisYzERET3/Cp93UrBkArT/EY0HFJLygbo8aLvpw/jYubtK8+wMBwcG89amdh/k6w4L1o7yDX6O/QcfTrYtPcOri0ZZeJ6iOg/zFpQjHNOlrgO20Xcg6Tz2vIfyrn2D71zHW493YhtzOBwOh8PhcDjuddyWYA4h/DQRfScRbcYYL8i2BSL6RSI6SUSXiei7Yox7IYRARP+AiD5ORC0i+p4Y4xfkmL9ERH9LTvujMcafvd21YyCKUsJhkSeieSABW6cPExFRZmCkRXFLJtywNFrJrCyQzqHF+yUE2jsAwxcvJ59zJ5iAiSVTNGaXmIgZbptqL1NgUmvUeWOT3YDqvqNMzozK1kxUJZjdMTIwK4RCAOJ1gArnSdeRCTmSL0GVoFNGTCnBPKbcVOIKSO4o5MztCGklbDKiGCaihACPPSCCdveJaFyJmJH20z5uZCAi02NiNn9g5yl89jJ/OLFmZdjnuhscW7JjlViD5zlY3+APX4MyHNWVYYbrLTaMyIpCmmt/eDVyh4U8rRnB9np1PEamZYS8A+JM+2B/wQisbJsJs3h00cra5XamS+yJiLJnTxER0fDFV17z+m8VciePJ58Hy0zKZTpA7pb53nWVBRHRcI2f93DKyKhMm4mObNPqbbjCbTMLtgI5IegiPqcWP7sYrC4PTln/zUjVZfrWfmY/y8rk3mkrV2GPz9P5kCmEezM8zhbLNt4Wiw/y9QYWgBjOcp9FEju7zn1/eOllSgHIxxDVxgLsjISs7a4ZIbl/lrcFGMIGFVDTynCQt1gbDaU/Fep274V97ue50ydtv2s302UUYhDHAyW8Y9ssmqKMrRGsO+jCWS7r8/ZemUQwa7+isgW6MgFWHEndxJZdL1HIg33J6NZ66twaqAsQRJu08kSDbEhSj+TcrcM2DilxX+haXTZXuf5L27Zt5wE+XwbiZjNSDaPjNtYBHZ8EReNdcr+ZpPSfRNy/WeTWVu1/pG0NLltAF5+x1Wv6nYvl0vcl1r++wwmCfG90VUsSNEVbIWnDTqiOI0ywBXI4HA6Hw+FwOBxfG97Ir+yfIaJPEtHPwbYfIKLfjDH+WAjhB+T//wYRfYyIzsm/9xPRjxPR+4WQ/mELine truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7f2e6c3cf438>"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"compare_values(\"preemphasis\", [0, 0.97, 0.98, 0.99], \"5_5uIl38UFVh0.wav\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 53,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > Ground-truth\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 10\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 15\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 20\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,UklGRi41AgBXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YQo1AgDf+Fz3FvdJ9uD18fQR90753/io+9EBxwWyCysQ9xL3E0kU9BXhGMMbMh6mIZkiHCFGIZkj3iNII68jYiF/IK0c6BnuGzUcGBo7Ft4VZBL0EccQPA9BDm0K6QVGBUwDFgCZ+x77Tvxe+Tf5TvQT85/zY/Re9F/1EPdu9vjzo/RF9evx/fQt9Zv3nPe3+HL7MfhO9zv3jPdK8yT1lvQ583Lxwe5Z7svox+i156HmcuVu5sXpguVk44njfuMA5dfmEuQJ5ETlkOad5zPpaO6r7SnsgOl66pbrR+5G72fyTfNC72/vy+508e/x5/Oa9h/4lPS79BjzoPOP9Tj2kfzE/hEBqgIABgsHsAc7BygKmgmsB9oHqwi3CsQKeQxMDpkM6AodDpEMgw3rECsVthUeFDoQ9Q4eD/QIRQqMCbAGAgTEBE4DZQFoBe4DNwb5BL0AEP61+sj1eOuf66jrJunC6mLsze4D7dbrLeq25lPkxuWe6MzoB+dr56DneOmF677rR+zk57XnfOZC6NHvZPWm/Z8AugLsAYUAkv8s/t8D9ggYDH8PLRMZExAUOBctF88YGxi4FvMZtBuuGtIb0xrvFSgUzg/9DNIL1gj1BgwF5QOuBecF2AbxB5YG4gUzA24AUAJfA2QC/gTCA+MDCAPlBQsIDgf6CFoGoASNBWAHxQmWDSINIQtuCawEZv/s/kb/dgDrA/EDeARRA2AENAB3/1L/5foj/Ub9Hv+LAPcD2v/c/q/7k/V69pjzq/PK9xP5Qve5+YH4cvnL9eb1CvPG7tDrxOqF8AXwR/T39Sr8V/p9+OL35PRK+G73oP4HAW0CeQM/A6sDsgL5AgIBywQDBBsFOAVyB0MJpQjvC1MGvgVpBKUA1gQcBJcFlAn+CKsJxgeAB/8EKQdCB2QHvApWB/gJ6QfxBQEFYwCWAN//Ff4b/Vf7WftA+CP5aPgV9rX1HPHK807wy+6j7xzwGPEZ8pL39/ex9rzzVvRp9d/5Tv9fBO8GPQcoBpMH8AjIBG4IUAvZDcgOnA1hDE4LpAuWC9EM4QyjCUEJjgjeBSkHFwMFA6UDkQUxBKQCYAJlAY8C8P8vAUf+gf/r/c0BaQP4AvcDewN+A6f+HwJU/IT8Bv5w/84Bwf6yAQb/Jv8v/M79+P/2/xABWwJyBYQBav/y/lL+I/0V//r/uwAa/0f/gP/R/gb97/ov/Cv8wv0UAFYATfxb+/j7T/ua+e35tvhy+aT8jP0L/6MA9f9QANEB5/5U/cn7Gvs8/Gn+4v+KAVYDGwNHA28BLAJtAWYC6AFYArsGxwU4CCQH3QdBCDYJ3wnKCfQLZwyJD7cRJxHtEAcQ1w6YD9gMSAxHDU0Pqg/QEdcOyQubDGcKqAfXBDsGNgZCBnYFyQNg/7v8KPyx+6P64/aF87fxifAu7kXwQfC97yDwl+/h7Y/qH+te6BroROld6knrmeqC6lbtbu717IzuQ/CL8gzzvPRB9Tf22vbU97T6xPvk+z/60/lw+//5pvob++T58/p5+qf7TvqH+Rr54/gI+h/7VPx1+f33m/dt+UD5Gfmb+N74RPpd/F79hP60/wP+f/9F/zsBp/4fAEQCAAP6BasE/QWDBakEjQDv/xMDhwNSBvcKaw1PCh0GTwGpAC4DdQMOBQUG0gNjBBYEwgO3//j8q/tg+1L9EP2M/lD8owN8A+n/bv+R/eX7jPn6+br7Lv+6ARoAIv08AA4AWQGFAOL9Df3f/cb/rgF7AQP+T/1J/7r9+fcF+t39o/16BSoFHwJNAZr+MgIb/Nr3vviO+4gAOgQbBTD/vP8k/pkAuQVS/5IBRQJkAqEESwiKBmEEOgeoAO7/PQVLBasFcwnFB50DRARJBAn/mf+S/tEDdwaCAJgE/f+Z+Xn+dQAI/I/5KPv5+5T8gvnz/Lv/wf3zAfcBw/z+9r/5iAIe/Sz8PwNR/TwAlwcWCZEBTQGeAsgDHwWtBCYF2ASWBV0AwwI0/yIC6AAf/wYA2vk2+G7/tv60+lAA1fcU+r3+svv09E/3TvkA9Uv88PkM9pX4Lf3G+Sj+APvN/dQAWf0MBzX9//oY/kQHignFCPkFYgCvAp0B/gdQCWcJdwkOBhAClgcbBVcFKwO4BVUMhAHzCcL/Vvx4BTgCdwXYB28B4PkCBrICEAHjBgz9vvkyAUcE3AJ6AH3+3wEoAiP8CwZOC+kClQXTA7QFVQIB/DoBbAmEBl7/Ygp5AxP2Zf7OBVIDUQeZBlECDfv1+V4JDQhpBeT3D/TtDJsTT+zd+tYLIfUPBjET+gHf9FABOPiH+FkDaQWpB90IkQTm8T/6OQIy/HIW8AkO98zz+QvoEKoBlwEz8Fv6jQI2EAIKYAap8qHhFP6hBbgK3Q2R92Pv6/ekCG76ZQPsCZH7XvK188MZdwBGBm0Oruw17DIWsBBu+rAInA/LASQD+xEL+Ej37v19IUkUVgYw76zoPA6wDn0Ix/vICD7qe/5MDMf4SOnk9P4AngJ8Enr6uvUa5q3y1+V4/In1HhOnHJHNgtq+2CMNwBmP/o7tmNz+7kD8wAvL+FMB2esI3Sceiftx7Rz/uRHS/dv1cQWe8Z0I9wFBHzcAdABD9qUEXBGWEowLe+JBByz2viM/66TzyQJM580R6O8kFc3rWQNM9PzjGQ5XCzAXy9dp9jHoVx7+IC3a+gigCRr4ThCiDCnz1gutGhEC/POWAGXwIAKU9xQBafxdHU7+YrW2ByL9rN6HI68iOtc7uiX7dhTh9dLwI9dn7oMDYSCaLDrhILwI9owUThEzFTAVbvbm7JvPufHeIPELayQuAqrq2tXZByMNyRS+5ibU5SLA5okJ/jp/69/Nx/pO8U4UoQgNC/QNFPhw9PHjpRE1J9wUpuPY8eEY4yXu7NMG0ADa7UcIHAAWGJL+zRSQDr4BkNe77b0epxoJG1QKBcoh0Csm8SceGNTj8NT02NMD+BDXOMv6fMdTGgblfPOlCbMYyv889vD3qQ0tBzoM8hi92s0L5wiADuEJqRqQ4SoqmRKgxvQoqwuB94Dppyof7ljdpfP1K2MknOJ1DIP+rM09+wtDRQZS/8fgw/npEUAYndcF/u0JPdduKiL5NyJwE7jzcMBszwcdDi/LTC0JZuYL6Fzzm/tc9SpTwTKRxPES8w1h9Bwl10Quwg/HPz6uQ0ExdfEszDb08i3NGqAmngr5Aq8D+Qzm2u7+nwdvHoQrk8/HCSnG4gAzDiEGcPyGxWMclM6nLk8M3aWKOC7bnNEG88UJaPRJ7WQSaPuX1k29lGLzIx2zhbiD+b47+wF9HyX8Qaj+51YFuUJeHCXEuRCSAt3XF9Hi76o/BQwSA68ed7k/1a/2RDHMArnTFS8oHS0Otu0wHjrPm+ucMnj1UDmsHfUL/bpbB3sI0PS1NjMvfC3MntAitRNu3brtgC9eM13KsPlcH/EUI8esQTz2P+He1LctbkJhxnrs2P8FC/XeyzJx/T4fu+eb1ngHXvpmJGASA/zd+5Hwcf7ZOcPd7+scKPMmIcBIIJVQms8rD93+dshvEk9T5eLIHwkehKYMFFBIAwsl/BXyHQEcKk0SxPBDFsgCEed3TMMfpecnDOfvhDF2C+7loCxp+Xf4bzAJETzPji/KD6nfTyotE5zdIRycLyfVqiqMJp7tmPfKFCQQvfuW3IAjGzekw6HwB0PuClfRVgTc/nwAQ822KLQVUsyNEtoBZvzg714JouTF9icCC9oN6QwEIRcZ5tUgufBCw3MbbeBb3NvmfSDW6sgMYAnfxhXr5u1dHYfr4f8a8pr9Ids12LHhAve5RN7/2QDf5sHzQdqK6hb819PyG3YSpSxPA27CgaI0Cx9HxvGTCC3f6eP47rj+AgCw8sQGXQf/EH7zv/8m5DjSmPJOBNcbivooCw4Rs+Ms6IrmpBG6CRf3lwSD9Gfnq/eF/e0AlS5U5mfpthz28Y3qUP5ZC+H1jgX4DSQnjick2jEDSfmp49oejyhOG80BogI39WMIOgW0+aYf8SSxB1/6RCCv48jx0yz28oj0lS2zRUgJYdkRCdAK5dlEH8Mo9wBsIO0kX/IO2Br+zx4+HK7+awMpCqzzkA0vHYzx4OonH8MBqNdpFAUiy+6d2B4Vvh0NBSodSisi9ZvSXOy4FV4fdu3LGdMT0f8EFXgPDvZ46UsOn/isBXsYfBR/AR7plfWo8RbpEAI3MKv1tfltDezE59qA/Qn7TvqqA+YE3Aih9PbcCeVv7RblrO5eF/oCk/8IEoHjccey1RYADwrU9hQLIBHP73bssApv/u7tcf81EwQNIA9MGUEEYfZ79ZgEZxUUIZE4kwom+X0VQArKBjcSgSHeFSMicyYbFvcFVgjzFt8HLgG0IXIy0R0IHLMLKfzECfwc1xVOFH0IdQcbHmEA2fP1EUca3AHUEeQOMPom7rfjTfDu8kX2buzpCuP5hur2+YnjPesR5gvlN+6A50fdOuDN6ZjwMecO5gLvEPX08c7bY+V98RPp8Omu777lo/XpAzX21/mQ7L/y7POO6AXwzOv67ezwi/FW8zvv+ejA6gfr9+IH5BDrk+8f6DrhUuR26JTlDtvS2TjiqOFU4P7vrup25B3k3ecu5oHn/vMq+mEBB/1KBCYCOAeHC1EGJR1nJ1gl2zJWM8crJTdMQQ40qTWHSnVPbk71QgNA7ENcTMNOpkfnUqJOIkfjSLNIIjpDLD41CDatKXoo5zEFKuMcaBasEtYDmfoZ89XpMPDz8KXtWPEf7GTa09uA2pvL/NGi387gN+jl7KbxZe+Q43bjx+pK+H/x2vLiAMv5pP4MAlP/twmIDjsRghlrEu0LYRAb/g770QQYCJoVMyA5HH8QGwwHAgX+lACP/Nf/oglu/ETznfdR8k7Line truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 25\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 30\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 35\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,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 truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" > ref_level_db = 40\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"\n",
|
||||
" <audio controls=\"controls\" >\n",
|
||||
" <source src=\"data:audio/wav;base64,UklGRi41AgBXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YQo1AgDOBVUGpwfOCNkIKgrICiIKCwkgCUMKgwrJCQoLrwrHCPIHJwjzB84HiwcjB5cGSwRNA/MCHQOCA6QCDAIIAdUBZgL+AUQCeQIIA/AAzgCGAPAAoAFpAjUDeQOGAyMCEwJ+AagAeACI//L/HwJ7AkcC/wG2AHP+Bf41/vf8I/0o/ez7yvyY/Ij7//tj+zn7vPni+NT5//j7+GD5/fk7+nj4hPel9uH0zPT79oP4nfmL+sn5nPka+oz6PPoO+7z79fsx+/n6X/sk/HT9rv2V/h/+Bv0y/Jr8+PvZ+2n7hfuC+5f7KPvI+vX70vop+xb79vzY/Or+aACf/4EASv9i/7D+pv92/10BdgJ7AmwEwgXQBlgFfgQxA04BJAHFAQkBpwLGAsACTgMoALD/Pv6//Kz7jPu4+9D7/Py//Lj8cfso+oz4ave89kL2RPe499b2NfdD+GH4yfis+CT5l/kQ+pH6qfuA/D79Qv+OANcBMAOhAxUDhwTCBaEGnge4CZgLzAtRDA4NmQsFCikK3giTCHgHyAYIBn8GbwV7BPoEoAOBAk8BSQGpAPUA4P/r/j/+LfyE+yj7h/t7/DL+3f8KAD4AywD2AJIABwBhADoBsQH8AB4BfAAAAK3/Wv+lAMwAVwGMAdUBoQA3ADMAMwByAf7/0wA+AKj99fw0/aT9T/72/n//nv8y/rf+/P9iAIr/agDu/2L+sP0d/j7/Af9cAD7/3f8T/9b+BAB7/wMBiQCZARsC2gJBA10DAQSeA0YDOgIrA6gDeQTDBbwFZQc8B1cH7QhRCBkJ3gjbBw0HogcCB3UGmwZLBRkGGwUSBVkE8ATBBIMEQQW8A+8ClQFpAZYAMQICAS8BlwAV/xn/kf0C/az7+fsl+yL86fvw+gn62PgI94L1QvS18530UvQf9ST0SvMJ8pDx9PE58h7zhPOY9f729PZ893b4WfjQ+Vn6lfvo+7P7av1O/5gB2wAEBBoF8QSOBSEF2wU9BUEG3wYgB+IGqAbyB1wHuwbAB4EHjwZdBpIGtwbdBeoF5wUHBrQFoATaBDADuQJ6A0QF8QWNBnIFhgSeBD0D+ANqBHUE8QSlBv0FeQXRBBYESQSUBI0FmgRMBL8DPgNyBXYF2QWFBkcFDwXQAzIDNgEeAUECbwE4At8BTwFOAGT/qf9M/vz9PP26/Kz8Nvz1/Hj8Pvwb+636Efvl+Xr60/mp+WD6TPu5/If8A/2R/Cz9Wf0R/ZX9Af9MAOEATgHHAGH//P5K//L/MwEbAXgCPwPSApACrwJGAmUC7gLXAn8CtgHhAqQDOgTrBO4E7gSvAzADMwMrBFsElQXrBrcFgQUfBIkCTQHVAOkAMwE/AuYB9gHwATAAbv+Y/TD7RvuM+yr8QvwL/QP9/fyV/Hf79/s2+uz6ufvd+x39+/w//bH9Pv0d/TH9B/1p/Xn+Iv+X/6YAXwCUASoBFAAzAIwAqwDBAOUCXALMArICDwKNAnkB5QFqAXUAGQCs/3z/uP8y/8j+jP4o/mL9I/1V/LX7Mfyd/Cj9N/wL/QP9dPwc/Ej9e/2k/Xv/lP4r/0b/1/6G/77/KABX/6T/PQCPAPMAPQAMADj/BwDc/3oA6wHzAHcALf+e/9X/Af9m/3X9pv2p/Xf+fP+m/S39nf2Q/SX+9f62/cH8eP3I/b79oP19/Ff9F/w3/fL+y/4C/r39fv7j/QP/J//+/rgA9QCoAFsBCwE+Av4AcwCBAPj/+AAzAkECtgEgA+QBmAIQA6gBtQJeAh4AG/7t/zEBCwKPAZkBOAGZ/5IBtQKDAfb/gP8aAKQDKgRbAjABIgC6/8IAQQANADMBiwJvAj8BOAAr/5L/ov3i/kgAif5v/jIAl/9f/oH9Ev0x/kn+rP0X/xf/2f1nAP3+BP6TAFAAEv9q/jcAkQBIAUkBVABuAcEA1f+bAbMCNAG1AagCpAK1Am8CsQBCAeUATQHuAoQCnAInBEwC7P0nAB8Aaf/7AOMBTQCk/6T9l/zs/g4AcAK9/nf/n/7C/NT8if/WARL/zQCJ/pf+KwBzArX/JwByArIBWQNhAZcBfgGHAbEA7wJABacCxP6PAoIFtf9I/1EBIAOzABIAmAFOAH7/DgEfAAv7I/7h/eL8EgFiAFX9p//JATD+mvxL/Zv79QCAAxL/0Pyw/Pz+kgACARYBlQFBAKUANfmi+vEBvwQWA6gBov8793X9wP+2/80Dq/759zn+zAI5/WMAs/4x+sf+LAFgASgAdvv5+t4AUgCO+nQADAYQ/Fz6xABRA8r/SQRiBXkBhwKOAPQA3/zKBqkHwgGPA7ICjP6vBOUFSAd7CdX/jfuW/YkMHgq8B/P73wIvArv8swnU/ysCjgA4AjYB8gSaAiYAGP81/V4C0wCUApQAowN4/jj99v42BJ8CoQB4/Qn1eQNnA2cABAIbBQP7BfXYBGj/9wB7BgT/1vho/sr+oPIWBNIIPAGHAuz9I/im+DACPwI4B7D+aAFw9NP5cwbY/z0CV/18/fn+6g69AKEBf/4o9HIAmATXC/ACn/1t+BP/5wp+92kFRgTcAy79g/+OB7b0oALg/0QHwfQ8//kLNARg/aD0qfrf+rwINArW/l7yFQJUAiP46vHI/iwE1fp5COr65/Ek+rn6igDnB2f2XPv+BVz6DgQ2AAUDIPuH/8gFmf7DANwGSwD3+nUFbPvhAfsBXwFg/zECe/UX/RkJ1ve7/8ALVPbu50gKIwSN8n36lfyL80byWv+a+gYA/QRL8037OPThA+T8Xvr2CmrxgAcm+zYDhQg9Dwb6IObw/IcNYS/r/Hft/e029CEPfBg6DDL4ke1V9+sQYAjL/EQANAn464gBGg2NB0//R/IQ/076uQKqAicR+gxP9g/0w/wTA8sK0/cpBGwK//J/CP4Eee/Q7e0UawOh8+f5b/kjCt73/P056mfod//6Ezf8pe4EAJ7nsghrAl7vEApfAKfsqAVEB8kAVAW7/gj7aeghANL7QA73DPj6h/2d5ngDQAJgCw//Vf6pAJ7sbf6wCyUOre3GBkME0PNlBxMENwA16eQA3xh3At4EJ/8h+p8EP/l7+kruSxM9JOr2OwDe6ovyRgVxF6MSZ/yzAbn1cQaM/zn4LBYV/jDtwQVADBUI3wAkFabfq+n4A6YavxBg9uUDTeBBAFz5pR9dAKLlxvx5BSgUUvrH9SkEKP9g5Y0Pqv7dAjEOewAx+BXpuO0tG8kSFvn+C83qqfQOCmsH+gOX/78GgRoz8xfsBQ4OFx/8T/q8DNv2LQr5CwUFQ/dUBwYBYA+pDlXr7wwGAAIMgvE9950bcQpI+OX7dwI23CcKdyHs/r/zdf3A8JL64xEwCaEHXe537wIK1w/4+LD2PgOCCn8ATwaz+zb83QpY9gH0gQQfD7b7KBUXCKbd59+XEr8SPPgMDuP9P/Pf8ZP8OQGL9539VhLRBrrv7/FY+6oFRvFE9Dwdwv8e9vUQMPs97wT5bwSwBNwT8PLeAZ8Dn9R/ArsjYA2n7TgFbftN7LT3mQiODMrvkw1rAxL9ygsN5Kr1uAelEIr0y/xkGS74EOy8/rz6awZeBmvxtB6F4E3uSxBt+uXycQ/1EA3gzgXhADQB//CT/qcAf/ygB8P+kgxZ7vT7mwSM7qoY6Pk65RMZ+wtX5wT2xRVE5xX5tQzW9Nf+swH59YX/Lf++6+YIMxBzAVTtOO1zBJwRqfGA+JUP9fIhCs8THP1N5LbuvwxxBPYJjPL0DIX4aPd5FYb93/Sz95EX8PD2BZv/dAJHBF7zqhSBAvf4w/pQFJr2i/vXBzv6g/yuAigL0wBBEfP74/hF+N4BCAM9/oQJ8f14AvsAIQtlCUvsePL4D28H4gHy+dsA5ASo/636h/odDDb+NhMf+Y7rUf9E/hEEF/z0B6n5LgQv+xgIRwgM5mX8fgUO/OH3EBdm+0Lz7wDI9PwA3ghVC5X7wPWS8F0Bof2gB5cJGvd+CAgFaACz8bj1vwBD9X73oQzoGoUBmPdC/Cv0SewMDq4T1vFzB7wN/vMl860CrAY3A+cIjxB5AZP5fPPtBIT7W/XhEHgOHgsrBzsM0/1V8YL2Ww0pCkAH0BGQ+Lb5+Aj3AxL83AuEELn9Cv1xAc36X/tiCPME5fvd+8oAKQggAqnwQuyY+UIBCfuk/pcAWvfQ9ETxRvfb89j6fgKF8hD2uwA5/Cj3x/fy7s/0ivvUA6kFmPjA/SjyFu+7+Wr/SAUIAKMCVv6u84L5DwP28kr2AgUq/S8BvAGU+4T06vG898/8yPwj/2kIMghR9uf6APmx7uj6i/s2//v+5/72+pn/Kf3e8zX98fda/rkHBAP4/JX7Pvhs+tgDsAQ6CVYLcgp8Bfb+jgT9CSUDQQR/CgYOlBU9D1MPsAqhBGcR4BXoElsIHBC4GNQPlBDTFtIUWw+/FA4VMxYZEEUXRSNnDYcP1hyRHOcVvBNSGFETMBnVFRYNuBByDlcP3xAzDBUQqg27A1wFpwR3/3X/igDd/pkC3AOl/P/8Df2a93f41Po48jr20fpx9Yb6//al9G3yVvTx9uHxA/CV8uPzher27Fjxje+k7jjx5++o7obuQ+sz7wnv1PBe9X33+u8Q8Ebzdu9n8gT0svWA+d/50PhR94rxmvLK9Z34Gvlt+qr6VfZF853vtvEe8jny4/AL8Tb08/A367DqNOu86RntZu4N7wvr1ecH7ArtB+qf7FXy1vMt8IrwePd39Xv1nPbo9BD22/LO8wz59vTY+LP/wf9l/3H9TP7B+2z6w/6lADwB/gRBBXkDVgN+AAoEBwpRBjMJRw/zDp0MrwsEC4sLvw5zEQ0V/Bd4HUYfIiGIJH8hcSLtKLsuHTCaM9Q2yjOqNTA7zjn9Oz9Gv0S3QjpLine truncated
|
||||
" Your browser does not support the audio element.\n",
|
||||
" </audio>\n",
|
||||
" "
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.lib.display.Audio object>"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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 truncated
|
||||
"text/plain": [
|
||||
"<matplotlib.figure.Figure at 0x7f2e5c11c7b8>"
|
||||
]
|
||||
},
|
||||
"metadata": {
|
||||
"needs_background": "light"
|
||||
},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"compare_values(\"ref_level_db\", [10, 15, 20, 25, 30, 35, 40], \"5_5uIl38UFVh0.wav\")"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.7.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@@ -11,3 +11,4 @@ flask
|
||||
scipy==0.19.0
|
||||
lws
|
||||
tqdm
|
||||
git+git://github.com/bootphon/phonemizer@master
|
||||
@@ -82,6 +82,10 @@ setup(
|
||||
"flask",
|
||||
# "lws",
|
||||
"tqdm",
|
||||
"phonemizer",
|
||||
],
|
||||
dependency_links=[
|
||||
'http://github.com/bootphon/phonemizer/tarball/master#egg=phonemizer'
|
||||
],
|
||||
extras_require={
|
||||
"bin": [
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
print("Python is running!!")
|
||||
@@ -17,6 +17,7 @@ from utils.generic_utils import (
|
||||
remove_experiment_folder, create_experiment_folder, save_checkpoint,
|
||||
save_best_model, load_config, lr_decay, count_parameters, check_update,
|
||||
get_commit_hash, sequence_mask, NoamLR)
|
||||
from utils.text.symbols import symbols, phonemes
|
||||
from utils.visual import plot_alignment, plot_spectrogram
|
||||
from models.tacotron import Tacotron
|
||||
from layers.losses import L1LossMasked
|
||||
@@ -46,7 +47,11 @@ def setup_loader(is_val=False):
|
||||
batch_group_size=0 if is_val else 8 * c.batch_size,
|
||||
min_seq_len=0 if is_val else c.min_seq_len,
|
||||
max_seq_len=float("inf") if is_val else c.max_seq_len,
|
||||
cached=False if c.dataset != "tts_cache" else True)
|
||||
cached=False if c.dataset != "tts_cache" else True,
|
||||
phoneme_cache_path=c.phoneme_cache_path,
|
||||
use_phonemes=c.use_phonemes,
|
||||
phoneme_language=c.phoneme_language
|
||||
)
|
||||
loader = DataLoader(
|
||||
dataset,
|
||||
batch_size=c.eval_batch_size if is_val else c.batch_size,
|
||||
@@ -121,8 +126,8 @@ def train(model, criterion, criterion_st, optimizer, optimizer_st,
|
||||
# loss computation
|
||||
stop_loss = criterion_st(stop_tokens, stop_targets)
|
||||
mel_loss = criterion(mel_output, mel_input, mel_lengths)
|
||||
linear_loss = 0.5 * criterion(linear_output, linear_input, mel_lengths)\
|
||||
+ 0.5 * criterion(linear_output[:, :, :n_priority_freq],
|
||||
linear_loss = (1 - c.loss_weight) * criterion(linear_output, linear_input, mel_lengths)\
|
||||
+ c.loss_weight * criterion(linear_output[:, :, :n_priority_freq],
|
||||
linear_input[:, :, :n_priority_freq],
|
||||
mel_lengths)
|
||||
loss = mel_loss + linear_loss
|
||||
@@ -351,7 +356,8 @@ def evaluate(model, criterion, criterion_st, ap, current_step):
|
||||
|
||||
|
||||
def main(args):
|
||||
model = Tacotron(c.embedding_size, ap.num_freq, ap.num_mels, c.r)
|
||||
num_chars = len(phonemes) if c.use_phonemes else len(symbols)
|
||||
model = Tacotron(num_chars, c.embedding_size, ap.num_freq, ap.num_mels, c.r, c.memory_size)
|
||||
print(" | > Num output units : {}".format(ap.num_freq), flush=True)
|
||||
|
||||
optimizer = optim.Adam(model.parameters(), lr=c.lr, weight_decay=0)
|
||||
@@ -361,28 +367,39 @@ def main(args):
|
||||
criterion = L1LossMasked()
|
||||
criterion_st = nn.BCELoss()
|
||||
|
||||
partial_init_flag = False
|
||||
if args.restore_path:
|
||||
checkpoint = torch.load(args.restore_path)
|
||||
try:
|
||||
model.load_state_dict(checkpoint['model'])
|
||||
except:
|
||||
print(" > Partial model initialization.")
|
||||
partial_init_flag = True
|
||||
model_dict = model.state_dict()
|
||||
# Partial initialization: if there is a mismatch with new and old layer, it is skipped.
|
||||
# 1. filter out unnecessary keys
|
||||
pretrained_dict = {
|
||||
k: v
|
||||
for k, v in checkpoint['model'].items() if k in model_dict
|
||||
for k, v in checkpoint['model'].items() if k in model_dict
|
||||
}
|
||||
# 2. overwrite entries in the existing state dict
|
||||
# 2. filter out different size layers
|
||||
pretrained_dict = {
|
||||
k: v
|
||||
for k, v in checkpoint['model'].items() if v.numel() == model_dict[k].numel()
|
||||
}
|
||||
# 3. overwrite entries in the existing state dict
|
||||
model_dict.update(pretrained_dict)
|
||||
# 3. load the new state dict
|
||||
# 4. load the new state dict
|
||||
model.load_state_dict(model_dict)
|
||||
print(" | > {} / {} layers are initialized".format(len(pretrained_dict), len(model_dict)))
|
||||
if use_cuda:
|
||||
model = model.cuda()
|
||||
criterion.cuda()
|
||||
criterion_st.cuda()
|
||||
optimizer.load_state_dict(checkpoint['optimizer'])
|
||||
if not partial_init_flag:
|
||||
optimizer.load_state_dict(checkpoint['optimizer'])
|
||||
for group in optimizer.param_groups:
|
||||
group['lr'] = c.lr
|
||||
print(
|
||||
" > Model restored from step %d" % checkpoint['step'], flush=True)
|
||||
start_epoch = checkpoint['epoch']
|
||||
@@ -423,7 +440,10 @@ def main(args):
|
||||
" | > Train Loss: {:.5f} Validation Loss: {:.5f}".format(
|
||||
train_loss, val_loss),
|
||||
flush=True)
|
||||
best_loss = save_best_model(model, optimizer, train_loss, best_loss,
|
||||
target_loss = train_loss
|
||||
if c.run_eval:
|
||||
target_loss = val_loss
|
||||
best_loss = save_best_model(model, optimizer, target_loss, best_loss,
|
||||
OUT_PATH, current_step, epoch)
|
||||
|
||||
|
||||
|
||||
+11
-3
@@ -3,7 +3,7 @@ import time
|
||||
import librosa
|
||||
import torch
|
||||
import numpy as np
|
||||
from .text import text_to_sequence
|
||||
from .text import text_to_sequence, phoneme_to_sequence
|
||||
from .visual import visualize
|
||||
from matplotlib import pylab as plt
|
||||
|
||||
@@ -11,11 +11,19 @@ from matplotlib import pylab as plt
|
||||
def synthesis(m, s, CONFIG, use_cuda, ap):
|
||||
""" Given the text, synthesising the audio """
|
||||
text_cleaner = [CONFIG.text_cleaner]
|
||||
seq = np.array(text_to_sequence(s, text_cleaner))
|
||||
# print(phoneme_to_sequence(s, text_cleaner))s
|
||||
# print(sequence_to_phoneme(phoneme_to_sequence(s, text_cleaner)))
|
||||
if CONFIG.use_phonemes:
|
||||
seq = np.asarray(
|
||||
phoneme_to_sequence(s, text_cleaner, CONFIG.phoneme_language),
|
||||
dtype=np.int32)
|
||||
else:
|
||||
seq = np.asarray(text_to_sequence(s, text_cleaner), dtype=np.int32)
|
||||
chars_var = torch.from_numpy(seq).unsqueeze(0)
|
||||
if use_cuda:
|
||||
chars_var = chars_var.cuda()
|
||||
mel_spec, linear_spec, alignments, stop_tokens = m.forward(chars_var.long())
|
||||
mel_spec, linear_spec, alignments, stop_tokens = m.forward(
|
||||
chars_var.long())
|
||||
linear_spec = linear_spec[0].data.cpu().numpy()
|
||||
mel_spec = mel_spec[0].data.cpu().numpy()
|
||||
alignment = alignments[0].cpu().data.numpy()
|
||||
|
||||
+64
-1
@@ -1,16 +1,71 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
import phonemizer
|
||||
from phonemizer.phonemize import phonemize
|
||||
from utils.text import cleaners
|
||||
from utils.text.symbols import symbols
|
||||
from utils.text.symbols import symbols, phonemes, _phoneme_punctuations
|
||||
|
||||
# Mappings from symbol to numeric ID and vice versa:
|
||||
_symbol_to_id = {s: i for i, s in enumerate(symbols)}
|
||||
_id_to_symbol = {i: s for i, s in enumerate(symbols)}
|
||||
|
||||
_phonemes_to_id = {s: i for i, s in enumerate(phonemes)}
|
||||
_id_to_phonemes = {i: s for i, s in enumerate(phonemes)}
|
||||
|
||||
# Regular expression matching text enclosed in curly braces:
|
||||
_curly_re = re.compile(r'(.*?)\{(.+?)\}(.*)')
|
||||
|
||||
# Regular expression matchinf punctuations, ignoring empty space
|
||||
pat = r'['+_phoneme_punctuations[:-1]+']+'
|
||||
|
||||
|
||||
def text2phone(text, language):
|
||||
'''
|
||||
Convert graphemes to phonemes.
|
||||
'''
|
||||
seperator = phonemizer.separator.Separator(' |', '', '|')
|
||||
#try:
|
||||
punctuations = re.findall(pat, text)
|
||||
ph = phonemize(text, separator=seperator, strip=False, njobs=1, backend='espeak', language=language)
|
||||
# Replace \n with matching punctuations.
|
||||
if len(punctuations) > 0:
|
||||
for punct in punctuations[:-1]:
|
||||
ph = ph.replace('| |\n', '|'+punct+'| |', 1)
|
||||
try:
|
||||
ph = ph[:-1] + punctuations[-1]
|
||||
except:
|
||||
print(text)
|
||||
return ph
|
||||
|
||||
|
||||
def phoneme_to_sequence(text, cleaner_names, language):
|
||||
'''
|
||||
TODO: This ignores punctuations
|
||||
'''
|
||||
sequence = []
|
||||
clean_text = _clean_text(text, cleaner_names)
|
||||
phonemes = text2phone(clean_text, language)
|
||||
# print(phonemes.replace('|', ''))
|
||||
if phonemes is None:
|
||||
print("!! After phoneme conversion the result is None. -- {} ".format(clean_text))
|
||||
for phoneme in phonemes.split('|'):
|
||||
# print(word, ' -- ', phonemes_text)
|
||||
sequence += _phoneme_to_sequence(phoneme)
|
||||
# Aeepnd EOS char
|
||||
sequence.append(_phonemes_to_id['~'])
|
||||
return sequence
|
||||
|
||||
|
||||
def sequence_to_phoneme(sequence):
|
||||
'''Converts a sequence of IDs back to a string'''
|
||||
result = ''
|
||||
for symbol_id in sequence:
|
||||
if symbol_id in _id_to_phonemes:
|
||||
s = _id_to_phonemes[symbol_id]
|
||||
result += s
|
||||
return result.replace('}{', ' ')
|
||||
|
||||
|
||||
def text_to_sequence(text, cleaner_names):
|
||||
'''Converts a string of text to a sequence of IDs corresponding to the symbols in the text.
|
||||
@@ -69,9 +124,17 @@ def _symbols_to_sequence(symbols):
|
||||
return [_symbol_to_id[s] for s in symbols if _should_keep_symbol(s)]
|
||||
|
||||
|
||||
def _phoneme_to_sequence(phonemes):
|
||||
return [_phonemes_to_id[s] for s in list(phonemes) if _should_keep_phoneme(s)]
|
||||
|
||||
|
||||
def _arpabet_to_sequence(text):
|
||||
return _symbols_to_sequence(['@' + s for s in text.split()])
|
||||
|
||||
|
||||
def _should_keep_symbol(s):
|
||||
return s in _symbol_to_id and s is not '_' and s is not '~'
|
||||
|
||||
|
||||
def _should_keep_phoneme(p):
|
||||
return p in _phonemes_to_id and p is not '_' and p is not '~'
|
||||
+10
-1
@@ -12,7 +12,7 @@ hyperparameter. Some cleaners are English-specific. You'll typically want to use
|
||||
|
||||
import re
|
||||
from unidecode import unidecode
|
||||
from .numbers import normalize_numbers
|
||||
from .number_norm import normalize_numbers
|
||||
|
||||
# Regular expression matching whitespace:
|
||||
_whitespace_re = re.compile(r'\s+')
|
||||
@@ -86,3 +86,12 @@ def english_cleaners(text):
|
||||
text = expand_abbreviations(text)
|
||||
text = collapse_whitespace(text)
|
||||
return text
|
||||
|
||||
|
||||
def phoneme_cleaners(text):
|
||||
'''Pipeline for phonemes mode, including number and abbreviation expansion.'''
|
||||
text = convert_to_ascii(text)
|
||||
text = expand_numbers(text)
|
||||
text = expand_abbreviations(text)
|
||||
text = collapse_whitespace(text)
|
||||
return text
|
||||
+24
-12
@@ -2,18 +2,16 @@
|
||||
|
||||
import re
|
||||
|
||||
valid_symbols = [
|
||||
'AA', 'AA0', 'AA1', 'AA2', 'AE', 'AE0', 'AE1', 'AE2', 'AH', 'AH0', 'AH1',
|
||||
'AH2', 'AO', 'AO0', 'AO1', 'AO2', 'AW', 'AW0', 'AW1', 'AW2', 'AY', 'AY0',
|
||||
'AY1', 'AY2', 'B', 'CH', 'D', 'DH', 'EH', 'EH0', 'EH1', 'EH2', 'ER', 'ER0',
|
||||
'ER1', 'ER2', 'EY', 'EY0', 'EY1', 'EY2', 'F', 'G', 'HH', 'IH', 'IH0',
|
||||
'IH1', 'IH2', 'IY', 'IY0', 'IY1', 'IY2', 'JH', 'K', 'L', 'M', 'N', 'NG',
|
||||
'OW', 'OW0', 'OW1', 'OW2', 'OY', 'OY0', 'OY1', 'OY2', 'P', 'R', 'S', 'SH',
|
||||
'T', 'TH', 'UH', 'UH0', 'UH1', 'UH2', 'UW', 'UW0', 'UW1', 'UW2', 'V', 'W',
|
||||
'Y', 'Z', 'ZH'
|
||||
]
|
||||
|
||||
_valid_symbol_set = set(valid_symbols)
|
||||
# valid_symbols = [
|
||||
# 'AA', 'AA0', 'AA1', 'AA2', 'AE', 'AE0', 'AE1', 'AE2', 'AH', 'AH0', 'AH1',
|
||||
# 'AH2', 'AO', 'AO0', 'AO1', 'AO2', 'AW', 'AW0', 'AW1', 'AW2', 'AY', 'AY0',
|
||||
# 'AY1', 'AY2', 'B', 'CH', 'D', 'DH', 'EH', 'EH0', 'EH1', 'EH2', 'ER', 'ER0',
|
||||
# 'ER1', 'ER2', 'EY', 'EY0', 'EY1', 'EY2', 'F', 'G', 'HH', 'IH', 'IH0',
|
||||
# 'IH1', 'IH2', 'IY', 'IY0', 'IY1', 'IY2', 'JH', 'K', 'L', 'M', 'N', 'NG',
|
||||
# 'OW', 'OW0', 'OW1', 'OW2', 'OY', 'OY0', 'OY1', 'OY2', 'P', 'R', 'S', 'SH',
|
||||
# 'T', 'TH', 'UH', 'UH0', 'UH1', 'UH2', 'UW', 'UW0', 'UW1', 'UW2', 'V', 'W',
|
||||
# 'Y', 'Z', 'ZH'
|
||||
# ]
|
||||
|
||||
|
||||
class CMUDict:
|
||||
@@ -39,6 +37,20 @@ class CMUDict:
|
||||
'''Returns list of ARPAbet pronunciations of the given word.'''
|
||||
return self._entries.get(word.upper())
|
||||
|
||||
def get_arpabet(self, word, cmudict, punctuation_symbols):
|
||||
first_symbol, last_symbol = '', ''
|
||||
if len(word) > 0 and word[0] in punctuation_symbols:
|
||||
first_symbol = word[0]
|
||||
word = word[1:]
|
||||
if len(word) > 0 and word[-1] in punctuation_symbols:
|
||||
last_symbol = word[-1]
|
||||
word = word[:-1]
|
||||
arpabet = cmudict.lookup(word)
|
||||
if arpabet is not None:
|
||||
return first_symbol + '{%s}' % arpabet[0] + last_symbol
|
||||
else:
|
||||
return first_symbol + word + last_symbol
|
||||
|
||||
|
||||
_alt_re = re.compile(r'\([0-9]+\)')
|
||||
|
||||
|
||||
File renamed without changes.
+14
-1
@@ -10,12 +10,25 @@ from utils.text import cmudict
|
||||
_pad = '_'
|
||||
_eos = '~'
|
||||
_characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\'(),-.:;? '
|
||||
_punctuations = '!\'(),-.:;? '
|
||||
_phoneme_punctuations = '.!;:,?'
|
||||
|
||||
# TODO: include more phoneme characters for other languages.
|
||||
_phonemes = ['l','ɹ','ɜ','ɚ','k','u','ʔ','ð','ɐ','ɾ','ɑ','ɔ','b','ɛ','t','v','n','m','ʊ','ŋ','s',
|
||||
'ʌ','o','ʃ','i','p','æ','e','a','ʒ',' ','h','ɪ','ɡ','f','r','w','ɫ','ɬ','d','x','ː',
|
||||
'ᵻ','ə','j','θ','z','ɒ']
|
||||
|
||||
_phonemes = sorted(list(set(_phonemes)))
|
||||
|
||||
# Prepend "@" to ARPAbet symbols to ensure uniqueness (some are the same as uppercase letters):
|
||||
_arpabet = ['@' + s for s in cmudict.valid_symbols]
|
||||
_arpabet = ['@' + s for s in _phonemes]
|
||||
|
||||
# Export all symbols:
|
||||
symbols = [_pad, _eos] + list(_characters) + _arpabet
|
||||
phonemes = [_pad, _eos] + list(_phonemes) + list(_punctuations)
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(" > TTS symbols ")
|
||||
print(symbols)
|
||||
print(" > TTS phonemes ")
|
||||
print(phonemes)
|
||||
Reference in new issue
Block a user