vishred18's picture
Upload 364 files
d5ee97c
import pytest
from tensorflow_tts.processor.base_processor import BaseProcessor, DataProcessorError
import string
from dataclasses import dataclass
from shutil import copyfile
@dataclass
class LJ(BaseProcessor):
def get_one_sample(self, item):
sample = {
"raw_text": None,
"text_ids": None,
"audio": None,
"utt_id": None,
"speaker_name": None,
"rate": None,
}
return sample
def text_to_sequence(self, text):
return ["0"]
def setup_eos_token(self):
return None
def save_pretrained(self, saved_path):
return super().save_pretrained(saved_path)
@pytest.fixture
def processor(tmpdir):
copyfile("test/files/train.txt", f"{tmpdir}/train.txt")
processor = LJ(data_dir=tmpdir, symbols=list(string.ascii_lowercase))
return processor
@pytest.fixture
def mapper_processor(tmpdir):
copyfile("test/files/train.txt", f"{tmpdir}/train.txt")
copyfile("test/files/mapper.json", f"{tmpdir}/mapper.json")
processor = LJ(data_dir=tmpdir, loaded_mapper_path=f"{tmpdir}/mapper.json")
return processor
def test_items_creation(processor):
# Check text
assert processor.items[0][0] == "in fact its just a test."
assert processor.items[1][0] == "in fact its just a speaker number one."
# Check path
assert processor.items[0][1].split("/")[-1] == "libri1.wav"
assert processor.items[1][1].split("/")[-1] == "libri2.wav"
# Check speaker name
assert processor.items[0][2] == "One"
assert processor.items[1][2] == "Two"
def test_mapper(processor):
# check symbol to id mapper
assert processor.symbol_to_id["a"] == 0
# check id to symbol mapper
assert processor.id_to_symbol[0] == "a"
# check speaker mapper
assert processor.speakers_map["One"] == 0
assert processor.speakers_map["Two"] == 1
def test_adding_symbols(processor):
# check symbol to id mapper
assert processor.symbol_to_id["a"] == 0
# check id to symbol mapper
assert processor.id_to_symbol[0] == "a"
old_processor_len = len(processor.symbols)
# Test adding new symbol
processor.add_symbol("O_O")
assert processor.symbol_to_id["a"] == 0
assert (
processor.symbol_to_id["O_O"] == len(processor.symbols) - 1
) # new symbol should have last id
assert processor.id_to_symbol[0] == "a"
assert processor.id_to_symbol[len(processor.symbols) - 1] == "O_O"
assert old_processor_len == len(processor.symbols) - 1
def test_loading_mapper(mapper_processor):
assert mapper_processor.symbol_to_id["a"] == 0
assert mapper_processor.symbol_to_id["@ph"] == 2
assert mapper_processor.speakers_map["test_one"] == 0
assert mapper_processor.speakers_map["test_two"] == 1
assert mapper_processor.id_to_symbol[0] == "a"
assert mapper_processor.id_to_symbol[2] == "@ph"
# Test failed creation
with pytest.raises(DataProcessorError):
failed = LJ(data_dir="test/files")