36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from aitextgen import aitextgen
|
|
import utterance.utils
|
|
import regex, string, time
|
|
|
|
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, seed=int(time.time()), 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
|
|
|
|
|
|
|