examine + new speak
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"voices": [
|
||||
{
|
||||
"name": "Ralph",
|
||||
"model_dir": "../data/tokens+models/Emerson-Nature.txt_bs=64_ns=8000_vs=5000",
|
||||
"tokeniser_file": "../data/tokens+models/Emerson-Nature.txt_bs=64_ns=8000_vs=5000/Emerson-Nature.txt_ns=5000.tokenizer.json",
|
||||
"temperature": "0.9"
|
||||
},
|
||||
{
|
||||
"name": "Jean",
|
||||
"model_dir": "../data/tokens+models/Lafontaine-Fables[english].txt_bs=64_ns=8000_vs=5000",
|
||||
"tokeniser_file": "../data/tokens+models/Lafontaine-Fables[english].txt_bs=64_ns=8000_vs=5000/Lafontaine-Fables[english].txt_ns=5000.tokenizer.json",
|
||||
"temperature": "1.2"
|
||||
},
|
||||
{
|
||||
"name": "Blake",
|
||||
"model_dir": "../data/tokens+models/Blake-Songs-of-Innocence-and-of-Experience.txt_bs=64_ns=8000_vs=5000",
|
||||
"tokeniser_file": "../data/tokens+models/Blake-Songs-of-Innocence-and-of-Experience.txt_bs=64_ns=8000_vs=5000/Blake-Songs-of-Innocence-and-of-Experience.txt_ns=5000.tokenizer.json",
|
||||
"temperature": "1.5"
|
||||
},
|
||||
{
|
||||
"name": "Friedrich",
|
||||
"model_dir": "../data/tokens+models/Schelling-ON-THE-RELATION-OF-THE-PLASTIC-ARTS-TO-NATURE.txt_bs=64_ns=8000_vs=5000",
|
||||
"tokeniser_file": "../data/tokens+models/Schelling-ON-THE-RELATION-OF-THE-PLASTIC-ARTS-TO-NATURE.txt_bs=64_ns=8000_vs=5000/Schelling-ON-THE-RELATION-OF-THE-PLASTIC-ARTS-TO-NATURE.txt_ns=5000.tokenizer.json",
|
||||
"temperature": "1.5"
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
import argparse, json, sys, time, random
|
||||
import spacy
|
||||
from aitextgen import aitextgen
|
||||
import string
|
||||
|
||||
def clean(text: str) -> str:
|
||||
|
||||
s = text.split('\n')
|
||||
|
||||
if(len(s) > 0):
|
||||
tok_1 = s[0].split(' ')
|
||||
if len(tok_1) > 0 and tok_1[0].strip() in string.punctuation:
|
||||
s_1 = ' '.join(tok_1[1:])
|
||||
s[0] = s_1.capitalize()
|
||||
else:
|
||||
s[0] = s[0].capitalize()
|
||||
|
||||
return '\n'.join(s)
|
||||
|
||||
def format(text: str) -> str:
|
||||
|
||||
return text.replace('\r\n', '\n').replace('\n\n', '\n')
|
||||
|
||||
def main() -> int:
|
||||
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument("-c", "--config", type=str, default="config.json", help="configuratin file")
|
||||
p.add_argument("-i", "--iterations", type=int, default=10, help="number of iterations")
|
||||
args = p.parse_args()
|
||||
|
||||
print(args)
|
||||
|
||||
with open(args.config) as f:
|
||||
conf = json.load(f)
|
||||
|
||||
voices = []
|
||||
for v in conf['voices']:
|
||||
a = aitextgen(model_folder=v['model_dir'], tokenizer_file=v['tokeniser_file'])
|
||||
voices.append({"name": v["name"].upper(), "a": a, "temp": float(v["temperature"])})
|
||||
|
||||
nbr_voices = len(voices)
|
||||
current_voice = ""
|
||||
for i in range(args.iterations):
|
||||
rindex = random.randint(0, nbr_voices - 1)
|
||||
v = voices[rindex]
|
||||
if v['name'] != current_voice:
|
||||
print("==========")
|
||||
print(v['name'] + ":")
|
||||
current_voice = v['name']
|
||||
t = v['a'].generate(n=1, max_lenght=32, temperature=v['temp'], return_as_list=True)[0]
|
||||
if t != None:
|
||||
t = clean(t)
|
||||
t = format(t)
|
||||
print(t)
|
||||
|
||||
time.sleep(4)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,19 @@
|
||||
import string
|
||||
|
||||
def clean(text: str) -> str:
|
||||
|
||||
s = text.split('\n')
|
||||
|
||||
if(len(s) > 0):
|
||||
tok_1 = s[0].split(' ')
|
||||
if len(tok_1) > 0 and tok_1[0].strip() in string.punctuation:
|
||||
s_1 = ' '.join(tok_1[1:])
|
||||
s[0] = s_1.capitalize()
|
||||
else:
|
||||
s[0] = s[0].capitalize()
|
||||
|
||||
return '\n'.join(s)
|
||||
|
||||
def format(text: str) -> str:
|
||||
|
||||
return text.replace('\r\n', '\n').replace('\n\n', '\n')
|
||||
@@ -0,0 +1,18 @@
|
||||
from aitextgen import aitextgen
|
||||
import utterance.utils
|
||||
|
||||
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:
|
||||
return self.utter_n(n=1, temp=temp, lenght=lenght)[0]
|
||||
Reference in New Issue
Block a user