debug, threading, etc
This commit is contained in:
parent
e91d3012cb
commit
c33d577bb6
@ -4,7 +4,7 @@ import utterance.utils
|
||||
import utterance.osc
|
||||
import examine.metric
|
||||
|
||||
logging.basicConfig(level=logging.ERROR)
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
UTTERANCE_LEN = 16 #<--------------- these should be in config
|
||||
NUM_METRIC_GEN = 50
|
||||
@ -13,6 +13,7 @@ broadcast = None
|
||||
metric = None
|
||||
exit = False
|
||||
terminal = False
|
||||
debug = False
|
||||
|
||||
def format_str(text) -> str:
|
||||
t = utterance.utils.clean(text)
|
||||
@ -45,9 +46,13 @@ def terminal_utterance(utterance):
|
||||
|
||||
def broadcast_utterance(v, utterance):
|
||||
|
||||
global broadcast, exit
|
||||
global broadcast, exit, debug
|
||||
|
||||
text = f"{v.name.upper()} : {v.temp}\n"
|
||||
if debug:
|
||||
temp = format(v.temp, '.2f')
|
||||
text = f"{v.name.upper()}: {temp}\n"
|
||||
else:
|
||||
text = f"{v.name.upper()}:\n"
|
||||
|
||||
broadcast.utterance(text, v.channel)
|
||||
terminal_utterance(text)
|
||||
@ -88,9 +93,13 @@ def find_candidates(v, uv_vec, voices, results):
|
||||
def update():
|
||||
global exit
|
||||
while not exit:
|
||||
utterance.osc.update()
|
||||
time.sleep(0.2)
|
||||
try:
|
||||
utterance.osc.update()
|
||||
except Exception as e:
|
||||
logging.error(e)
|
||||
pass
|
||||
|
||||
time.sleep(0.2)
|
||||
|
||||
def signal_terminate(signum, frame):
|
||||
global exit
|
||||
@ -99,7 +108,7 @@ def signal_terminate(signum, frame):
|
||||
|
||||
def main() -> int:
|
||||
|
||||
global broadcast, metric, terminal
|
||||
global broadcast, metric, terminal, debug
|
||||
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument("-c", "--config", type=str, default="voice.config.json", help="configuratin file")
|
||||
@ -138,12 +147,18 @@ def main() -> int:
|
||||
|
||||
broadcast = utterance.osc.OscBroadcaster(name="osc_broadcast", host=conf['host_voicemachine'], port=conf['port_voicemachine'], command_channel=conf['command_osc_channel'])
|
||||
|
||||
def temperature_cb(temp, name):
|
||||
for v in voices:
|
||||
if v.name == name:
|
||||
v.temp = temp
|
||||
def receiver_cb(temp, name):
|
||||
global debug
|
||||
if type(temp) == str and temp == "DEBUG":
|
||||
debug = name
|
||||
logging.info(f"DEBUG MODE: {debug}")
|
||||
else:
|
||||
for v in voices:
|
||||
if v.name == name:
|
||||
print(f'{name} - {temp}')
|
||||
v.temp = temp
|
||||
|
||||
receiver = utterance.osc.OscReceiver(name="osc_receiver", host=conf['host_machinespeak'], port=conf['port_machinespeak'], callback_fn=temperature_cb)
|
||||
receiver = utterance.osc.OscReceiver(name="osc_receiver", host=conf['host_machinespeak'], port=conf['port_machinespeak'], callback_fn=receiver_cb)
|
||||
|
||||
|
||||
#--------------------#
|
||||
@ -152,11 +167,26 @@ def main() -> int:
|
||||
logging.info(f"INIT::loading doc2vec metrics")
|
||||
metric = examine.metric.Metric(model_input='data/models/doc2vec.model')
|
||||
|
||||
#--------------------#
|
||||
# RANDOM
|
||||
#--------------------#
|
||||
|
||||
def random_seed():
|
||||
global t_random_seed
|
||||
logging.info("INIT::SEEDING RANDOM")
|
||||
random.seed(time.time())
|
||||
if not exit:
|
||||
t_random_seed = threading.Timer(random.randint(60, 60 * 4), random_seed)
|
||||
t_random_seed.start()
|
||||
|
||||
t_random_seed = threading.Timer(random.randint(60, 60 * 4), random_seed)
|
||||
t_random_seed.start()
|
||||
|
||||
#--------------------#
|
||||
# A
|
||||
#--------------------#
|
||||
logging.info(f"INIT::generating first utterance")
|
||||
random.seed(time.time())
|
||||
|
||||
v = random.choice(voices)
|
||||
uv, uv_vec = utter_one_vectorise(v)
|
||||
|
||||
@ -187,6 +217,11 @@ def main() -> int:
|
||||
logging.info(f"TERMINATE::terminating OSC")
|
||||
utterance.osc.terminate_osc()
|
||||
|
||||
# if t_random_seed:
|
||||
logging.info(f"TERMINATE::random seed")
|
||||
t_random_seed.cancel()
|
||||
t_random_seed.join()
|
||||
|
||||
logging.info(f"FIN")
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
from osc4py3.as_eventloop import *
|
||||
from osc4py3 import oscbuildparse
|
||||
from threading import Lock
|
||||
|
||||
mutex = Lock()
|
||||
|
||||
def start_osc():
|
||||
osc_startup()
|
||||
@ -11,7 +14,9 @@ def temperature(temp, name):
|
||||
print(f'{temp} - {name}')
|
||||
|
||||
def update():
|
||||
osc_process()
|
||||
global mutex
|
||||
with mutex:
|
||||
osc_process()
|
||||
|
||||
class OscBroadcaster:
|
||||
|
||||
@ -25,12 +30,12 @@ class OscBroadcaster:
|
||||
def utterance(self, utterance: str, channel: str):
|
||||
msg = oscbuildparse.OSCMessage(channel, None, [utterance])
|
||||
osc_send(msg, self.name)
|
||||
osc_process()
|
||||
update()
|
||||
|
||||
def command(self, command: str):
|
||||
msg = oscbuildparse.OSCMessage(self.cmd, None, [command])
|
||||
osc_send(msg, self.name)
|
||||
osc_process()
|
||||
update()
|
||||
|
||||
class OscReceiver:
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
from aitextgen import aitextgen
|
||||
import utterance.utils
|
||||
import regex, string
|
||||
import regex, string, time
|
||||
|
||||
class Voice:
|
||||
|
||||
@ -13,7 +13,7 @@ class Voice:
|
||||
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)
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user