mirror of https://github.com/coqui-ai/TTS.git
phonem updates
This commit is contained in:
parent
9c9aea276c
commit
1722b1659a
|
@ -6,7 +6,7 @@ import torch
|
||||||
import random
|
import random
|
||||||
from torch.utils.data import Dataset
|
from torch.utils.data import Dataset
|
||||||
|
|
||||||
from utils.text import text_to_sequence, phoneme_to_sequence
|
from utils.text import text_to_sequence, phonem_to_sequence
|
||||||
from utils.data import (prepare_data, pad_per_step, prepare_tensor,
|
from utils.data import (prepare_data, pad_per_step, prepare_tensor,
|
||||||
prepare_stop_target)
|
prepare_stop_target)
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ class MyDataset(Dataset):
|
||||||
else:
|
else:
|
||||||
text, wav_file = self.items[idx]
|
text, wav_file = self.items[idx]
|
||||||
text = np.asarray(
|
text = np.asarray(
|
||||||
phoneme_to_sequence(text, [self.cleaners]), dtype=np.int32)
|
phonem_to_sequence(text, [self.cleaners]), dtype=np.int32)
|
||||||
wav = np.asarray(self.load_wav(wav_file), dtype=np.float32)
|
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]}
|
||||||
return sample
|
return sample
|
||||||
|
|
|
@ -3,11 +3,7 @@
|
||||||
import re
|
import re
|
||||||
import phonemizer
|
import phonemizer
|
||||||
from utils.text import cleaners
|
from utils.text import cleaners
|
||||||
<<<<<<< HEAD
|
|
||||||
from utils.text.symbols import symbols, phonemes, _punctuations
|
from utils.text.symbols import symbols, phonemes, _punctuations
|
||||||
=======
|
|
||||||
from utils.text.symbols import symbols, phonemes
|
|
||||||
>>>>>>> phonem extraction for training
|
|
||||||
|
|
||||||
# Mappings from symbol to numeric ID and vice versa:
|
# Mappings from symbol to numeric ID and vice versa:
|
||||||
_symbol_to_id = {s: i for i, s in enumerate(symbols)}
|
_symbol_to_id = {s: i for i, s in enumerate(symbols)}
|
||||||
|
@ -71,9 +67,18 @@ def sequence_to_phoneme(sequence):
|
||||||
return result.replace('}{', ' ')
|
return result.replace('}{', ' ')
|
||||||
|
|
||||||
|
|
||||||
def phoneme_to_sequence(text, cleaner_names):
|
def phonem_to_sequence(text, cleaner_names):
|
||||||
|
'''
|
||||||
|
TODO: This ignores punctuations
|
||||||
|
'''
|
||||||
sequence = []
|
sequence = []
|
||||||
sequence += _phonem_to_sequence(_clean_text(text, cleaner_names))
|
clean_text = _clean_text(text, cleaner_names)
|
||||||
|
for word in clean_text.split():
|
||||||
|
phonems_text = text2phone(word)
|
||||||
|
if phonems_text == None:
|
||||||
|
continue
|
||||||
|
sequence += _phonem_to_sequence(phonems_text)
|
||||||
|
sequence.append(_phonemes_to_id[' '])
|
||||||
sequence.append(_phonemes_to_id['~'])
|
sequence.append(_phonemes_to_id['~'])
|
||||||
return sequence
|
return sequence
|
||||||
|
|
||||||
|
@ -122,6 +127,17 @@ def sequence_to_text(sequence):
|
||||||
return result.replace('}{', ' ')
|
return result.replace('}{', ' ')
|
||||||
|
|
||||||
|
|
||||||
|
def sequence_to_phonem(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]
|
||||||
|
print(s)
|
||||||
|
result += s
|
||||||
|
return result.replace('}{', ' ')
|
||||||
|
|
||||||
|
|
||||||
def _clean_text(text, cleaner_names):
|
def _clean_text(text, cleaner_names):
|
||||||
for name in cleaner_names:
|
for name in cleaner_names:
|
||||||
cleaner = getattr(cleaners, name)
|
cleaner = getattr(cleaners, name)
|
||||||
|
@ -135,8 +151,13 @@ def _symbols_to_sequence(symbols):
|
||||||
return [_symbol_to_id[s] for s in symbols if _should_keep_symbol(s)]
|
return [_symbol_to_id[s] for s in symbols if _should_keep_symbol(s)]
|
||||||
|
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
def _phoneme_to_sequence(phonemes):
|
def _phoneme_to_sequence(phonemes):
|
||||||
return [_phonemes_to_id[s] for s in list(phonemes) if _should_keep_phoneme(s)]
|
return [_phonemes_to_id[s] for s in list(phonemes) if _should_keep_phoneme(s)]
|
||||||
|
=======
|
||||||
|
def _phonem_to_sequence(phonemes):
|
||||||
|
return [_phonemes_to_id[s] for s in phonemes.split(" ") if _should_keep_phonem(s)]
|
||||||
|
>>>>>>> phonem updates
|
||||||
|
|
||||||
|
|
||||||
def _arpabet_to_sequence(text):
|
def _arpabet_to_sequence(text):
|
||||||
|
|
Loading…
Reference in New Issue