Path: blob/master/test/test_base_processor.py
1558 views
import pytest1from tensorflow_tts.processor.base_processor import BaseProcessor, DataProcessorError2import string3from dataclasses import dataclass4from shutil import copyfile567@dataclass8class LJ(BaseProcessor):9def get_one_sample(self, item):10sample = {11"raw_text": None,12"text_ids": None,13"audio": None,14"utt_id": None,15"speaker_name": None,16"rate": None,17}18return sample1920def text_to_sequence(self, text):21return ["0"]2223def setup_eos_token(self):24return None2526def save_pretrained(self, saved_path):27return super().save_pretrained(saved_path)282930@pytest.fixture31def processor(tmpdir):32copyfile("test/files/train.txt", f"{tmpdir}/train.txt")33processor = LJ(data_dir=tmpdir, symbols=list(string.ascii_lowercase))34return processor353637@pytest.fixture38def mapper_processor(tmpdir):39copyfile("test/files/train.txt", f"{tmpdir}/train.txt")40copyfile("test/files/mapper.json", f"{tmpdir}/mapper.json")41processor = LJ(data_dir=tmpdir, loaded_mapper_path=f"{tmpdir}/mapper.json")42return processor434445def test_items_creation(processor):46# Check text47assert processor.items[0][0] == "in fact its just a test."48assert processor.items[1][0] == "in fact its just a speaker number one."4950# Check path51assert processor.items[0][1].split("/")[-1] == "libri1.wav"52assert processor.items[1][1].split("/")[-1] == "libri2.wav"5354# Check speaker name55assert processor.items[0][2] == "One"56assert processor.items[1][2] == "Two"575859def test_mapper(processor):60# check symbol to id mapper61assert processor.symbol_to_id["a"] == 06263# check id to symbol mapper64assert processor.id_to_symbol[0] == "a"6566# check speaker mapper67assert processor.speakers_map["One"] == 068assert processor.speakers_map["Two"] == 1697071def test_adding_symbols(processor):72# check symbol to id mapper73assert processor.symbol_to_id["a"] == 07475# check id to symbol mapper76assert processor.id_to_symbol[0] == "a"7778old_processor_len = len(processor.symbols)7980# Test adding new symbol81processor.add_symbol("O_O")8283assert processor.symbol_to_id["a"] == 084assert (85processor.symbol_to_id["O_O"] == len(processor.symbols) - 186) # new symbol should have last id8788assert processor.id_to_symbol[0] == "a"89assert processor.id_to_symbol[len(processor.symbols) - 1] == "O_O"9091assert old_processor_len == len(processor.symbols) - 1929394def test_loading_mapper(mapper_processor):95assert mapper_processor.symbol_to_id["a"] == 096assert mapper_processor.symbol_to_id["@ph"] == 29798assert mapper_processor.speakers_map["test_one"] == 099assert mapper_processor.speakers_map["test_two"] == 1100101assert mapper_processor.id_to_symbol[0] == "a"102assert mapper_processor.id_to_symbol[2] == "@ph"103104# Test failed creation105with pytest.raises(DataProcessorError):106failed = LJ(data_dir="test/files")107108109