cleanup
This commit is contained in:
parent
843b99a4f7
commit
8ee47ec795
34
config.json
34
config.json
@ -1,34 +0,0 @@
|
||||
{
|
||||
"voices": [
|
||||
{
|
||||
"name": "ETHER",
|
||||
"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": "CHAOS",
|
||||
"model_dir": "data/tokens+models/Lafontaine-Fables[english].txt_bs=64_ns=3000_vs=5000",
|
||||
"tokeniser_file": "data/tokens+models/Lafontaine-Fables[english].txt_bs=64_ns=3000_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=3000_vs=5000",
|
||||
"tokeniser_file": "data/tokens+models/Blake-Songs-of-Innocence-and-of-Experience.txt_bs=64_ns=3000_vs=5000/Blake-Songs-of-Innocence-and-of-Experience.txt_ns=5000.tokenizer.json",
|
||||
"temperature": "1.5"
|
||||
},
|
||||
{
|
||||
"name": "THEO",
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"name": "POMPOM",
|
||||
"model_dir": "data/tokens+models/NEWNATUREPOEMS.txt_bs=64_ns=5000_vs=5000",
|
||||
"tokeniser_file": "data/tokens+models/NEWNATUREPOEMS.txt_bs=64_ns=5000_vs=5000/NEWNATUREPOEMS.txt_ns=5000.tokenizer.json",
|
||||
"temperature": "0.5"
|
||||
}
|
||||
]
|
||||
}
|
||||
107
speak_metric.py
107
speak_metric.py
@ -1,107 +0,0 @@
|
||||
import argparse, json, sys, time, random
|
||||
import utterance.voice
|
||||
import utterance.utils
|
||||
import utterance.osc
|
||||
import examine.metric
|
||||
|
||||
UTTERANCE_LEN = 16
|
||||
|
||||
def format_str(text: str) -> str:
|
||||
t = utterance.utils.clean(text)
|
||||
return utterance.utils.format(t)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument("-c", "--config", type=str, default="voice.config.json", help="configuratin file")
|
||||
p.add_argument("-i", "--iterations", type=int, default=10, help="number of iterations")
|
||||
args = p.parse_args()
|
||||
|
||||
with open(args.config) as f:
|
||||
conf = json.load(f)
|
||||
|
||||
voices = []
|
||||
for v in conf['voices']:
|
||||
model = v['model']
|
||||
voice = utterance.voice.Voice(name=v["name"].upper(), model=model['model_dir'], tokenizer=model['tokeniser_file'], temp=float(model["temperature"]), lenght=UTTERANCE_LEN)
|
||||
voice.set_channel(v['osc_channel']['root'], v['osc_channel']['utterance'])
|
||||
voices.append(voice)
|
||||
|
||||
broadcast = utterance.osc.OscBroadcaster(name="osc_broadcast", host=conf['host'], port=conf['port'], command_channel=conf['command_osc_channel'])
|
||||
broadcast.start_osc()
|
||||
|
||||
nbr_voices = len(voices)
|
||||
|
||||
state = 'c'
|
||||
|
||||
metric = examine.metric.Metric(model_input='data/models/doc2vec.model')
|
||||
|
||||
s = set(range(0, nbr_voices - 1))
|
||||
|
||||
rindex = random.sample(s, 1)[0]
|
||||
|
||||
v = voices[rindex]
|
||||
uv = v.utter_one()
|
||||
uv = format_str(uv)
|
||||
|
||||
v_vec = metric.vector(uv)
|
||||
|
||||
|
||||
while state == 'c':
|
||||
|
||||
candidates = random.sample(s, 3)
|
||||
|
||||
results = []
|
||||
for c in candidates:
|
||||
if c == rindex:
|
||||
continue
|
||||
vc = voices[c]
|
||||
vc_texts = vc.utter_n(n=150)
|
||||
for t in vc_texts:
|
||||
t = format_str(t)
|
||||
t_vec = metric.vector(t)
|
||||
d = examine.metric.cos_dist(v_vec, t_vec)
|
||||
results.append([d, t, c])
|
||||
|
||||
# vv = voices[rrindex]
|
||||
# texts = vv.utter_n(n=150)
|
||||
# # texts = v.utter_n(n=150)
|
||||
# results = []
|
||||
# for t in texts:
|
||||
# t = format_str(t)
|
||||
# t_vec = metric.vector(uv)
|
||||
# d = examine.metric.cos_dist(v_vec, t_vec)
|
||||
# results.append((d, t))
|
||||
|
||||
results.sort(key=lambda t: t[0], reverse=True)
|
||||
|
||||
print('----------------------------')
|
||||
print(v.name + ":")
|
||||
print(uv)
|
||||
print('----------------------------')
|
||||
|
||||
for r in results[:2]:
|
||||
print('-->' + str(r[0]))
|
||||
print(r[1])
|
||||
print('+++++++++++++++++++++++++')
|
||||
|
||||
|
||||
# new round
|
||||
|
||||
top = results[0]
|
||||
rindex = top[2]
|
||||
v = voices[rindex]
|
||||
uv = top[1]
|
||||
v_vec = metric.vector(top[1])
|
||||
|
||||
|
||||
state = input("Continue? ")
|
||||
|
||||
|
||||
|
||||
broadcast.terminate_osc()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
@ -1,159 +0,0 @@
|
||||
import argparse, json, sys, time, random
|
||||
import utterance.voice
|
||||
import utterance.utils
|
||||
import examine.metric
|
||||
|
||||
from osc4py3.as_eventloop import *
|
||||
from osc4py3 import oscbuildparse
|
||||
|
||||
voices_broadcast = {}
|
||||
conf = {}
|
||||
|
||||
def init_broadcast():
|
||||
|
||||
global conf, voices_broadcast
|
||||
|
||||
with open('voice.config.json') as f:
|
||||
conf = json.load(f)
|
||||
|
||||
# configure voices and their channels
|
||||
for v in conf['voices']:
|
||||
voices_broadcast[v['name']] = v['osc_channel']['root'] + v['osc_channel']['utterance']
|
||||
|
||||
print(voices_broadcast)
|
||||
|
||||
# Start the system.
|
||||
osc_startup()
|
||||
|
||||
# Make client channels to send packets.
|
||||
osc_udp_client(conf['host'], conf['port'], "aaaa")
|
||||
|
||||
def broadcast_utterance(name, utterance):
|
||||
|
||||
global conf, voices_broadcast
|
||||
|
||||
sentences = utterance.split('\n')
|
||||
|
||||
text = name + ":"
|
||||
|
||||
for t in sentences:
|
||||
|
||||
if ',' in t:
|
||||
phrases = t.split(',')
|
||||
for i in range(0, len(phrases)):
|
||||
p = phrases[i]
|
||||
if p != "":
|
||||
text += " " + p
|
||||
if i != len(phrases) - 1 :
|
||||
text += ','
|
||||
msg = oscbuildparse.OSCMessage(voices_broadcast[name], None, [text])
|
||||
osc_send(msg, "aaaa")
|
||||
osc_process()
|
||||
time.sleep(2)
|
||||
else:
|
||||
if text == "":
|
||||
text += t
|
||||
else:
|
||||
text += "\n" + t
|
||||
msg = oscbuildparse.OSCMessage(voices_broadcast[name], None, [text])
|
||||
osc_send(msg, "aaaa")
|
||||
osc_process()
|
||||
time.sleep(2)
|
||||
|
||||
|
||||
|
||||
msg = oscbuildparse.OSCMessage(conf['command_osc_channel'], None, ["clear"])
|
||||
osc_send(msg, "aaaa")
|
||||
osc_process()
|
||||
|
||||
|
||||
def format_str(text: str) -> str:
|
||||
t = utterance.utils.clean(text)
|
||||
return utterance.utils.format(t)
|
||||
|
||||
|
||||
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']:
|
||||
voice = utterance.voice.Voice(name=v["name"].upper(), model=v['model_dir'], tokenizer=v['tokeniser_file'], temp=float(v["temperature"]), lenght=7)
|
||||
voices.append(voice)
|
||||
|
||||
init_broadcast()
|
||||
|
||||
nbr_voices = len(voices)
|
||||
|
||||
state = 'c'
|
||||
|
||||
metric = examine.metric.Metric(model_input='data/models/doc2vec.model')
|
||||
|
||||
s = set(range(0, nbr_voices - 1))
|
||||
|
||||
# rindex = random.sample(s, 1)[0]
|
||||
rindex = 4
|
||||
|
||||
v = voices[rindex]
|
||||
uv = v.utter_one()
|
||||
uv = format_str(uv)
|
||||
|
||||
v_vec = metric.vector(uv)
|
||||
|
||||
|
||||
while 1:
|
||||
|
||||
candidates = random.sample(s, 2)
|
||||
|
||||
results = []
|
||||
for c in candidates:
|
||||
if c == rindex:
|
||||
continue
|
||||
vc = voices[c]
|
||||
vc_texts = vc.utter_n(n=25)
|
||||
for t in vc_texts:
|
||||
t = format_str(t)
|
||||
t_vec = metric.vector(t)
|
||||
d = examine.metric.cos_dist(v_vec, t_vec)
|
||||
results.append([d, t, c])
|
||||
|
||||
|
||||
results.sort(key=lambda t: t[0], reverse=True)
|
||||
|
||||
# print('----------------------------')
|
||||
# print(v.name + ":")
|
||||
# print(uv)
|
||||
# print('----------------------------')
|
||||
|
||||
broadcast_utterance(v.name, uv)
|
||||
|
||||
# for r in results[:2]:
|
||||
# print('-->' + str(r[0]))
|
||||
# print(r[1])
|
||||
# print('+++++++++++++++++++++++++')
|
||||
|
||||
|
||||
# new round
|
||||
|
||||
top = results[0]
|
||||
rindex = top[2]
|
||||
v = voices[rindex]
|
||||
uv = top[1]
|
||||
v_vec = metric.vector(top[1])
|
||||
|
||||
|
||||
# state = input("Continue? ")
|
||||
|
||||
osc_terminate()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
Loading…
x
Reference in New Issue
Block a user