from aitextgen import aitextgen import utterance.utils import regex, string class Voice: def __init__(self, name: str, model: str, tokenizer: str, temp: int, lenght: int): self.name = name self.temp = temp self.lenght = lenght self.v = aitextgen(model_folder=model, tokenizer_file=tokenizer) def utter_n(self, n: int, temp: float = None, lenght: int = None): t = self.temp if temp == None else temp l = self.lenght if lenght == None else lenght return self.v.generate(n=n, max_lenght=l, temperature=t, return_as_list=True) def utter_one(self, temp: int = None, lenght: float = None) -> str: t = self.temp if temp == None else temp l = self.lenght if lenght == None else lenght return self.utter_n(n=1, temp=temp, lenght=lenght)[0] def set_channel(self, root: str, endpoint: str): self.channel = root + endpoint def channel(self): return self.channel def fragments(self, utt: str): self.utterance = utt self.utterance_fragments = utterance.utils.fragments(utt) return self.utterance_fragments